GP2X Toolchain Chaos.


torpor

hack hack hack, the little machines fight back
Joined
Oct 21, 2005
Messages
2,475
Location
vienna, austria
Website
w1xer.at
On my system, I currently have the following toolchains:

/usr/local/arm-dev/bin/arm-linux-gcc
gcc-2.95.3
glibc-2.2.5

/usr/local/gp2xdev/bin/gp2x-gcc
gcc-4.0.2

/opt/gp2x-arm-linux/gcc-3.4.4-glibc-2.3.5/

/gp2xsdk/Tools/bin/arm-gp2x-linux
gcc-3.4.6

/home/src/gp2xdev/bin/gp2x-gcc
gcc-4.0.2

What I'm working on right now (MidiShare) requires that I be able to build my own kernel and kernel modules, so this means I'm stuck with the 2.95.3 compiler. This is fine - I'm able to build my own kernel for the gp2x, which works just fine (and MidiShare works fine too, btw) - however, where I'm running into serious quagmire is with the issue of LIBS versus -msoft-float/-mhard-float. Aarrggh!

Code:
/usr/local/gp2xdev/bin/gp2x-gcc	-I/gp2xsdk/Tools/arm-gp2x-linux/include -I/gp2xsdk/Tools/arm-gp2x-linux/include/SDL -I/usr/local/gp2xdev/include/cairo/ -I/usr/local/gp2xdev/include/ vril.c -L/usr/local/gp2xdev/gp2x/lib -L/usr/local/gp2xdev/lib/ -lSDL -lSDL_svg -lSDL_gfx -lSDL_mixer -lSDL_ttf -lJudy -lsvg-cairo -lcairo -lsvg -lMidiShare -ljpeg -lpng -lz -lpthread -lxml2 -lm -lfontconfig -lexpat -lfreetype -Wl,-rpath-link=/usr/local/gp2xdev/lib -o vril.gpe
/usr/local/gp2xdev/lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /usr/local/gp2xdev/lib//libMidiShare.so uses hardware FP, whereas vril.gpe uses software FP
/usr/local/gp2xdev/lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /usr/local/gp2xdev/lib//libMidiShare.so
collect2: ld returned 1 exit status
make: *** [vril.gpe] Error 1

OR:

src@spir:~/src/gp2x/dev/hak/vril$ make
/gp2xsdk/Tools/bin/arm-gp2x-linux-gcc	-I/gp2xsdk/Tools/arm-gp2x-linux/include -I/gp2xsdk/Tools/arm-gp2x-linux/include/SDL -I/usr/local/gp2xdev/include/cairo/ -I/usr/local/gp2xdev/include/ vril.c -L/usr/local/gp2xdev/gp2x/lib -L/usr/local/gp2xdev/lib/ -lSDL -lSDL_svg -lSDL_gfx -lSDL_mixer -lSDL_ttf -lJudy -lsvg-cairo -lcairo -lsvg -lMidiShare -ljpeg -lpng -lz -lpthread -lxml2 -lm -lfontconfig -lexpat -lfreetype -Wl,-rpath-link=/usr/local/gp2xdev/lib -o vril.gpe
/home/src/gp2xsdk/Tools/lib/gcc/arm-gp2x-linux/3.4.6/../../../../arm-gp2x-linux/bin/ld: ERROR: /usr/local/gp2xdev/lib//libMidiShare.so uses hardware FP, whereas vril.gpe uses software FP
/home/src/gp2xsdk/Tools/lib/gcc/arm-gp2x-linux/3.4.6/../../../../arm-gp2x-linux/bin/ld: failed to merge target specific data of file /usr/local/gp2xdev/lib//libMidiShare.so
/home/src/gp2xsdk/Tools/lib/gcc/arm-gp2x-linux/3.4.6/../../../../arm-gp2x-linux/bin/ld: ERROR: /home/src/gp2xsdk/Tools/lib/gcc/arm-gp2x-linux/3.4.6/../../../../arm-gp2x-linux/lib/libgcc_s.so uses hardware FP, whereas vril.gpe uses software FP
/home/src/gp2xsdk/Tools/lib/gcc/arm-gp2x-linux/3.4.6/../../../../arm-gp2x-linux/bin/ld: failed to merge target specific data of file /home/src/gp2xsdk/Tools/lib/gcc/arm-gp2x-linux/3.4.6/../../../../arm-gp2x-linux/lib/libgcc_s.so
/home/src/gp2xsdk/Tools/lib/gcc/arm-gp2x-linux/3.4.6/../../../../arm-gp2x-linux/bin/ld: ERROR: /home/src/gp2xsdk/Tools/lib/gcc/arm-gp2x-linux/3.4.6/../../../../arm-gp2x-linux/lib/libgcc_s.so uses hardware FP, whereas vril.gpe uses software FP
/home/src/gp2xsdk/Tools/lib/gcc/arm-gp2x-linux/3.4.6/../../../../arm-gp2x-linux/bin/ld: failed to merge target specific data of file /home/src/gp2xsdk/Tools/lib/gcc/arm-gp2x-linux/3.4.6/../../../../arm-gp2x-linux/lib/libgcc_s.so
/home/src/gp2xsdk/Tools/lib/gcc/arm-gp2x-linux/3.4.6/../../../../arm-gp2x-linux/bin/ld: ERROR: /home/src/gp2xsdk/Tools/lib/gcc/arm-gp2x-linux/3.4.6/crtend.o uses hardware FP, whereas vril.gpe uses software FP
/home/src/gp2xsdk/Tools/lib/gcc/arm-gp2x-linux/3.4.6/../../../../arm-gp2x-linux/bin/ld: failed to merge target specific data of file /home/src/gp2xsdk/Tools/lib/gcc/arm-gp2x-linux/3.4.6/crtend.o
/home/src/gp2xsdk/Tools/lib/gcc/arm-gp2x-linux/3.4.6/../../../../arm-gp2x-linux/bin/ld: ERROR: /home/src/gp2xsdk/Tools/lib/gcc/arm-gp2x-linux/3.4.6/../../../../arm-gp2x-linux/lib/crtn.o uses hardware FP, whereas vril.gpe uses software FP
/home/src/gp2xsdk/Tools/lib/gcc/arm-gp2x-linux/3.4.6/../../../../arm-gp2x-linux/bin/ld: failed to merge target specific data of file /home/src/gp2xsdk/Tools/lib/gcc/arm-gp2x-linux/3.4.6/../../../../arm-gp2x-linux/lib/crtn.o
/usr/local/gp2xdev/gp2x/lib/libpthread.so.0: undefined reference to `_rtld_global@GLIBC_PRIVATE'
/home/src/gp2xsdk/Tools/arm-gp2x-linux/bin/../lib/libdl.so.2: undefined reference to `_dl_close@GLIBC_2.0'
/home/src/gp2xsdk/Tools/arm-gp2x-linux/bin/../lib/libdl.so.2: undefined reference to `_dl_addr@GLIBC_2.0'
/usr/local/gp2xdev/gp2x/lib/libc.so.6: undefined reference to `__libc_enable_secure@GLIBC_PRIVATE'
/usr/local/gp2xdev/gp2x/lib/libc.so.6: undefined reference to `_rtld_global_ro@GLIBC_PRIVATE'
/usr/local/gp2xdev/gp2x/lib/libc.so.6: undefined reference to `_dl_out_of_memory@GLIBC_PRIVATE'
/home/src/gp2xsdk/Tools/arm-gp2x-linux/bin/../lib/libdl.so.2: undefined reference to `_dl_open@GLIBC_2.0'
/home/src/gp2xsdk/Tools/arm-gp2x-linux/bin/../lib/libdl.so.2: undefined reference to `_dl_vsym@GLIBC_2.2'
/usr/local/gp2xdev/gp2x/lib/libc.so.6: undefined reference to `_dl_argv@GLIBC_PRIVATE'
/home/src/gp2xsdk/Tools/arm-gp2x-linux/bin/../lib/libdl.so.2: undefined reference to `_dl_sym@GLIBC_2.2'
collect2: ld returned 1 exit status
make: *** [vril.gpe] Error 1

OR:
/usr/local/arm-dev/bin/arm-linux-gcc	-I/gp2xsdk/Tools/arm-gp2x-linux/include -I/gp2xsdk/Tools/arm-gp2x-linux/include/SDL -I/usr/local/gp2xdev/include/cairo/ -I/usr/local/gp2xdev/include/ vril.c -L/usr/local/gp2xdev/gp2x/lib -L/usr/local/gp2xdev/lib/ -lSDL -lSDL_svg -lSDL_gfx -lSDL_mixer -lSDL_ttf -lJudy -lsvg-cairo -lcairo -lsvg -lMidiShare -ljpeg -lpng -lz -lpthread -lxml2 -lm -lfontconfig -lexpat -lfreetype -Wl,-rpath-link=/usr/local/gp2xdev/lib -o vril.gpe
/usr/local/arm-dev/arm-linux/bin/ld: Error: /usr/local/arm-dev/lib/gcc-lib/arm-linux/2.95.3/crtend.o uses hard floating point, whereas vril.gpe uses soft floating point
No such file or directory: failed to merge target specific data of file /usr/local/arm-dev/lib/gcc-lib/arm-linux/2.95.3/crtend.o
/usr/local/arm-dev/arm-linux/bin/ld: Error: /usr/local/arm-dev/arm-linux/lib/crtn.o uses hard floating point, whereas vril.gpe uses soft floating point
No such file or directory: failed to merge target specific data of file /usr/local/arm-dev/arm-linux/lib/crtn.o
/usr/local/gp2xdev/gp2x/lib/libpthread.so.0: undefined reference to `_rtld_global@GLIBC_PRIVATE'
/usr/local/arm-dev/arm-linux/lib/libdl.so.2: undefined reference to `_dl_close@GLIBC_2.0'
/usr/local/arm-dev/arm-linux/lib/libdl.so.2: undefined reference to `_dl_addr@GLIBC_2.0'
/usr/local/gp2xdev/gp2x/lib/libc.so.6: undefined reference to `__libc_enable_secure@GLIBC_PRIVATE'
/usr/local/gp2xdev/gp2x/lib/libc.so.6: undefined reference to `_rtld_global_ro@GLIBC_PRIVATE'
/usr/local/gp2xdev/gp2x/lib/libc.so.6: undefined reference to `_dl_out_of_memory@GLIBC_PRIVATE'
/usr/local/arm-dev/arm-linux/lib/libdl.so.2: undefined reference to `_dl_open@GLIBC_2.0'
/usr/local/arm-dev/arm-linux/lib/libdl.so.2: undefined reference to `_dl_vsym@GLIBC_2.2'
/usr/local/gp2xdev/gp2x/lib/libc.so.6: undefined reference to `_dl_argv@GLIBC_PRIVATE'
/usr/local/arm-dev/arm-linux/lib/libdl.so.2: undefined reference to `_dl_sym@GLIBC_2.2'
collect2: ld returned 1 exit status
make: *** [vril.gpe] Error 1

What do I need? I need an enema.. or rather my system needs one. Then I need a toolchain build script I can use to make a toolchain that will let me:

1. Make the GP2X 2.4.28 kernel, plus modules.
2. Build an app with the following libs:

-lxml2 -lm -lpthread -lJudy -lMidiShare -lSDL -lSDL_image -lcairo -lpng -ljpeg -lglitz -lfreetype -lfontconfig -lexpat -lz -lsvg -lsvg-cairo -lg

Anyone got such a thing? gcc-3.3.4 would be nice (latest gcc you can use to build a 2.4.x kernel..), and it would be very nice if the float support weren't hacked all to buggery, like it is with the above mess ..
 
Back
Top