It doesn't compile. It's not 64 bit clean
Created attachment 80251 [details, diff] patches it to make it 64-bit clean This patch will fix it
Created attachment 80252 [details, diff] an updated ebuild to add the 64-bit patch and fix the virtual/x11 dependency applies the patch and fixes the modular X dependency failure
It's not 64 bit clean and it fails with modular X. It also has no maintainer, so I fixed the problems
well, the problem still exists in the tree
I'm afraid, that this patch works only when JIT is disabled. When I try to emerge pearpc with jit flag, I get this: gmake[4]: Entering directory `/var/tmp/portage/pearpc-0.4/work/pearpc-0.4/src/cpu/cpu_jitc_x86' if x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../../.. -I ../.. -march=k8 -O2 -pipe -msse3 -Wundef -Wall -Woverloaded-virtual -fsigned-char -O2 -fomit-frame-pointer -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -I/usr/include/SDL -D_REENTRANT -MT ppc_alu.o -MD -MP -MF ".deps/ppc_alu.Tpo" -c -o ppc_alu.o ppc_alu.cc; \ then mv -f ".deps/ppc_alu.Tpo" ".deps/ppc_alu.Po"; else rm -f ".deps/ppc_alu.Tpo"; exit 1; fi x86asm.h: In function 'byte* x86_mem2(byte*, NativeReg, const void*)': x86asm.h:829: error: cast from 'const void*' to 'uint32' loses precision x86asm.h: In function 'byte* x86_mem2(byte*, const void*)': x86asm.h:836: error: cast from 'const void*' to 'uint32' loses precision ppc_alu.cc: In function 'JITCFlow ppc_opc_gen_crand()': ppc_alu.cc:977: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc:979: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc:981: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc:985: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc: In function 'JITCFlow ppc_opc_gen_crandc()': ppc_alu.cc:1008: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc:1010: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc:1012: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc:1016: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc: In function 'JITCFlow ppc_opc_gen_creqv()': ppc_alu.cc:1041: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc:1044: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc:1046: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc:1048: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc:1051: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc:1054: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc:1056: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc:1059: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc: In function 'JITCFlow ppc_opc_gen_crnand()': ppc_alu.cc:1085: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc:1087: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc:1089: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc:1093: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc: In function 'JITCFlow ppc_opc_gen_crnor()': ppc_alu.cc:1117: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc:1119: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc:1122: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc: In function 'JITCFlow ppc_opc_gen_cror()': ppc_alu.cc:1146: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc:1148: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc:1151: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc: In function 'JITCFlow ppc_opc_gen_crorc()': ppc_alu.cc:1175: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc:1177: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc:1179: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc:1183: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc: In function 'JITCFlow ppc_opc_gen_crxor()': ppc_alu.cc:1208: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc:1211: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc:1213: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc:1215: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc:1218: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc:1221: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc:1223: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc:1226: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc: In function 'JITCFlow ppc_opc_gen_srawix()': ppc_alu.cc:2367: error: cast from 'uint32*' to 'uint32' loses precision ppc_alu.cc:2377: error: cast from 'uint32*' to 'uint32' loses precision gmake[4]: *** [ppc_alu.o] Error 1 gmake[4]: Leaving directory `/var/tmp/portage/pearpc-0.4/work/pearpc-0.4/src/cpu/cpu_jitc_x86' gmake[3]: *** [all-recursive] Error 1 gmake[3]: Leaving directory `/var/tmp/portage/pearpc-0.4/work/pearpc-0.4/src/cpu' gmake[2]: *** [all-recursive] Error 1 gmake[2]: Leaving directory `/var/tmp/portage/pearpc-0.4/work/pearpc-0.4/src' gmake[1]: *** [all-recursive] Error 1 gmake[1]: Leaving directory `/var/tmp/portage/pearpc-0.4/work/pearpc-0.4' make: *** [all] Error 2
Not the same error as above but close. if x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I .. -march=athlon64 -O2 -pipe -msse3 -ftracer -Wundef -Wall -Woverloaded-virtual -fsigned-char -O2 -fomit-frame-pointer -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -MT debug.o -MD -MP -MF ".deps/debug.Tpo" -c -o debug.o debug.cc; \ then mv -f ".deps/debug.Tpo" ".deps/debug.Po"; else rm -f ".deps/debug.Tpo"; exit 1; fi if x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I .. -march=athlon64 -O2 -pipe -msse3 -ftracer -Wundef -Wall -Woverloaded-virtual -fsigned-char -O2 -fomit-frame-pointer -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -MT endianess.o -MD -MP -MF ".deps/endianess.Tpo" -c -o endianess.o endianess.cc; \ then mv -f ".deps/endianess.Tpo" ".deps/endianess.Po"; else rm -f ".deps/endianess.Tpo"; exit 1; fi if x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I .. -march=athlon64 -O2 -pipe -msse3 -ftracer -Wundef -Wall -Woverloaded-virtual -fsigned-char -O2 -fomit-frame-pointer -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -MT except.o -MD -MP -MF ".deps/except.Tpo" -c -o except.o except.cc; \ then mv -f ".deps/except.Tpo" ".deps/except.Po"; else rm -f ".deps/except.Tpo"; exit 1; fi if x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I .. -march=athlon64 -O2 -pipe -msse3 -ftracer -Wundef -Wall -Woverloaded-virtual -fsigned-char -O2 -fomit-frame-pointer -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -MT snprintf.o -MD -MP -MF ".deps/snprintf.Tpo" -c -o snprintf.o snprintf.cc; \ then mv -f ".deps/snprintf.Tpo" ".deps/snprintf.Po"; else rm -f ".deps/snprintf.Tpo"; exit 1; fi if x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I .. -march=athlon64 -O2 -pipe -msse3 -ftracer -Wundef -Wall -Woverloaded-virtual -fsigned-char -O2 -fomit-frame-pointer -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -MT str.o -MD -MP -MF ".deps/str.Tpo" -c -o str.o str.cc; \ then mv -f ".deps/str.Tpo" ".deps/str.Po"; else rm -f ".deps/str.Tpo"; exit 1; fi data.cc: In member function
Not the same error as above but close. if x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I .. -march=athlon64 -O2 -pipe -msse3 -ftracer -Wundef -Wall -Woverloaded-virtual -fsigned-char -O2 -fomit-frame-pointer -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -MT debug.o -MD -MP -MF ".deps/debug.Tpo" -c -o debug.o debug.cc; \ then mv -f ".deps/debug.Tpo" ".deps/debug.Po"; else rm -f ".deps/debug.Tpo"; exit 1; fi if x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I .. -march=athlon64 -O2 -pipe -msse3 -ftracer -Wundef -Wall -Woverloaded-virtual -fsigned-char -O2 -fomit-frame-pointer -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -MT endianess.o -MD -MP -MF ".deps/endianess.Tpo" -c -o endianess.o endianess.cc; \ then mv -f ".deps/endianess.Tpo" ".deps/endianess.Po"; else rm -f ".deps/endianess.Tpo"; exit 1; fi if x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I .. -march=athlon64 -O2 -pipe -msse3 -ftracer -Wundef -Wall -Woverloaded-virtual -fsigned-char -O2 -fomit-frame-pointer -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -MT except.o -MD -MP -MF ".deps/except.Tpo" -c -o except.o except.cc; \ then mv -f ".deps/except.Tpo" ".deps/except.Po"; else rm -f ".deps/except.Tpo"; exit 1; fi if x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I .. -march=athlon64 -O2 -pipe -msse3 -ftracer -Wundef -Wall -Woverloaded-virtual -fsigned-char -O2 -fomit-frame-pointer -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -MT snprintf.o -MD -MP -MF ".deps/snprintf.Tpo" -c -o snprintf.o snprintf.cc; \ then mv -f ".deps/snprintf.Tpo" ".deps/snprintf.Po"; else rm -f ".deps/snprintf.Tpo"; exit 1; fi if x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I .. -march=athlon64 -O2 -pipe -msse3 -ftracer -Wundef -Wall -Woverloaded-virtual -fsigned-char -O2 -fomit-frame-pointer -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -MT str.o -MD -MP -MF ".deps/str.Tpo" -c -o str.o str.cc; \ then mv -f ".deps/str.Tpo" ".deps/str.Po"; else rm -f ".deps/str.Tpo"; exit 1; fi data.cc: In member function virtual void Array::forceSetByIdx(int, Object*): data.cc:424: warning: comparison between signed and unsigned integer expressions data.cc: In member function virtual void* AVLTree::insert(Object*): data.cc:1461: warning: dereferencing type-punned pointer will break strict-aliasing rules data.cc:1463: warning: dereferencing type-punned pointer will break strict-aliasing rules data.cc:1468: warning: dereferencing type-punned pointer will break strict-aliasing rules data.cc:1470: warning: dereferencing type-punned pointer will break strict-aliasing rules debug.cc: In function void debugDumpMem(void*, int): debug.cc:26: warning: comparison between signed and unsigned integer expressions if x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I .. -march=athlon64 -O2 -pipe -msse3 -ftracer -Wundef -Wall -Woverloaded-virtual -fsigned-char -O2 -fomit-frame-pointer -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -MT stream.o -MD -MP -MF ".deps/stream.Tpo" -c -o stream.o stream.cc; \ then mv -f ".deps/stream.Tpo" ".deps/stream.Po"; else rm -f ".deps/stream.Tpo"; exit 1; fi if x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I .. -march=athlon64 -O2 -pipe -msse3 -ftracer -Wundef -Wall -Woverloaded-virtual -fsigned-char -O2 -fomit-frame-pointer -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -MT strtools.o -MD -MP -MF ".deps/strtools.Tpo" -c -o strtools.o strtools.cc; \ then mv -f ".deps/strtools.Tpo" ".deps/strtools.Po"; else rm -f ".deps/strtools.Tpo"; exit 1; fi if x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I .. -march=athlon64 -O2 -pipe -msse3 -ftracer -Wundef -Wall -Woverloaded-virtual -fsigned-char -O2 -fomit-frame-pointer -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -MT thread.o -MD -MP -MF ".deps/thread.Tpo" -c -o thread.o thread.cc; \ then mv -f ".deps/thread.Tpo" ".deps/thread.Po"; else rm -f ".deps/thread.Tpo"; exit 1; fi if x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I .. -march=athlon64 -O2 -pipe -msse3 -ftracer -Wundef -Wall -Woverloaded-virtual -fsigned-char -O2 -fomit-frame-pointer -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -MT crc32.o -MD -MP -MF ".deps/crc32.Tpo" -c -o crc32.o crc32.cc; \ then mv -f ".deps/crc32.Tpo" ".deps/crc32.Po"; else rm -f ".deps/crc32.Tpo"; exit 1; fi crc32.cc: In function uint32 ether_crc(size_t, const byte*): crc32.cc:109: error: cast from const byte* to uint32 loses precision gmake[3]: *** [crc32.o] Error 1 gmake[3]: Leaving directory `/var/tmp/portage/pearpc-0.4/work/pearpc-0.4/src/tools' gmake[2]: *** [all-recursive] Error 1 gmake[2]: Leaving directory `/var/tmp/portage/pearpc-0.4/work/pearpc-0.4/src' gmake[1]: *** [all-recursive] Error 1 gmake[1]: Leaving directory `/var/tmp/portage/pearpc-0.4/work/pearpc-0.4' make: *** [all] Error
Until somebody can provide a fix for the problems described in the last two comments, this will stay a WONTFIX, I'm sorry.
As far as I know 0.3.1 is compiling though. At least i have it installed on my amd64-system. Why has it been marked -amd64? All those errors seem to be 0.4.0 specific.
heh, because i suck. re-keyworded, sorry for the nuisance.
is upstream dead?
Isn't the JIT code x86-only? Shouldn't the ebuild reject the jit flag on other arches anyway?