X-Original-To: alpine-devel@lists.alpinelinux.org Delivered-To: alpine-devel@mail.alpinelinux.org Received: from smtp-1.adminflex.de (smtp-1.adminflex.de [84.38.79.71]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.alpinelinux.org (Postfix) with ESMTPS id CB894DC00FE for ; Fri, 25 Oct 2013 12:30:52 +0000 (UTC) Received: from 91-66-231-240-dynip.superkabel.de ([91.66.231.240] helo=[192.168.178.35]) by smtp-1.adminflex.de with esmtpsa (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.69) (envelope-from ) id 1VZhXc-0005Gw-Ax for alpine-devel@lists.alpinelinux.org; Fri, 25 Oct 2013 13:35:04 +0000 Message-ID: <526A6478.3080007@port-zero.com> Date: Fri, 25 Oct 2013 14:30:48 +0200 From: "Leslie P. Polzer | PORT ZERO" User-Agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130428 Thunderbird/17.0.5 X-Mailinglist: alpine-devel Precedence: list List-Id: Alpine Development List-Unsubscribe: List-Post: List-Help: List-Subscribe: MIME-Version: 1.0 To: alpine-devel@lists.alpinelinux.org Subject: Cross-building (was: Re: [alpine-devel] musl and ARM in 2.7 (and an introduction)) References: <5260F6C9.9000505@port-zero.com> <20131018131615.5286bb75@vostro> In-Reply-To: <20131018131615.5286bb75@vostro> Content-Type: multipart/mixed; boundary="------------020409020200000005070303" This is a multi-part message in MIME format. --------------020409020200000005070303 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 T24gMTAvMTgvMjAxMyAxMjoxNiBQTSwgVGltbyBUZXJhcyB3cm90ZToNCg0KPj4gQWxzbywgaXMg dGhlcmUgYW4gZXN0YWJsaXNoZWQgd2F5IGFscmVhZHkgb2YgYnVpbGRpbmcgQWxwaW5lIGJhc2Vk DQo+PiBvbiBtdXNsIGFuZC9vciBjcm9zcy1jb21waWxpbmcgZm9yIEFSTT8gSXQgZG9lc24ndCBz ZWVtIHRvIGJlIGEgYmlnDQo+PiBkZWFsLCBidXQgSSdkIGxpa2UgdG8ga25vdyB0aGUgZWZmb3J0 cyB0aGF0IGhhdmUgYWxyZWFkeSBiZWVuIHB1dA0KPj4gaW50byB0aGlzIHNvIEknbSBub3QgZHVw bGljYXRpbmcgYW55IHdvcmsuDQo+IA0KPiBXZSd2ZSBwYXRjaGVkIGFwb3J0cyBzbyB0aGF0IGEg bWluaW1hbCBib290c3RyYXAgc3lzdGVtIGNhbiBiZSBjcm9zcw0KPiBjb21waWxlZC4gQWxsIGNo YW5nZXMgYXJlIGluIGdpdCBhbHJlYWR5LiBBbmQgc29tZSBtaW5vciBub3RlcyArIGxpbmtzDQo+ IHRvIHRoZSBzY3JpcHRzIEkgdXNlZCB0byBib290c3RyYXAgbXVzbCBidWlsZGVycyBhcmUgYXQg bXkgd2lraSB3YWxsOg0KPiBodHRwOi8vd2lraS5hbHBpbmVsaW51eC5vcmcvd2lraS9Vc2VyOkZh YmxlZA0KDQpUaGF0IGhlbHBlZCEgSSBoYWQgdG8gY2xlYXIgb3V0IHNvbWUgcm9hZGJsb2Nrcywg YWZ0ZXIgd2hpY2ggSSBub3cgaGF2ZQ0KYSBzdWNjZXNzZnVsIGFuZCByZXByb2R1Y2libGUgYm9v dHN0cmFwIGNyb3NzYnVpbGQgb2YgaTQ4Ni1hbHBpbmUtbGludXgtbXVzbA0KKHdpdGhvdXQgS0VS TkVMX1BLRyBhbmQgREVCVUdfUEtHIHNvIGZhcjsgSSBzaW1wbHkgaGF2ZW4ndCB0cmllZCkuDQoN ClRoZSBwcm9ibGVtcyBJIGVuY291bnRlcmVkLCB3b3JraW5nIHdpdGggeW91ciBzY3JpcHRzIG9u IGN1cnJlbnQgZWRnZToNCg0KSW4gY3JlYXRlY3Jvc3MtdG9vbGNoYWluLnNoOg0KDQoqIEkgaW5z dHJ1Y3RlZCBhYnVpbGQgdG8gY2xlYW4gdXAgdGhlIG11c2wgYnVpbGQgYmVmb3JlIGluc3RhbGxp bmcNCiAgaGVhZGVycy4gVGhpcyBpcyBuZWNlc3NhcnkgdG8gcHJldmVudCB0aGUgcGF0Y2hlcyBm cm9tIGJlaW5nIGFwcGxpZWQNCiAgbXVsdGlwbGUgdGltZXMgYnkgdGhlICJwcmVwYXJlIiBzdGVw IGlmIHlvdSBjYWxsIHRoZSBzY3JpcHQgbW9yZQ0KICB0aGFuIG9uY2UuDQoNCkluIGFidWlsZC1j cm9zc2J1aWxkLXg4Ni5jb25mOg0KDQoqIENCVUlMRCBpcyBubyBsb25nZXIgYmVpbmcgc2V0IGlu IC9ldGMvYWJ1aWxkLmNvbmYgKHRoaXMgd2FzIGNoYW5nZWQNCiAgcHJldHR5IHJlY2VudGx5KS4g VGhpcyBwcmV2ZW50ZWQgZ21wIGZyb20gYmVpbmcgYnVpbHQgY29ycmVjdGx5DQogIChJIHRoaW5r IGl0IGp1c3QgdXNlZCB0aGUgaG9zdCBzZXR0aW5nIGZvciB0aGUgYnVpbGQpLg0KICBNb3JlIHBh Y2thZ2VzIG1pZ2h0IGJlIGFmZmVjdGVkIGJ5IHRoaXMuDQoNCkluIGNyb3NzYnVpbGQtYWxwaW5l LWJvb3RzdHJhcC5zaDoNCg0KKiBTZXQgdXAgdGhlIHByb3BlciBwa2djb25maWcgZW52aXJvbm1l bnQgZm9yIHRoZSBjcm9zcyByb290Lg0KICBXaXRob3V0IHRoaXMgdGhlIHJlbGV2YW50IC5wYyBm aWxlcyBjYW5ub3QgYmUgZm91bmQuIFRoZSBmaXJzdA0KICBwYWNrYWdlIHRoYXQgYnJva2UgaW4g dGhlIG9yZGVyZWQgY3Jvc3NidWlsZCBiZWNhdXNlIG9mIHRoaXMNCiAgd2FzIGFway10b29scy4N Cg0KKiBBZGRlZCBpbnN0YWxsYXRpb24gb2YgYWxsIHBhY2thZ2VzIGFmdGVyIHRoZXkgaGF2ZSBi ZWVuIGJ1aWx0Lg0KICBUaGlzIGlzIGEgbmVjZXNzYXJ5IHN0ZXAgc2luY2UgbGF0ZXIgcGFja2Fn ZXMgcmVxdWlyZSBmaWxlcyBmcm9tDQogIGVhcmxpZXIgb25lcy4gQWxzbyBhdHRlbXB0IHRvIGlu c3RhbGwgJFBLRy1kZXYuIFNvbWUgcGFja2FnZXMgbmVlZA0KICBzcGVjaWFsIGNhc2luZyBoZXJl IHNpbmNlIHRoZWlyIC1kZXYgcGFja2FnZXMgaGF2ZSBhIGRpZmZlcmVudA0KICBuYW1lLiBNYXli ZSB0aGlzIHNob3VsZCBiZSBmaXhlZCBpbiB0aGUgcGFja2FnZXMgdGhlbXNlbHZlcy4NCiAgVGhl IHBhY2thZ2VzIGFmZmVjdGVkIGFyZSBnbXA1IChnbXAtZGV2KSBhbmQgbXBmcjMgKG1wZnItZGV2 KS4NCg0KKiBOb24tZXNzZW50aWFsOiBhbHNvIGFkZGVkIHBlci1wYWNrYWdlIGxvZ2dpbmcgdG8g Y3V0IGRvd24gb24gdGhlIG91dHB1dC4NCg0KSSdtIGF0dGFjaGluZyBhIHJvdWdoIGRpZmYgYWdh aW5zdCB5b3VyIHg4NiBjb25mIGZpbGVzIGFuZCB0aGUgdHdvDQpzY3JpcHRzLiBQbGVhc2UgbGV0 IG1lIGtub3cgaG93IHlvdSB3YW50IHRvIHByb2NlZWQgd2l0aCBpbnRlZ3JhdGluZw0KdGhlc2Ug Y2hhbmdlcy4NCg0KSSB3b25kZXIgaG93IHdlIGNhbiB0ZXN0IHBhY2thZ2VzIGZvciB0aGVpciBz YW5pdHkgcHJvcGVybHkgYWZ0ZXINCndlIGhhdmUgYnVpbHQgdGhlbS4gVGhlIHVzdWFsIHdheSBp cyBydW5uaW5nIHRoZSB0ZXN0c3VpdGUgKG1ha2UgY2hlY2spDQphZnRlciBjb21waWxhdGlvbi4g T2J2aW91c2x5IHRoaXMgd29uJ3Qgd29yayB3aGVuIGNyb3NzLWNvbXBpbGluZyB0bw0KYSBkaWZm ZXJlbnQgbWFjaGluZSBhcmNoaXRlY3R1cmUuIEFueSBpZGVhcz8NCg0KICBMZXNsaWUNCg0KLS0g DQpEaXBsLkluZy4oQkEpIExlc2xpZSBQLiBQb2x6ZXIgfCBDVE8gLSBQT1JUIFpFUk8NClVHICho YWZ0dW5nc2Jlc2NocsOkbmt0KQ0KU29mdHdhcmVlbnR3aWNrbHVuZyAmIElUIEVuZ2luZWVyaW5n DQpBZGFsYmVydHN0cmHDn2UgNy84DQoxMDk5OSBCZXJsaW4NClRlbC46ICs0OSAoMCkzMCAtIDY5 IDIwMCA5MDcgLSAwDQpGYXg6ICs0OSAoMCkzMCAtIDY5IDIwMCA5MDcgLSA5DQpodHRwOi8vd3d3 LnBvcnQtemVyby5jb20NCg== --------------020409020200000005070303 Content-Type: text/x-patch; name="alpine-crosscompile.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="alpine-crosscompile.diff" diff --git a/abuild-crossbuild-x86.conf b/abuild-crossbuild-x86.conf index 205f5f3..7637695 100644 --- a/abuild-crossbuild-x86.conf +++ b/abuild-crossbuild-x86.conf @@ -2,7 +2,8 @@ source /etc/abuild.conf unset CARCH CLIBC -# cross compile to ARM +# cross compile to x86 with musl +CBUILD=${CHOST} # CBUILD no longer gets set in abuild.conf CHOST=i486-alpine-linux-musl CTARGET=${CHOST} diff --git a/createcross-toolchain.sh b/createcross-toolchain.sh old mode 100644 new mode 100755 index 07f1a15..aabff54 --- a/createcross-toolchain.sh +++ b/createcross-toolchain.sh @@ -1,6 +1,7 @@ #!/bin/sh -export TARGET_ARCH=x86_64 +#export TARGET_ARCH=armhf +export TARGET_ARCH=x86 export ABUILD_CREATECROSS_CONF=$PWD/abuild-createcross-$TARGET_ARCH.conf export ABUILD_CROSSBUILD_CONF=$PWD/abuild-crossbuild-$TARGET_ARCH.conf export APORTS=$HOME/aports @@ -35,7 +36,7 @@ if [ $? -ne 0 ]; then # Step 4. C-library headers for target # cd $APORTS/main/musl - ABUILD_CONF=$ABUILD_CROSSBUILD_CONF abuild unpack prepare install_sysroot_headers || return 1 + ABUILD_CONF=$ABUILD_CROSSBUILD_CONF abuild clean unpack prepare install_sysroot_headers || return 1 # Step 5. Pass2 GCC for C-library (--with-newlib --enable-threads=no --disable-bootstrap) # diff --git a/crossbuild-alpine-bootstrap.sh b/crossbuild-alpine-bootstrap.sh old mode 100644 new mode 100755 index 541065e..8bcd21c --- a/crossbuild-alpine-bootstrap.sh +++ b/crossbuild-alpine-bootstrap.sh @@ -1,6 +1,8 @@ #!/bin/sh -TARGET_ARCH=x86_64 +#set -x + +TARGET_ARCH=x86 export ABUILD_CREATECROSS_CONF=$PWD/abuild-createcross-$TARGET_ARCH.conf export ABUILD_CONF=$PWD/abuild-crossbuild-$TARGET_ARCH.conf @@ -12,12 +14,16 @@ CTARGET="$(source $ABUILD_CONF ; echo $CTARGET)" REPODEST="$(source $ABUILD_CONF ; echo $REPODEST)" REPODEST_HOST="$(source $ABUILD_CREATECROSS_CONF ; echo $REPODEST)" PACKAGER_PRIVKEY="$(source $ABUILD_CONF ; echo $PACKAGER_PRIVKEY)" +LOGDIR="$HOME/crossbuild-logs" if [ -z "$CBUILDROOT" ]; then echo "CBUILDROOT needs to be set in $ABUILD_CONF." exit 1 fi +export PKG_CONFIG_PATH="$CBUILDROOT"/usr/lib/pkgconfig +export PKG_CONFIG_SYSROOT_DIR="$CBUILDROOT"/ + # remove possible old pass2 gcc, and install needed toolchain ${SUDO_APK} del gcc-pass2-$CTARGET ${SUDO_APK} --repository $REPODEST_HOST/main add gcc-$CTARGET g++-$CTARGET gcc-gnat-$CTARGET || return 1 @@ -33,21 +39,43 @@ ${SUDO_APK} --root "$CBUILDROOT" add libgcc libgnat libstdc++ #KERNEL_PKG="linux-firmware linux-vanilla" #DEBUG_PKG="ncurses gdb" +install_crossbuilt_package() { + PKG="$1" + echo "Installing crossbuilt package $PKG." + ${SUDO_APK} add --root "$CBUILDROOT" "$PKG" +} + +mkdir -p "$LOGDIR" + # ordered cross-build for PKG in linux-headers musl libc-dev \ - busybox busybox-initscripts binutils make pkgconf pkgconfig \ - zlib gmp5 mpfr3 mpc1 isl cloog gcc \ + busybox busybox-initscripts binutils make pkgconf pkgconfig zlib \ + gmp5 mpfr3 mpc1 isl cloog gcc \ openssl apk-tools \ openrc alpine-conf alpine-baselayout alpine-keys alpine-base build-base \ pax-utils patch sudo attr libcap fakeroot \ abuild mkinitfs $KERNEL_PKG $DEBUG_PKG ; do + echo "Crossbuilding package $PKG." cd $APORTS/main/$PKG - abuild -r || exit 1 + abuild -r 2>&1 1> "$LOGDIR/$PKG.log" || exit 1 + install_crossbuilt_package "$PKG" + + case "$PKG" in + gmp5) + install_crossbuilt_package gmp-dev + ;; + mpfr3) + install_crossbuilt_package mpfr-dev + ;; + *) + install_crossbuilt_package "$PKG-dev" + ;; + esac - if [ "$PKG" = "libc-dev" ]; then - # install libc-dev, as implicit but mandatory dependency - ${SUDO_APK} -u --root "$CBUILDROOT" add libc-dev || exit 1 - fi + #if [ "$PKG" = "libc-dev" ]; then + # # install libc-dev, as implicit but mandatory dependency + # ${SUDO_APK} -u --root "$CBUILDROOT" add libc-dev || exit 1 + #fi done --------------020409020200000005070303-- --- Unsubscribe: alpine-devel+unsubscribe@lists.alpinelinux.org Help: alpine-devel+help@lists.alpinelinux.org ---