Unable to compile on latest Raspbian

Discussion of development and patch submission.
Post Reply
keenerb
Posts: 11
Joined: Tue 02 Jun, 2020 7:30 pm

Unable to compile on latest Raspbian

Post by keenerb »

I installed all dependencies as far as I know.

I downloaded the v17 .tar.gz source file and unzip.

I ran ./configure and then make

I get a few hundred messages like this:

/usr/bin/ld: pcem-wx-config_sel.o:(.bss+0x0): multiple definition of `keybsenddelay'; pcem-386.o:(.bss+0x978): first defined here
/usr/bin/ld: pcem-wx-config_sel.o:(.bss+0x8): multiple definition of `hdc'; pcem-386.o:(.bss+0x980): first defined here
/usr/bin/ld: pcem-wx-config_sel.o:(.bss+0xb0): multiple definition of `speakon'; pcem-386.o:(.bss+0xa28): first defined here
/usr/bin/ld: pcem-wx-config_sel.o:(.bss+0xb4): multiple definition of `speakval'; pcem-386.o:(.bss+0xa2c): first defined here
/usr/bin/ld: pcem-wx-config_sel.o:(.bss+0xb8): multiple definition of `gated'; pcem-386.o:(.bss+0xa30): first defined here
/usr/bin/ld: pcem-wx-config_sel.o:(.bss+0xbc): multiple definition of `ppispeakon'; pcem-386.o:(.bss+0xa34): first defined here
/usr/bin/ld: pcem-wx-config_sel.o:(.bss+0xc0): multiple definition of `readflash'; pcem-386.o:(.bss+0xa38): first defined here
/usr/bin/ld: pcem-wx-config_sel.o:(.bss+0xc4): multiple definition of `cpuspeed'; pcem-386.o:(.bss+0xa3c): first defined here
/usr/bin/ld: pcem-wx-config_sel.o:(.bss+0xc8): multiple definition of `gfxcard'; pcem-386.o:(.bss+0xa40): first defined here
/usr/bin/ld: pcem-wx-config_sel.o:(.bss+0xcc): multiple definition of `romset'; pcem-386.o:(.bss+0xa44): first defined here


and then hundreds of lines of this:

386_dynarec.c:(.text+0x1ddc): undefined reference to `x87_timings'
/usr/bin/ld: 386_dynarec.c:(.text+0x1e1c): undefined reference to `x87_timings'
/usr/bin/ld: pcem-386_dynarec.o: in function `opFSUB':
386_dynarec.c:(.text+0x1e8c): undefined reference to `x87_timings'
/usr/bin/ld: 386_dynarec.c:(.text+0x1ecc): undefined reference to `x87_timings'
/usr/bin/ld: pcem-386_dynarec.o: in function `opFCOMP':
386_dynarec.c:(.text+0x1f8c): undefined reference to `x87_timings'
/usr/bin/ld: pcem-386_dynarec.o:386_dynarec.c:(.text+0x1f9c): more undefined references to `x87_timings' follow
/usr/bin/ld: pcem-cpu.o: in function `cpu_set':
cpu.c:(.text+0x1974): undefined reference to `x87_timings_8087'
/usr/bin/ld: cpu.c:(.text+0x197c): undefined reference to `x87_timings'
/usr/bin/ld: cpu.c:(.text+0x1980): undefined reference to `x87_timings_8087'
/usr/bin/ld: cpu.c:(.text+0x19a8): undefined reference to `x87_timings'
/usr/bin/ld: cpu.c:(.text+0x19ac): undefined reference to `x87_timings_387'
/usr/bin/ld: cpu.c:(.text+0x19b4): undefined reference to `x87_timings_387'

It's latest Raspberry OS build.

Any idea what might be going on?
User avatar
leilei
Posts: 1039
Joined: Fri 25 Apr, 2014 4:47 pm

Re: Unable to compile on latest Raspbian

Post by leilei »

The latest Raspberry Pi OS's on aarch64 and that's an architecture that wasn't tested much at the time of v17 (even though an arm64 dynarec is present, the 64-bit Raspban being a beta with less driver functionality). The current development tree on github may have better aarch64 support.
Model70
Posts: 3
Joined: Thu 14 Mar, 2019 2:58 am

Re: Unable to compile on latest Raspbian

Post by Model70 »

I grew up with DOS, OS/2 and Windows. I am not an experienced Linux user.

However I have successfully compiled PCem v17 on the latest fully updated Raspbian Bullseye (at as the date of this post). I used a Pi Model 3B+.

I used the full current version downloaded Raspbian image, complete with apps, with user name selected being Pi. The Pi SD card used is 64GB.

Major point is make sure Raspbian kernal is 32bit not 64bit. (Check boot config.txt file to check 64 bit is _not enabled_ or compile will fail)

Run updates sudu apt-get update then sudo apt-get upgrade

The compilation recipe is detailed in this youtube video https://www.youtube.com/watch?v=F4fX1awfyIw (in French with English subtitles)

Key points are install the dependencies sudo apt-get install build-essential libwxgtk3.0 libsdl2-dev libopenal-dev

then download and unpack the v17 linux tar.gz package to say pi/Emulation/PCem

then at command prompt within this PCem directory

./configure --enable-release-build <<- note the correction !
make

Note the ROM and config files are in a different place compared to the Windows version and right click the emulator window itself (screen) for changing diskettes etc.

For PCem software authors, a program to emulate an Intel PS/2 on Linux Arm hardware is very impressive, but please make the Linux readme a step by step set of instructions for DOS/Windows users with no assumed knowledge of Linux.

A compiled PCem package download for the Pi on Raspbian would be preferable. (Hint)

Presto. I can run upto a 486-25 Model 70-486 on a Raspberry Pi Model 3B+ under Raspbian in August 2022.

For comparison running the PCem Intel binary on Windows 10 Arm for Raspberry Pi works but is much slower - could not get 286-10 to run at full speed - only about 50%.

Regards

HB
Post Reply