A Fresh New Toolchain+libs - Compiled On Demand!


First of all, the script worked fine on my SuSE linux system and I already compiled some test programs which are perfectly running on my GP2x.
There is only one problem: When I compiled Guyfawkes SDL test program I couldn't include vorbisidec and replaced it with vorbis but OGG playback is now very slow. It would be cool if you can include the fixed point decoding routines into the libs :).
 
Ahh, so vorbisdec is part of the fixed-point vorbis decoder? I was wondering where that went.

I'll add that to my todo list. Hopefully I'll have another release out by the end of the weekend.
 
I tried the script, had the problem with "cp -a" on OSX, changed it to "cp -RHp", and tried to run it again.

On the second attempt, it failed on the wget of linux-libc-headers, since the mirror site apparently does not allow continuations.

I already had the rest of the files from a previous tool build, so I changed the file to skip that one, and then it hung up on the wget of binutils, which is the next file. I suspect that the version of wget on OSX may not work quite as well. Perhaps there should be a different way to detect that the files have already been downloaded.
 
I rebuild the sdltest demo. Ogg playing works fine now, thanks :)!
 
I get an error here (like the one earlier in the thread):

Code:
##
## Executing the following command:
##
## { export | grep ' PATH=' | grep '/usr/local/gp2xdev'; }
##

ERROR: Please read README.GP2X for information.

I'm using the -20060209 script.

I have the following set thanks to a modified ~/.bashrc

Code:
$ echo $GP2XDEV
/usr/local/gp2xdev
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games:/usr/local/gp2xdev/bin

Any ideas?
 
FluffyPanda posted on Feb 9 2006 at 01:13 PM said:
Code:
##
## Executing the following command:
##
## { export | grep ' PATH=' | grep '/usr/local/gp2xdev'; }
##

ERROR: Please read README.GP2X for information.

Any ideas?
that code relies on certain shell features.. I replaced it with
Code:
env |grep "PATH=" | ...
(notice that there's no space before PATH anymore) to make it work on my system.

testing if the new tree still works with my updated patches (solaris support - more generally, the script and glibc don't assume that everything it runs is gnu anymore), once they work, I'll announce them here.
 
Last edited by a moderator:
oxygene posted on Feb 9 2006 at 02:36 PM said:
FluffyPanda posted on Feb 9 2006 at 01:13 PM said:
Code:
##
## Executing the following command:
##
## { export | grep ' PATH=' | grep '/usr/local/gp2xdev'; }
##

ERROR: Please read README.GP2X for information.
that code relies on certain shell features.. I replaced it with
Code:
env |grep "PATH=" | ...
(notice that there's no space before PATH anymore) to make it work on my system.
My problem at the moment is that I don't really see what the two greps are needed for. It looks to my untrained eye like they are missing a file or location to grep ($PATH seems like the obvious place)

Nor do I understand why the previous line works just fine:
Code:
{ export | grep ' GP2XDEV='; }

I should really have mentioned in the last post that I'm using kubuntu at the moment.

I'm still stumped.
 
Last edited by a moderator:
FluffyPanda posted on Feb 9 2006 at 04:41 PM said:
My problem at the moment is that I don't really see what the two greps are needed for.  It looks to my untrained eye like they are missing a file or location to grep ($PATH seems like the obvious place)

grep can work as a filter, so it's grepping standard input in this case.

as for your original problem, are you exporting your shell-variables? Or they won't show up in export's output...

P.
 
Last edited by a moderator:
Comment out the parts that aren't working for you and I'll take a look at it when I get home tonight.

There should be a better way of checking for a valid path, I know it.
 
ooPo posted on Feb 8 2006 at 11:16 PM said:
- Changed $make to 'make -j2' for smp love at half the price.

'make -j2' doesn't work on cygwin, it crashes during gcc-4.0.2 stage 1 compile.

If that is changed to simply 'make', it runs perfectly.
 
Last edited by a moderator:
luteijn posted on Feb 9 2006 at 04:54 PM said:
grep can work as a filter, so it's grepping standard input in this case.
right. That makes a bit more sense then. We're passing export through grep twice to see if the PATH contains the correct folder. Thanks for clearing that up.
luteijn posted on Feb 9 2006 at 04:54 PM said:
as for your original problem, are you exporting your shell-variables? Or they won't show up in export's output...
Yeah. export has a row near the bottom that reads "declare -x PATH="all/my/paths/including/gp2xdev/one"

I'll comment the check out since I'm now pretty sure that I've validated what it was checking for myself now anyway.
 
Last edited by a moderator:
Bugs found:

*svn and libtool should be dependencies, both required for Tremor install
*Should remove tremor directory before attempting to retrieve it from svn, errors if a partial installation was aborted
*paeryn's SDL has the archive error on cygwin, maybe made it ignore this error somehow, since the file it can't extract doesn't seem to matter? Not sure on this one...
 
Code:
make[2]: gp2x-ar: Command not found
It appears that it can't find gp2x-ar, which is provided by binutils earlier in the script. Are you sure you have your paths set properly as indicated in README.GP2X?
 
I just tried rebuilding the toolchain on my Debian Linux system, using the 20060211 version of toolchain.pl, and it appears to be broken now. It seems to be related to the changes to the 'uname' calls for finding out the build host. When 'uname -p' is run on my system, it returns 'unknown', while 'uname -m' returns 'i686'. The toolchain.pl script now dies during ./configure of glibc, complaining that 'unknown' is an unrecognized machine type.

I'm going to go in and hack the setting of $unamem, and see if that makes things right (for me).
 
Yeah, that was a side effect of oxygene's non-gnu additions.

Setting $unamem to 'uname -m' works fine and will be the default in future releases.

(In fact, I've just updated it to 20060215, fixing the uname problem and removing the getpwnam() call from libmikmod so it won't complain when you link with it anymore...)
 
One thing to consider adding to the gcc patch ooPo... could you make it switch out all '\\'s with '/'s when it looks at the input file name? This would make the cygwin build compatible with VS2005 like devkitpro currently is, and would make me forever grateful :)
 
i have a problem,

i have compiled with this script a new toolchain
burt if i want to link with the gp2x-gcc staticly, i got some errors

/usr/gp2x/lib/gcc/gp2x/4.0.2/../../../../gp2x/lib/libpthread.a(lockfile.o): In function `flockfile':
lockfile.c:(.text+0x0): multiple definition of `__flockfile'
/usr/gp2x/lib/gcc/gp2x/4.0.2/../../../../gp2x/lib/libc.a(flockfile.o):flockfile.c:(.text+0x0): first defined here
/usr/gp2x/lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: Warning: size of symbol `__flockfile' changed from 24 in /usr/gp2x/lib/gcc/gp2x/4.0.2/../../../../gp2x/lib/libc.a(flockfile.o) to 8 in /usr/gp2x/lib/gcc/gp2x/4.0.2/../../../../gp2x/lib/libpthread.a(lockfile.o)
/usr/gp2x/lib/gcc/gp2x/4.0.2/../../../../gp2x/lib/libpthread.a(lockfile.o): In function `funlockfile':
lockfile.c:(.text+0x8): multiple definition of `__funlockfile'
/usr/gp2x/lib/gcc/gp2x/4.0.2/../../../../gp2x/lib/libc.a(funlockfile.o):funlockfile.c:(.text+0x0): first defined here
/usr/gp2x/lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: Warning: size of symbol `__funlockfile' changed from 24 in /usr/gp2x/lib/gcc/gp2x/4.0.2/../../../../gp2x/lib/libc.a(funlockfile.o) to 8 in /usr/gp2x/lib/gcc/gp2x/4.0.2/../../../../gp2x/lib/libpthread.a(lockfile.o)
/usr/gp2x/lib/gcc/gp2x/4.0.2/../../../../gp2x/lib/libpthread.a(lockfile.o): In function `flockfile':
lockfile.c:(.text+0x0): multiple definition of `_IO_flockfile'
/usr/gp2x/lib/gcc/gp2x/4.0.2/../../../../gp2x/lib/libc.a(flockfile.o):flockfile.c:(.text+0x0): first defined here
/usr/gp2x/lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: Warning: size of symbol `_IO_flockfile' changed from 24 in /usr/gp2x/lib/gcc/gp2x/4.0.2/../../../../gp2x/lib/libc.a(flockfile.o) to 8 in /usr/gp2x/lib/gcc/gp2x/4.0.2/../../../../gp2x/lib/libpthread.a(lockfile.o)
/usr/gp2x/lib/gcc/gp2x/4.0.2/../../../../gp2x/lib/libpthread.a(lockfile.o): In function `funlockfile':
lockfile.c:(.text+0x8): multiple definition of `_IO_funlockfile'
/usr/gp2x/lib/gcc/gp2x/4.0.2/../../../../gp2x/lib/libc.a(funlockfile.o):funlockfile.c:(.text+0x0): first defined here
/usr/gp2x/lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: Warning: size of symbol `_IO_funlockfile' changed from 24 in /usr/gp2x/lib/gcc/gp2x/4.0.2/../../../../gp2x/lib/libc.a(funlockfile.o) to 8 in /usr/gp2x/lib/gcc/gp2x/4.0.2/../../../../gp2x/lib/libpthread.a(lockfile.o)
collect2: ld returned 1 exit status
make: *** [aspirin.gpe] Error 1

i have no idea what i can do to fix this -.-


i have linked -lc and -lgcc
that was my mistake ;)
so it worked a little bit more then before, but the old problem with a black sdl screen -.-
ok thanks =)
 
mudi: Can you explain further? This script used devkitpro's patches as a base... if they support it then this toolchain should also support it. Unless there's a command line switch or something.

boeseronkel2k: Can you give more information, such as the line used, with the order of linked libraries, to get this error? It seems like you're compiling code that has its own threading implementation already compiled-in and adding -lpthread is causing multiple definitions. Perhaps try taking it out?
 
Back
Top