Nur toolchain bauen und wiederverwenden

Kreuzuebersetzer, Diskussion über Änderungen im Tuxbox-CDK und Tuxbox-CVS
bellum
bbs-Maintainer
Beiträge: 282
Registriert: Montag 23. Oktober 2006, 22:13

Nur toolchain bauen und wiederverwenden

Beitrag von bellum »

Hallo zusammen,

nachdem der Nachwuchs nun soweit "in trockenen Tüchern" ist, kann ich mich auch wieder meinem Lieblingshobby dbox etwas mehr widmen (war aber nie wirklich weg und habe immer fleißig mitgelesen).

Nachdem sich hier in der letzten Zeit enorm viel tut und ich meine Entwicklungs-VM eh neu aufsetzen musste, habe ich mich von http://dreambox-fan.de/forum/viewtopic. ... 24#p371124 inspirieren lassen um mal nur eine wiederverwendbare Toolchain zu bauen.

Leider kommt nach einem checkout, autogen, configure und make bootstrap folgender Fehler:

Code: Alles auswählen

gcc -DHAVE_CONFIG_H -I. -I../../binutils-2.19.51.0.10/binutils -I. -I. -I../../binutils-2.19.51.0.10/binutils -I../bfd -I../../binutils-2.19.51.0.10/binutils/../bfd -I../../binutils-2.19.51.0.10/binutils/../include -DLOCALEDIR="\"/home/bellum/tuxbox/dbox2/cdk/share/locale\"" -Dbin_dummy_emulation=bin_vanilla_emulation   -W -Wall -Wstrict-prototypes -Wmissing-prototypes -g -O2 -c arparse.c
/bin/sh ../../binutils-2.19.51.0.10/binutils/../ylwrap ../../binutils-2.19.51.0.10/binutils/arlex.l lex.yy.c arlex.c -- flex
gcc -DHAVE_CONFIG_H -I. -I../../binutils-2.19.51.0.10/binutils -I. -I. -I../../binutils-2.19.51.0.10/binutils -I../bfd -I../../binutils-2.19.51.0.10/binutils/../bfd -I../../binutils-2.19.51.0.10/binutils/../include -DLOCALEDIR="\"/home/bellum/tuxbox/dbox2/cdk/share/locale\"" -Dbin_dummy_emulation=bin_vanilla_emulation   -W -Wall -Wstrict-prototypes -Wmissing-prototypes -g -O2 -c arlex.c
gcc -DHAVE_CONFIG_H -I. -I../../binutils-2.19.51.0.10/binutils -I. -I. -I../../binutils-2.19.51.0.10/binutils -I../bfd -I../../binutils-2.19.51.0.10/binutils/../bfd -I../../binutils-2.19.51.0.10/binutils/../include -DLOCALEDIR="\"/home/bellum/tuxbox/dbox2/cdk/share/locale\"" -Dbin_dummy_emulation=bin_vanilla_emulation   -W -Wall -Wstrict-prototypes -Wmissing-prototypes -g -O2 -c ../../binutils-2.19.51.0.10/binutils/ar.c
../../binutils-2.19.51.0.10/binutils/ar.c:282:1: directives may not be used inside a macro argument
../../binutils-2.19.51.0.10/binutils/ar.c:280:21: unterminated argument list invoking macro "_"
../../binutils-2.19.51.0.10/binutils/ar.c: In function `usage':
../../binutils-2.19.51.0.10/binutils/ar.c:285: `_' undeclared (first use in this function)
../../binutils-2.19.51.0.10/binutils/ar.c:285: (Each undeclared identifier is reported only once
../../binutils-2.19.51.0.10/binutils/ar.c:285: for each function it appears in.)
../../binutils-2.19.51.0.10/binutils/ar.c:285: parse error before string constant
make[5]: *** [ar.o] Error 1
make[5]: Leaving directory `/home/bellum/tuxbox/cvs/cvs_091018/cdk/build_binutils/binutils'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory `/home/bellum/tuxbox/cvs/cvs_091018/cdk/build_binutils/binutils'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/home/bellum/tuxbox/cvs/cvs_091018/cdk/build_binutils/binutils'
make[2]: *** [all-binutils] Error 2
make[2]: Leaving directory `/home/bellum/tuxbox/cvs/cvs_091018/cdk/build_binutils'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/bellum/tuxbox/cvs/cvs_091018/cdk/build_binutils'
make: *** [.deps/binutils] Error 2
[bellum@hoth cdk]$
Kann jemand damit etwas anfangen und mir helfen wo es klemmt?

Danke und Gruß

bellum
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Nur toolchain bauen und wiederverwenden

Beitrag von rhabarber1848 »

Wahrscheinlich ein distro-abhängiges Problem.
Welche Distribution nutzt Du?
bellum
bbs-Maintainer
Beiträge: 282
Registriert: Montag 23. Oktober 2006, 22:13

Re: Nur toolchain bauen und wiederverwenden

Beitrag von bellum »

rhabarber1848 hat geschrieben:Wahrscheinlich ein distro-abhängiges Problem.
Welche Distribution nutzt Du?
Das gleiche Setup wie in http://dreambox-fan.de/forum/viewtopic. ... 79#p367779 nur neuinstalliert auf einem anderen Rechner.
Die alte VM gibt es aber auch noch und damals konnte ich ein Image kompilieren. Dort wurde aber auch binutils-2.19.51.0.4 statt binutils-2.19.51.0.10 genutzt.
Kann es daran liegen?

Gruß
bellum
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Nur toolchain bauen und wiederverwenden

Beitrag von rhabarber1848 »

Welche gcc-Version nutzt Du in beiden VMs?
Lt. http://bugs.gentoo.org/show_bug.cgi?id=117140#c3 ist gcc-3.2.3 zu alt.
bellum
bbs-Maintainer
Beiträge: 282
Registriert: Montag 23. Oktober 2006, 22:13

Re: Nur toolchain bauen und wiederverwenden

Beitrag von bellum »

rhabarber1848 hat geschrieben:Welche gcc-Version nutzt Du in beiden VMs?
Lt. http://bugs.gentoo.org/show_bug.cgi?id=117140#c3 ist gcc-3.2.3 zu alt.

Code: Alles auswählen

I am testing that you have the required versions of libtool, autoconf,
automake, make, gettext, gcc, and g++.

checking for libtool >= 1.4.2 ... yes (version 1.4.3)
checking for autoconf >= 2.57a ... yes (version 2.59)
checking for automake >= 1.8 ... yes (version 1.9.2)
checking for gettext >= 0.12.1 ... yes (version 0.14.1)
checking for make >= 3.80 ... yes (version 3.80)
checking for gcc >= 3.0 or = 2.95 ... yes (version 3.2.2)
checking for g++ >= 3.0 or = 2.95 ... yes (version 3.2.2)
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Nur toolchain bauen und wiederverwenden

Beitrag von rhabarber1848 »

bellum hat geschrieben:Dort wurde aber auch binutils-2.19.51.0.4 statt binutils-2.19.51.0.10 genutzt.
Kann es daran liegen?
Ja. Zwischen beiden Versionen wurde ar.c geändert.
Probier bitte die aktuelle binutils-Version 2.20.51.0.2,
dort gab es wieder Änderungen ar.c, vielleicht wurde
der Fehler behoben.

Patch dazu gibt es hier: http://forum.tuxbox-cvs.sourceforge.net ... 71#p371571
Ich nutze binutils 2.20.x bereits seit einigen Wochen ohne
Probleme und wollte sie demnächst auch ins CVS einchecken.
Vielleicht mache ich das früher, wenn von Dir eine positive
Rückmeldung kommt.

Aber irgendwann kann für Dich der Punkt kommen, dass mit
Deiner alten RedHat kein Hut mehr zu gewinnen ist. Was
denkst Du über VirtualBox und Debian Lenny aus meinem
VMWare-Howto?
bellum
bbs-Maintainer
Beiträge: 282
Registriert: Montag 23. Oktober 2006, 22:13

Re: Nur toolchain bauen und wiederverwenden

Beitrag von bellum »

rhabarber1848 hat geschrieben:Patch dazu gibt es hier: http://forum.tuxbox-cvs.sourceforge.net ... 71#p371571
Ich nutze binutils 2.20.x bereits seit einigen Wochen ohne
Probleme und wollte sie demnächst auch ins CVS einchecken.
Vielleicht mache ich das früher, wenn von Dir eine positive
Rückmeldung kommt.
Mit Deinem Patch für die binutils-Version 2.20.51.0.2 hat es nun durchkompiliert :D
Vielen Dank für Deine Hilfe!
Wie Sieht es aber nun mit der Wiederverwendbarkeit der Toolchain aus?
rhabarber1848 hat geschrieben:CVS in ein leeres Verzeichnis kopieren, autogen/configure wie gehabt

make bootstrap

$PREFIX, also die Verzeichnisse, die durch bootstrap erstellt wurden, woanders hin kopieren,
das betrifft die Verzeichnisse "cdk cdkflash cdkroot tftpboot"

Beim nächsten Kompilieren:
- CVS in ein leeres Verzeichnis kopieren, autogen/configure wie gehabt
- cp -pr $Kopie_des_alten_prefix/* $PREFIX/
- make install-linux-headers

Code: Alles auswählen

for i in binutils bootstrap bootstrap_gcc directories gcc install-linux-headers libc linuxdir; do
    touch .deps/$i
done
Welches $PREFIX ist gemeint. Das in dem "cdk cdkflash cdkroot tftpboot" drin sind?
Und was hat es mit dem Code-Schnipsel auf sich?

Wäre prima, wenn Du mir das noch mal genauer erklären könntest.

Nochmals Danke und Gruß
bellum
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Nur toolchain bauen und wiederverwenden

Beitrag von rhabarber1848 »

bellum hat geschrieben:Mit Deinem Patch für die binutils-Version 2.20.51.0.2 hat es nun durchkompiliert :D
Gut.
bellum hat geschrieben:
rhabarber1848 hat geschrieben:$PREFIX, also die Verzeichnisse, die durch bootstrap erstellt wurden, woanders hin kopieren,
das betrifft die Verzeichnisse "cdk cdkflash cdkroot tftpboot"

Beim nächsten Kompilieren:
- CVS in ein leeres Verzeichnis kopieren, autogen/configure wie gehabt
- cp -pr $Kopie_des_alten_prefix/* $PREFIX/
Welches $PREFIX ist gemeint. Das in dem "cdk cdkflash cdkroot tftpboot" drin sind?
Wenn Du den cp -pr-Befehl ausführst, ist $PREFIX noch leer.
Es ist das Verzeichnis, wo normalerweise durch das Kompilieren
die Verzeichnisse "cdk cdkflash cdkroot tftpboot" angelegt werden.
bellum hat geschrieben:Und was hat es mit dem Code-Schnipsel auf sich?
Das buildsystem benötigt marker-Dateien, die durch das alleinige
Kopieren des o.g. Verzeichnisses nicht angelegt werden. Der
Code-Schnipsel erledigt das.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Nur toolchain bauen und wiederverwenden

Beitrag von rhabarber1848 »

bellum hat geschrieben:Mit Deinem Patch für die binutils-Version 2.20.51.0.2 hat es nun durchkompiliert :D
committed:
http://forum.tuxbox-cvs.sourceforge.net ... 81#p371581
bellum
bbs-Maintainer
Beiträge: 282
Registriert: Montag 23. Oktober 2006, 22:13

Re: Nur toolchain bauen und wiederverwenden

Beitrag von bellum »

rhabarber1848 hat geschrieben:committed:
http://www.tuxbox-cvs.sourceforge.net/for ... 81#p371581
Danke für den commit, baue nun gerade ein make yadd-neutrino...
rhabarber1848 hat geschrieben:Das buildsystem benötigt marker-Dateien, die durch das alleinige
Kopieren des o.g. Verzeichnisses nicht angelegt werden. Der
Code-Schnipsel erledigt das.
Von welchem Verzeichnis aus muss ich denn den Conde-Schnipsel aufrufen?
rhabarber1848 hat geschrieben:Was denkst Du über VirtualBox und Debian Lenny aus meinem VMWare-Howto.
Ich finde das HowTo prinzipiell toll, nur im Moment nicht für mich obwohl ich sonst bei Linux auch Debian benutze. Bin halt von meinem Job her sehr in der Microsoft-Welt behaftet und würde vorerst gerne bei Virutal Server bleiben. Wenn es natürlich gar nicht mehr geht, werde ich mir was anderes ausdenken (müssen). Aber bisher haben wir bzw. Du ja alles wieder hinbekommen. Noch mal Danke dafür.

Gruß bellum
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Nur toolchain bauen und wiederverwenden

Beitrag von rhabarber1848 »

bellum hat geschrieben:Von welchem Verzeichnis aus muss ich denn den Conde-Schnipsel aufrufen?
Wenn Du mit absoluten Pfaden arbeitest, ist das egal.
Wichtig ist nur, dass "cdk cdkflash cdkroot tftpboot"
nach dem Kopieren wieder am gleichen Ort liegen, wo
sie durch "make bootstrap" ursprünglich abgelegt wurden
bellum
bbs-Maintainer
Beiträge: 282
Registriert: Montag 23. Oktober 2006, 22:13

Re: Nur toolchain bauen und wiederverwenden

Beitrag von bellum »

rhabarber1848 hat geschrieben:
bellum hat geschrieben:Von welchem Verzeichnis aus muss ich denn den Conde-Schnipsel aufrufen?
Wenn Du mit absoluten Pfaden arbeitest, ist das egal.
Wichtig ist nur, dass "cdk cdkflash cdkroot tftpboot"
nach dem Kopieren wieder am gleichen Ort liegen, wo
sie durch "make bootstrap" ursprünglich abgelegt wurden
Wollte/musste heute neu auschecken und mit der vorhandenen Toolchain neu bauen.
Habe den Code-Schnipsel dann vom cdk Verzeichnis aufgerufen und alles hat prima geklappt - Super :)

Gruß bellum