Hi,
Ich habe mir die Toolchain von Oopo (gp2xdev-20060525.tar.bz2) zur Portierung einiger Programme ausgesucht. Runterladen und Durchkompilieren funktionierte einwandfrei unter Ubuntu Dapper.
http://www.slots-spielen.de/bewertung-casinos-bellini
Mir kam es gleich schon komisch vor, dass z.B, die glibc in Version 2.3.5 benutzt wird, da im GP2X doch 2.2.5 installiert ist. Kann doch nicht gut gehen. Und es geht nicht gut.
Schon ein winziges Programm, das tolower() (aus ctype.h) aufruft und mit -O2 übersetzt wird bringt beim Ausführen den Fehler, dass GLIBC_2.3 fehlt. Ist auch klar, denn beim Optimieren wird statt eines direkten Aufrufs von _tolower() ein Macro übersetzt, das widerum __ctype_tolower_loc() aufruft. Und diese Funktion existiert erst ab Version 2.3.
Während man so ein Miniprogramm noch durch kompilieren mit -static zum Laufen bringt (allerdings wird dann aus dem 3KB Programm ein 500KB Programm) ist das keine Lösung für große Programme. Neben allen Nachteilen statischer Bibliotheken kann man Probleme mit der libprthread so gar nicht in den Griff bekommen.
Noch andere Teile der Toolchain benutzen Versionen, die so auf dem GP2X nicht installiert sind.
Nun die Frage, was man machen soll? Andere Toolchain? Warum wird dann überall diese referiert (z.B. im Wiki). Oder gibt es eine völlig neue Linux Version für den GP2X mit Kernel 2.16 und glibc 2.3.5 usw. auf die ich noch nicht gestossen bin?
Vielen Dank für jede Hilfe,
Ich habe mir die Toolchain von Oopo (gp2xdev-20060525.tar.bz2) zur Portierung einiger Programme ausgesucht. Runterladen und Durchkompilieren funktionierte einwandfrei unter Ubuntu Dapper.
http://www.slots-spielen.de/bewertung-casinos-bellini
Mir kam es gleich schon komisch vor, dass z.B, die glibc in Version 2.3.5 benutzt wird, da im GP2X doch 2.2.5 installiert ist. Kann doch nicht gut gehen. Und es geht nicht gut.
Schon ein winziges Programm, das tolower() (aus ctype.h) aufruft und mit -O2 übersetzt wird bringt beim Ausführen den Fehler, dass GLIBC_2.3 fehlt. Ist auch klar, denn beim Optimieren wird statt eines direkten Aufrufs von _tolower() ein Macro übersetzt, das widerum __ctype_tolower_loc() aufruft. Und diese Funktion existiert erst ab Version 2.3.
Während man so ein Miniprogramm noch durch kompilieren mit -static zum Laufen bringt (allerdings wird dann aus dem 3KB Programm ein 500KB Programm) ist das keine Lösung für große Programme. Neben allen Nachteilen statischer Bibliotheken kann man Probleme mit der libprthread so gar nicht in den Griff bekommen.
Noch andere Teile der Toolchain benutzen Versionen, die so auf dem GP2X nicht installiert sind.
Nun die Frage, was man machen soll? Andere Toolchain? Warum wird dann überall diese referiert (z.B. im Wiki). Oder gibt es eine völlig neue Linux Version für den GP2X mit Kernel 2.16 und glibc 2.3.5 usw. auf die ich noch nicht gestossen bin?
Vielen Dank für jede Hilfe,