Compiling MSXBunsetsu.cc... src/HostCPU.cc: In constructor `openmsx::HostCPU::HostCPU()': src/HostCPU.cc:41: error: PIC register `ebx' clobbered in `asm' src/HostCPU.cc:50: error: PIC register `ebx' clobbered in `asm' src/HostCPU.cc:59: error: PIC register `ebx' clobbered in `asm' src/HostCPU.cc: In constructor `openmsx::HostCPU::HostCPU()': src/HostCPU.cc:41: error: PIC register `ebx' clobbered in `asm' src/HostCPU.cc:50: error: PIC register `ebx' clobbered in `asm' src/HostCPU.cc:59: error: PIC register `ebx' clobbered in `asm' make: *** [derived/x86-linux-i686/obj/HostCPU.o] Error 1 make: *** Waiting for unfinished jobs.... make: *** Waiting for unfinished jobs.... !!! ERROR: games-emulation/openmsx-0.5.0 failed. !!! Function src_compile, Line 37, Exitcode 2 Reproducible: Always Steps to Reproduce: 1.emerge openmsx
please attach the src/HostCPU.cc
Created attachment 53487 [details] src/HostCPU.cc
gcc version?
i686-pc-linux-gnu 3.4.3.20050110 I've got the bug 77694 too.
[5] i686-pc-linux-gnu-3.4.3-vanilla * fixed my problem.
Sorry.. this is a semi common bug with standard c code with cpuid asm not being pic aware. There will be a alot of fixes in misc packages for this normal cpuid asm. Perhaps somebody feeling motivated to run this package hardened vs vanilla will want to adapt that c/asm code to this c++/asm code in the form of a patch and attach it here. (that should solve the problem)
This is more or less what you need to make the patch $PORTDIR/sys-apps/lshw/files/02.00b-cpuid-PIC.patch
adding chainsaw to the CC: as this bug seems to have stalled for a few weeks.
Created attachment 64200 [details, diff] Patch to fix asm (cpuid and mmx usage) for PIC compliance
Patch supplied; re-assigned to package maintainer to arrange verification/testing. The cpuid part of the patch is straightforward enough; openmsx starts up for me so I think that's ok. The other part of the patch modifies some mmx code slightly, to regain ebx for the PIC ABI. However since I don't have any ROMs, I don't know if this works or not. It's a simple enough change, but as always with asm code it's easy to break things. The modified mmx assembler is in the scaler code, so to verify test the various scalers.
btw patch is against 0.5.2
Created attachment 64201 [details, diff] Patch to fix asm (cpuid and mmx usage) for PIC compliance - take 2 Slight fixup; forgot to indicate new clobber of mm6 (shows how easy it is to mess things up in asm).
http://www.funet.fi/pub/README ***************freely distributable material*************** This system has plenty of freely distributable material on its FTPable areas. We have also other services, see at the end of this document for pointers. If you have any questions regarding MATERIALS in this archive, read first `Contacts about material in here' below. If you can't locate correct person/mail alias with it, try `problems@nic.funet.fi', but do not do that as your only attempt! http://www.funet.fi/pub/msx/system_roms/openMSX/ http://www.funet.fi/pub/msx/games/ ***********************************************************
Patch to fix asm (cpuid and mmx usage) for PIC compliance - take 2 openmsx-0.5.2.ebuild epatch "${FILESDIR}/openmsx-x86-pic-cpuidmmx.patch" KEYWORDS="~x86" build ok.