Next Generation Emulation banner

0.8.1 Compilation error (linux64)

1213 Views 12 Replies 7 Participants Last post by  lancom
Hi there. Just tried to compile the latest PCSX2 sources released on my gentoo/ amd64 workstation (64bit compile, Makefile was edited accordingly), but it fails, spitting out this error:

Code:
gcc -Wall -O2 -fomit-frame-pointer -finline-functions -ffast-math -fno-strict-aliasing -m128bit-long-double -I. -I.. -I../IPU -I../DebugTools -D__LINUX__ -DENABLE_NLS -DPACKAGE=\"pcsx2\" -I../x86-64 -I../x86 -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/X11R6/include -c -o ../x86/ix86/ix86_cpudetect.o ../x86/ix86/ix86_cpudetect.c -MD -MF ../x86/ix86/ix86_cpudetect.d
../x86/ix86/ix86_cpudetect.c: In function `cpudetectInit':
../x86/ix86/ix86_cpudetect.c:221: warning: 'cputype' might be used uninitialized in this function
../x86/ix86/ix86_cpudetect.c:223: warning: 'x86_64_8BITBRANDID' might be used uninitialized in this function
../x86/ix86/ix86_cpudetect.c:224: warning: 'x86_64_12BITBRANDID' might be used uninitialized in this function
/tmp/cckTxgsb.s: Assembler messages:
/tmp/cckTxgsb.s:221: Error: suffix or operands invalid for `pop'
/tmp/cckTxgsb.s:224: Error: suffix or operands invalid for `push'
/tmp/cckTxgsb.s:227: Error: suffix or operands invalid for `pop'
/tmp/cckTxgsb.s:264: Error: suffix or operands invalid for `pop'
/tmp/cckTxgsb.s:267: Error: suffix or operands invalid for `push'
/tmp/cckTxgsb.s:270: Error: suffix or operands invalid for `pop'
/tmp/cckTxgsb.s:484: Error: suffix or operands invalid for `pop'
/tmp/cckTxgsb.s:487: Error: suffix or operands invalid for `push'
/tmp/cckTxgsb.s:490: Error: suffix or operands invalid for `pop'
/tmp/cckTxgsb.s:541: Error: suffix or operands invalid for `pop'
/tmp/cckTxgsb.s:544: Error: suffix or operands invalid for `push'
/tmp/cckTxgsb.s:547: Error: suffix or operands invalid for `pop'
make: *** [../x86/ix86/ix86_cpudetect.o] Error 1
Compiler used was gcc 3.4.3 20041125 (gentoo patchset); glibc, kernel and stuff shouldn't matter. Same happens with latest PCSX2 CVS, BTW (yeah, I know it's not allowed to discuss CVS compilations, but it might be interesting to point out that the problem is still there). It seems it's supposed to work on linux64, as some binary plugins are available for that OS/ arch. Any ideas?
1 - 13 of 13 Posts
It seems as if its compling for the 32 bit version i think i see ix86 in the name nothing about x86-64 path being compiled, its just a guess but it may help ya some.
ix86_cpudetect.c contains x86-64 stuff, so I'd guess that's not the issue. It might be a problem with the DEFINES, but defining "__x86_64__" doesn't help... :-(
what's the problem with you guys read the rules
it will bring many question if you start talking about the cvs
so read the rules
1. CVS or other unofficial builds/betas are NOT supported on this forum.
Silenus,

this is _not_ about CVS, it's about the compilation of the officially released 0.8.1 sources. Believe me, I'm into this stuff for some time, and I wouldn't expect a CVS snapshot to compile perfectly (they do, for most projects, most of the time - but one should never _expect_ them to). And I would not bug devs with compilation problems for CVS checkouts, but once again, this is a problem with a RELEASE, not some random CVS checkout.
That file seems really compile-resistant if you look at the other 0.8.1 compilation thread, ix86_cpudetect.c is where gcc bails out for me as well (different OS, different error, but anyway)... BTW, it seems there's no official 64bit Linux build available? Strange, there are several linux64 plugins on the download page...
I am still trying to figure out how to compile this darned thing. What in the world am I suposed to do to get it to even compile? Thanks!
MegaBill said:
I am still trying to figure out how to compile this darned thing. What in the world am I suposed to do to get it to even compile? Thanks!
goto www.pcsx2.net and download the precompiled one, you wont notice any difference doing it yourself
Except for the experience of seeing how compiling and coding is:p.I guess they`re trying to learn how it works by studying the source code and then modifying it to see what has changed, but they can`t even compile the unchanged source.Hehehe...Good luck guys:thumb: .
Nope, I just want a SSE optimized 64bit Linux built, and there's no such thing on the download page... And if I'd intent to work on the code, I won't waste my time trying to compile PCSX2 on a 64bit system if I don't know if it's even supposed to compile.

Cloud Strife 7, BTW, I'm on gentoo - I've seen lots of sourcecode and even more compiler output, PCSX2 doesn't look that different. :)
Oopps, sorry, I was a little sleepy when I wrote it. I meant experience from modifying the code and see the effects. Anyway, I understand now what you are trying to do.
And if I'd intent to work on the code, I won't waste my time trying to compile PCSX2 on a 64bit system if I don't know if it's even supposed to compile
That`s what I was trying to say, maybe it came out wrong (first you see if the unchanged code can be compiled, then change it).
Anyway, best of luck:thumb: .
Lancom, this is a specific bug of 64 bit, of what i don't know.
I also have gentoo, but i'm using a 32 bit system, all worked fine installed pkg:
sys-devel/gcc-config-1.3.10-r2
sys-devel/gcc-3.4.3.20050110-r2
sys-libs/libstdc++-v3-3.3.4
sys-kernel/linux-headers-2.6.8.1-r2
sys-libs/glibc-2.3.4.20041102-r1
sys-devel/automake-1.9.5
dev-lang/nasm-0.98.39-r1
sys-devel/binutils-config-1.8-r2
sys-devel/binutils-2.15.92.0.2-r7

USE="nptl, nls, X,.. etc"
CFLAGS="-O3 -march=athlon-xp -mtune=athlon-xp -funroll-loops"

Although the complation as a lot of warnings in the end all went smoth.
See less See more
Well yes, it's obviously 64bit specific. It seems to try to compile 32bit assembly event though I set CPU = x86-64. But I'm only a mere C++ coder and don't know much about assembly... :-(
1 - 13 of 13 Posts
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.
Top