..:: PCSX2 Forums ::..

Full Version: Help building in Linux Fedora 14 (svn revision 396)
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi,

Because there seems to be a problem with running the linux build of pcsx2 on Fedora - (especially on fedora with x86_64 architecture: http://forums.pcsx2.net/archive/index.ph...19273.html) I thought I'd be clever and build it from scratch using the subversion checkout. But I get errors when I try to build on both 32 bit and 64 bit architectures. Could anyone help out? Do I need to alter the makefile?

On 64-bit Fedora 14:

Code:
svn co https://pcsx2.svn.sourceforge.net/svnroot/pcsx2 pcsx2

sudo yum install bzip2-devel.i686 glew-devel.i686 mesa-libGL-devel.i686 mesa-libGLU-devel.i686 mesa-libGLw-devel.i686 mesa-libOSMesa-devel.i686 alsa-lib-devel.i686 Cg.i686 libXxf86vm-devel.i686 xorg-x11-proto-devel libX11-devel.i686 xorg-x11-xtrans-devel

cd pcsx2 && sh build.sh all

This checks out revision 396 and satisfies the dependencies. The build goes okay for about five minutes on Fedora 14 x86_64 then results in the error:

Code:
gcc -DPACKAGE_NAME=\"pcsx2\" -DPACKAGE_TARNAME=\"pcsx2\" -DPACKAGE_VERSION=\"0.9.4\" -DPACKAGE_STRING=\"pcsx2\ 0.9.4\" -DPACKAGE_BUGREPORT=\"[email protected]\" -DPACKAGE_URL=\"\" -DPACKAGE=\"pcsx2\" -DVERSION=\"0.9.4\" -DNDEBUG=1 -DPCSX2_DEVBUILD=1 -D__x86_64__=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DENABLE_NLS=1 -I. -pthread -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12   -I./../  -O3 -fomit-frame-pointer   -O3 -fomit-frame-pointer  -MT LnxMain.o -MD -MP -MF .deps/LnxMain.Tpo -c -o LnxMain.o LnxMain.c
mv -f .deps/LnxMain.Tpo .deps/LnxMain.Po
gcc -DPACKAGE_NAME=\"pcsx2\" -DPACKAGE_TARNAME=\"pcsx2\" -DPACKAGE_VERSION=\"0.9.4\" -DPACKAGE_STRING=\"pcsx2\ 0.9.4\" -DPACKAGE_BUGREPORT=\"[email protected]\" -DPACKAGE_URL=\"\" -DPACKAGE=\"pcsx2\" -DVERSION=\"0.9.4\" -DNDEBUG=1 -DPCSX2_DEVBUILD=1 -D__x86_64__=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DENABLE_NLS=1 -I. -pthread -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12   -I./../  -O3 -fomit-frame-pointer   -O3 -fomit-frame-pointer  -MT support.o -MD -MP -MF .deps/support.Tpo -c -o support.o support.c
mv -f .deps/support.Tpo .deps/support.Po
gcc  -O3 -fomit-frame-pointer    -o pcsx2 Config.o interface.o GtkGui.o LnxMain.o support.o ../libpcsx2.a ../IPU/libIPU.a ../IPU/mpeg2lib/libmpeg2IPU.a ../RDebug/libRDebug.a ../tinyxml/libtinyxml.a ../x86/libx86recomp.a ../x86/ix86/libix86.a ../DebugTools/libDebugTools.a -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lm -lcairo -lpng12 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0   -lstdc++ -lz
/usr/bin/ld: Warning: alignment 8 of symbol `GSreadFIFO2' in ../x86/libx86recomp.a(iVif.o) is smaller than 16 in Config.o
/usr/bin/ld: Warning: alignment 8 of symbol `GSmakeSnapshot2' in ../x86/libx86recomp.a(iVif.o) is smaller than 16 in Config.o
/usr/bin/ld: Warning: alignment 8 of symbol `GSprintf' in ../x86/libx86recomp.a(iVif.o) is smaller than 16 in Config.o
/usr/bin/ld: Warning: alignment 8 of symbol `GSsetGameCRC' in ../x86/libx86recomp.a(iVif.o) is smaller than 16 in Config.o
/usr/bin/ld: Warning: alignment 8 of symbol `GSsetupRecording' in ../x86/libx86recomp.a(iVif.o) is smaller than 16 in Config.o
/usr/bin/ld: Warning: alignment 8 of symbol `GSfreeze' in ../x86/libx86recomp.a(iVif.o) is smaller than 16 in Config.o
/usr/bin/ld: Warning: alignment 8 of symbol `GStest' in ../x86/libx86recomp.a(iVif.o) is smaller than 16 in Config.o
/usr/bin/ld: Warning: alignment 8 of symbol `PAD1configure' in ../x86/libx86recomp.a(iVif.o) is smaller than 16 in Config.o
/usr/bin/ld: Warning: alignment 8 of symbol `PAD1about' in ../x86/libx86recomp.a(iVif.o) is smaller than 16 in Config.o
/usr/bin/ld: Warning: alignment 8 of symbol `PAD2gsDriverInfo' in ../x86/libx86recomp.a(iVif.o) is smaller than 16 in Config.o
/usr/bin/ld: Warning: alignment 8 of symbol `PAD2test' in ../x86/libx86recomp.a(iVif.o) is smaller than 16 in Config.o
/usr/bin/ld: Warning: alignment 8 of symbol `SPU2writeDMA4Mem' in ../x86/libx86recomp.a(iVif.o) is smaller than 16 in Config.o
/usr/bin/ld: Warning: alignment 8 of symbol `SPU2readDMA7Mem' in ../x86/libx86recomp.a(iVif.o) is smaller than 16 in Config.o
/usr/bin/ld: Warning: alignment 8 of symbol `SPU2setClockPtr' in ../x86/libx86recomp.a(iVif.o) is smaller than 16 in Config.o
/usr/bin/ld: Warning: alignment 8 of symbol `SPU2freeze' in ../x86/libx86recomp.a(iVif.o) is smaller than 16 in Config.o
/usr/bin/ld: Warning: alignment 8 of symbol `SPU2test' in ../x86/libx86recomp.a(iVif.o) is smaller than 16 in Config.o
/usr/bin/ld: Warning: alignment 8 of symbol `CDVDconfigure' in ../x86/libx86recomp.a(iVif.o) is smaller than 16 in Config.o
/usr/bin/ld: Warning: alignment 8 of symbol `CDVDabout' in ../x86/libx86recomp.a(iVif.o) is smaller than 16 in Config.o
/usr/bin/ld: Warning: alignment 8 of symbol `DEV9readDMA8Mem' in ../x86/libx86recomp.a(iVif.o) is smaller than 16 in Config.o
/usr/bin/ld: Warning: alignment 8 of symbol `DEV9configure' in ../x86/libx86recomp.a(iVif.o) is smaller than 16 in Config.o
/usr/bin/ld: Warning: alignment 8 of symbol `DEV9test' in ../x86/libx86recomp.a(iVif.o) is smaller than 16 in Config.o
/usr/bin/ld: Warning: alignment 8 of symbol `USBasync' in ../x86/libx86recomp.a(iVif.o) is smaller than 16 in Config.o
/usr/bin/ld: Warning: alignment 8 of symbol `USBconfigure' in ../x86/libx86recomp.a(iVif.o) is smaller than 16 in Config.o
/usr/bin/ld: Warning: alignment 8 of symbol `USBtest' in ../x86/libx86recomp.a(iVif.o) is smaller than 16 in Config.o
/usr/bin/ld: Warning: alignment 8 of symbol `FWfreeze' in ../x86/libx86recomp.a(iVif.o) is smaller than 16 in Config.o
/usr/bin/ld: Warning: alignment 8 of symbol `FWabout' in ../x86/libx86recomp.a(iVif.o) is smaller than 16 in Config.o
/usr/bin/ld: LnxMain.o: undefined reference to symbol 'dlclose@@GLIBC_2.2.5'
/usr/bin/ld: note: 'dlclose@@GLIBC_2.2.5' is defined in DSO /lib64/libdl.so.2 so try adding it to the linker command line
/lib64/libdl.so.2: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
make[1]: *** [pcsx2] Error 1
make[1]: Leaving directory `/home/mythtv/applications/pcsx2/pcsx2/Linux'
make: *** [install-recursive] Error 1
Error with building pcsx2

When I try the same on my 32 bit installation of Fedora 14 I get a slightly different error:

Code:
gcc -DPACKAGE_NAME=\"pcsx2\" -DPACKAGE_TARNAME=\"pcsx2\" -DPACKAGE_VERSION=\"0.9.4\" -DPACKAGE_STRING=\"pcsx2\ 0.9.4\" -DPACKAGE_BUGREPORT=\"[email protected]\" -DPACKAGE_URL=\"\" -DPACKAGE=\"pcsx2\" -DVERSION=\"0.9.4\" -DNDEBUG=1 -DPCSX2_DEVBUILD=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DENABLE_NLS=1 -I. -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12   -I./../  -O3 -fomit-frame-pointer   -O3 -fomit-frame-pointer  -MT support.o -MD -MP -MF .deps/support.Tpo -c -o support.o support.c
mv -f .deps/support.Tpo .deps/support.Po
gcc  -O3 -fomit-frame-pointer    -o pcsx2 Config.o interface.o GtkGui.o LnxMain.o support.o ../libpcsx2.a ../IPU/libIPU.a ../IPU/mpeg2lib/libmpeg2IPU.a ../RDebug/libRDebug.a ../tinyxml/libtinyxml.a ../x86/libx86recomp.a ../x86/ix86/libix86.a ../DebugTools/libDebugTools.a -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0   -lstdc++ -lz
/usr/bin/ld: ../libpcsx2.a(FPU2.o): undefined reference to symbol 'expf@@GLIBC_2.0'
/usr/bin/ld: note: 'expf@@GLIBC_2.0' is defined in DSO /lib/libm.so.6 so try adding it to the linker command line
/lib/libm.so.6: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
make[1]: *** [pcsx2] Error 1
make[1]: Leaving directory `/home/Giles/applications/pcsx2/pcsx2/Linux'
make: *** [install-recursive] Error 1
Error with building pcsx2

Is there a modification I can make to the makefile in either case? The note on the error seems to imply this but I don't know how to go about it!

Thanks guys Blink
Okay - sorted out building with the help of Siliconslick on fedora forums (http://forums.fedoraforum.org/showthread.php?t=260760)

If I insert:

Code:
LIBS+=" -ldl -lm"

at line 120 of pcsx2/pcsx2/configure.ac the build works a treat and complies on both machines.

Unfortunately the svn version seems to be old (0.95) (and segfaults whenever I try to load a game).

Given the problems in using the released binaries in Fedora, where is it possible to checkout the latest beta (0.97)? Or is the source code closed at this stage?
Ah! I'm going to answer my own question again. I can check out he up to date svn using

Code:
svn checkout http://pcsx2.googlecode.com/svn/trunk/ pcsx2-read-only

and compile it with:

Code:
mkdir my_build
cd my_build
cmake ../CMakeLists.txt -DCMAKE_BUILD_TYPE=Release

make
make install

I realise now I've been following some really old instructions and the svn number is in the 1000's now. Just in case I've confused anyone stumbling upon this thread there is a guide to linux compilation at:

http://forums.pcsx2.net/Thread-Linux-Com...nd-Support

and it is there that I'll address my future queries. Sorry!
Well we really need to clean all this mess one day Tongue2