hey pim,
der toolchain wird automatisch mitkompiliert wenn du ein packet kompilierst, zB which
Code:
make directories ipkg-utils which
du kannst den toolchain auch explizit bauen
Code:
make directories ipkg-utils toolchain
und nun mein momentanes problemchen mit dem toolchain das seit einigen tagen hartnäckig nervt
erstmal mein code
Code:
svn co http://svn.nslu2-linux.org/svnroot/optware/trunk optware
cd optware
make oleg-target
cd oleg
make directories
make ipkg-utils
make toolchain
klappt alles gut bis zum toolchain kompilieren. beim bauen desselbigen wird irgendwann versucht die kernel header runterzuladen. das geht schief weil die angeforderte datei linux-libc-headers-oleg.tar.bz2 nicht auf dem angegebenen server http://www.uclibc.org/downloads/toolchain/ vorhanden ist
Code:
Checking build system dependencies:
CC clean: Ok
CXX clean: Ok
CPP clean: Ok
CFLAGS clean: Ok
CXXFLAGS clean: Ok
sed works: Ok
which installed: Ok
GNU make version '3.81': Ok
C compiler '/usr/bin/gcc'
C compiler version '4.1.1': Ok
bison installed: Ok
flex installed: Ok
gettext installed: Ok
Build system dependencies: Ok
wget --passive-ftp -nd -P /opt/slug/optware/oleg/toolchain/buildroot/dl http://www.uclibc.org/downloads/toolchain/linux-libc-headers-oleg.tar.bz2
--2008-05-30 12:36:33-- http://www.uclibc.org/downloads/toolchain/linux-libc-headers-oleg.tar.bz2
Resolving www.uclibc.org... 140.211.166.42
Connecting to www.uclibc.org|140.211.166.42|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2008-05-30 12:36:34 ERROR 404: Not Found.
make[1]: *** [/opt/slug/optware/oleg/toolchain/buildroot/dl/linux-libc-headers-oleg.tar.bz2] Error 1
das hab ich erstmal temporär gefixt durch folgende zeile ( in rot ) in /optware/oleg/toolchain/buildroot/toolchain/kernel-headers/kernel-headers.mk
Code:
...
include toolchain/kernel-headers/kernel-headers-new.makefile
include toolchain/kernel-headers/kernel-headers-old.makefile
LINUX_HEADERS_SITE=http://www.wlan-sat.com/boleo/optware
...
nun werden die richtigen(?) header runtergeladen
Code:
wget --passive-ftp -nd -P /opt/slug/optware/oleg/toolchain/buildroot/dl http://www.wlan-sat.com/boleo/optware/linux-libc-headers-oleg.tar.bz2
--2008-05-30 12:42:57-- http://www.wlan-sat.com/boleo/optware/linux-libc-headers-oleg.tar.bz2
Resolving www.wlan-sat.com... 212.18.63.81
Connecting to www.wlan-sat.com|212.18.63.81|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3331707 (3.2M) [application/x-tar]
Saving to: `/opt/slug/optware/oleg/toolchain/buildroot/dl/linux-libc-headers-oleg.tar.bz2'
100%[========================================================================>] 3,331,707 413K/s in 8.4s
2008-05-30 12:43:06 (388 KB/s) - `/opt/slug/optware/oleg/toolchain/buildroot/dl/linux-libc-headers-oleg.tar.bz2' saved [3331707/3331707]
aber schon bald geht das patchen der uclibc schief
Code:
toolchain/patch-kernel.sh /opt/slug/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/uClibc toolchain/uClibc/ uClibc-0.9.29\*.patch
cat ../../sources/buildroot/uClibc-patches/*.patch | patch -d /opt/slug/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/uClibc -p1
patching file Makefile
Hunk #1 FAILED at 163.
1 out of 1 hunk FAILED -- saving rejects to file Makefile.rej
patching file libc/sysdeps/linux/mips/sigaction.c
Hunk #1 FAILED at 49.
1 out of 1 hunk FAILED -- saving rejects to file libc/sysdeps/linux/mips/sigaction.c.rej
patching file libc/sysdeps/linux/mips/pipe.S
Hunk #1 FAILED at 10.
...
die benutzte uclibc ist der letzte snapshot auf http://www.uclibc.org/downloads/snapshots/. das scheint version 0.9.29 zu sein.
Code:
...
wget --passive-ftp -nd -P /opt/slug/optware/oleg/toolchain/buildroot/dl http://www.uclibc.org/downloads/snapshots/uClibc-snapshot.tar.bz2
--2008-05-30 12:43:09-- http://www.uclibc.org/downloads/snapshots/uClibc-snapshot.tar.bz2
Resolving www.uclibc.org... 140.211.166.42
Connecting to www.uclibc.org|140.211.166.42|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3533575 (3.4M) [application/x-tar]
Saving to: `/opt/slug/optware/oleg/toolchain/buildroot/dl/uClibc-snapshot.tar.bz2'
...
die patches sind aber für version 0.9.28. dummerweise konnte ich die version der uclibc beim konfigurieren des kernels nicht auswählen, da die snapshot version per default aktiviert ist
Code:
choice[1-8?]: 4
*
* uClibc Options
*
uClibc C library Version
1. uClibc 0.9.28 (BR2_UCLIBC_VERSION_0_9_28)
> 2. daily snapshot (BR2_UCLIBC_VERSION_SNAPSHOT)
choice[1-2?]: 2
Date (yyyymmdd) of snapshot or 'snapshot' for latest (BR2_USE_UCLIBC_SNAPSHOT) [snapshot] (NEW)
deshalb noch einmal ein temporärer hack, diesmal in /oleg/make/buildroot.mk
Code:
...
ifneq ($(OPTWARE_TARGET), ts101)
...
sed -i -e 's|^# BR2_UCLIBC_VERSION_0_9_28 is not set|BR2_UCLIBC_VERSION_0_9_28=y|' $(BUILDROOT_BUILD_DIR)/.config
sed -i -e 's|^BR2_UCLIBC_VERSION_SNAPSHOT=.*|# BR2_UCLIBC_VERSION_SNAPSHOT is not set|' $(BUILDROOT_BUILD_DIR)/.config
endif
jetzt benutz ich die richtige uclibc
Code:
wget --passive-ftp -nd -P /opt/slug/optware/oleg/toolchain/buildroot/dl http://www.uclibc.org/downloads/uClibc-0.9.28.tar.bz2
--2008-05-30 12:56:50-- http://www.uclibc.org/downloads/uClibc-0.9.28.tar.bz2
Resolving www.uclibc.org... 140.211.166.42
Connecting to www.uclibc.org|140.211.166.42|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1763847 (1.7M) [application/x-tar]
...
das bauen läuft dann ne ganze weile durch, bricht dann aber mit folgendem fehler ab
Code:
...
make -C abi/libgcc_eh all
make[3]: /opt/slug/optware/oleg/toolchain/mipsel-linux-uclibc/gcc-4.1.1-uclibc-0.9.28/bin/mipsel-linux-uclibc-gcc: Command not found
make[3]: Entering directory `/opt/slug/optware/oleg/builds/libuclibc++/src/abi/libgcc_eh'
/bin/sh: /opt/slug/optware/oleg/toolchain/mipsel-linux-uclibc/gcc-4.1.1-uclibc-0.9.28/bin/mipsel-linux-uclibc-gcc: No such file or directory
/bin/sh: /opt/slug/optware/oleg/toolchain/mipsel-linux-uclibc/gcc-4.1.1-uclibc-0.9.28/bin/mipsel-linux-uclibc-ld: No such file or directory
/bin/sh: /opt/slug/optware/oleg/toolchain/mipsel-linux-uclibc/gcc-4.1.1-uclibc-0.9.28/bin/mipsel-linux-uclibc-gcc: No such file or directory
../../../scripts/find_libgcc_eh.sh: line 8: /opt/slug/optware/oleg/toolchain/mipsel-linux-uclibc/gcc-4.1.1-uclibc-0.9.28/bin/mipsel-linux-uclibc-gcc: No such file or directory
/opt/slug/optware/oleg/toolchain/mipsel-linux-uclibc/gcc-4.1.1-uclibc-0.9.28/bin/mipsel-linux-uclibc-ar x
make[3]: /opt/slug/optware/oleg/toolchain/mipsel-linux-uclibc/gcc-4.1.1-uclibc-0.9.28/bin/mipsel-linux-uclibc-ar: Command not found
make[3]: *** [unwind-c.o] Error 127
make[3]: Leaving directory `/opt/slug/optware/oleg/builds/libuclibc++/src/abi/libgcc_eh'
das fehlen von gcc und ld versteh ich nicht. der angegebene pfad existiert auf meinem system nicht und sollten die nicht ebenfalls automatisch gebaut werden BEVOR sie benötigt werden?
nun frag ich mich: muss das denn alles so sein warum kann ich zb die uclibc nicht auswählen und wie krieg ich ein richtig sauberen build hin ohne selbst in makefiles rumzupfuschen? freu mich auf tips
wenn der build irgendwann läuft wollte ich für den anfang ein silc-server packet erstellen. hoffe, das es bald soweit ist...
olo