X-Original-To: alpine-aports@lists.alpinelinux.org Received: from mail.ovgu.de (mail.ovgu.de [141.44.1.66]) by lists.alpinelinux.org (Postfix) with ESMTP id 667F85C4F4E for ; Sat, 5 May 2018 10:53:19 +0000 (GMT) Received: from mail.ovgu.de (localhost [127.0.0.1]) by localhost (Postfix) with SMTP id AB9ED40067 for ; Sat, 5 May 2018 12:53:17 +0200 (CEST) Received: from faultier2go.fritz.box (i5E8617F5.versanet.de [94.134.23.245]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.ovgu.de (Postfix) with ESMTPSA id B4F1240066; Sat, 5 May 2018 12:53:16 +0200 (CEST) From: Marian Buschsieweke To: alpine-aports@lists.alpinelinux.org Cc: Marian Buschsieweke Subject: [alpine-aports] [PATCH 1/3] testing/binutils-cross-bare-metal: New aport Date: Sat, 5 May 2018 12:53:09 +0200 Message-Id: <20180505105311.13720-1-marian.buschsieweke@ovgu.de> X-Mailer: git-send-email 2.17.0 X-PMX-Version: 6.4.3.2751440, Antispam-Engine: 2.7.2.2107409, Antispam-Data: 2018.5.5.104817, AntiVirus-Engine: 5.49.1, AntiVirus-Data: 2018.5.4.5491002 X-PMX-Spam: Gauge=IIIIIIII, Probability=8%, Report=' HTML_00_01 0.05, HTML_00_10 0.05, BODY_SIZE_6000_6999 0, BODY_SIZE_7000_LESS 0, LEGITIMATE_SIGNS 0, MULTIPLE_REAL_RCPTS 0, NO_URI_HTTPS 0, RDNS_POOLED 0, RDNS_SUSP 0, RDNS_SUSP_SPECIFIC 0, URI_WITH_PATH_ONLY 0, __ANY_URI 0, __C230066_P5 0, __CC_NAME 0, __CC_NAME_DIFF_FROM_ACC 0, __CC_REAL_NAMES 0, __CP_URI_IN_BODY 0, __FRAUD_MONEY_CURRENCY 0, __FRAUD_MONEY_CURRENCY_DOLLAR 0, __FROM_DOMAIN_IN_ANY_CC1 0, __FROM_DOMAIN_IN_RCPT 0, __HAS_CC_HDR 0, __HAS_FROM 0, __HAS_MSGID 0, __HAS_X_MAILER 0, __INVOICE_MULTILINGUAL 0, __MIME_TEXT_ONLY 0, __MIME_TEXT_P 0, __MIME_TEXT_P1 0, __MULTIPLE_URI_TEXT 0, __NO_HTML_TAG_RAW 0, __RDNS_POOLED_3 0, __SANE_MSGID 0, __SUBJ_ALPHA_END 0, __TO_MALFORMED_2 0, __TO_NO_NAME 0, __URI_IN_BODY 0, __URI_NOT_IMG 0, __URI_NS , __URI_WITH_PATH 0' X-Spam-Score: Gauge=IIIIIIII X-PMX-consideredAsSpam: no X-Mailinglist: alpine-aports Precedence: list List-Id: Alpine Development List-Unsubscribe: List-Post: List-Help: List-Subscribe: Tools necessary to build programs for embedded targets http://www.gnu.org/software/binutils Subpackages are: binutils-arm-none-eabi, binutils-avr, binutils-xtensa-lx106-elf --- testing/binutils-cross-bare-metal/APKBUILD | 89 +++++++++++++++++++ .../binutils-ld-fix-static-linking.patch | 46 ++++++++++ 2 files changed, 135 insertions(+) create mode 100644 testing/binutils-cross-bare-metal/APKBUILD create mode 100644 testing/binutils-cross-bare-metal/binutils-ld-fix-static-linking.patch diff --git a/testing/binutils-cross-bare-metal/APKBUILD b/testing/binutils-cross-bare-metal/APKBUILD new file mode 100644 index 0000000000..c9c63ac5a9 --- /dev/null +++ b/testing/binutils-cross-bare-metal/APKBUILD @@ -0,0 +1,89 @@ +# Maintainer: Marian Buschsieweke +# Based on binutils-avr +_pkgbase=binutils +_targets="arm-none-eabi avr xtensa-lx106-elf" +pkgname="$_pkgbase-cross-bare-metal" +pkgver=2.30 +pkgrel=0 +pkgdesc="Tools necessary to build programs for embedded targets" +url="http://www.gnu.org/software/${_pkgbase}/" +makedepends="gettext libtool autoconf automake bison zlib-dev" +arch="all" +license="GPL2 GPL3+ LGPL2 BSD" +for target in $_targets; do + targetnorm="${target//-/_}" + subpackages="${_pkgbase}-${target}:${targetnorm} ${subpackages}" +done +source="http://ftp.gnu.org/gnu/${_pkgbase}/${_pkgbase}-${pkgver}.tar.bz2 + binutils-ld-fix-static-linking.patch" + +builddir="$srcdir/${_pkgbase}-$pkgver" +_workingdir="$srcdir/${_pkgbase}-build" + +build() { + for target in $_targets; do + workingdir="${srcdir}/build-${target}" + mkdir "$workingdir" + cd "$workingdir" + "$builddir"/configure \ + --target=${target} \ + --build="$CBUILD" \ + --host="$CHOST" \ + --prefix=/usr/lib \ + --bindir=/usr/bin \ + --libdir=/usr/lib/${target} \ + --infodir=/deleteme/info \ + --htmldir=/deleteme/html \ + --pdfdir=/deleteme/pdf \ + --mandir=/deleteme/man \ + --disable-nls \ + --enable-plugins \ + --enable-interwork \ + --with-system-zlib \ + || return 1 + make tooldir=/usr + done +} + +check() { + for target in $_targets; do + workingdir="${srcdir}/build-${target}" + cd "$workingdir" + make check + done +} + +package() { + mkdir -p "${pkgdir}" +} + +install_subpkg() { + workingdir="${srcdir}/build-${target}" + cd "$workingdir" + make install DESTDIR="$subpkgdir" + rm -rf "$subpkgdir"/deleteme + for bin in ar as nm objcopy objdump ranlib strip readelf; do + rm -f "$subpkgdir"/usr/bin/"$bin" + done +} + +arm_none_eabi() { + target="${subpkgname#${_pkgbase}-}" + pkgdesc="Tools necessary to build programs for platform ${target}" + install_subpkg +} + +avr() { + target="${subpkgname#${_pkgbase}-}" + pkgdesc="Tools necessary to build programs for platform ${target}" + install_subpkg +} + +xtensa_lx106_elf() { + target="${subpkgname#${_pkgbase}-}" + pkgdesc="Tools necessary to build programs for platform ${target}" + install_subpkg +} + +sha512sums="c3ce91aa20f058ec589bf18c722bf651331b394db6378900cc813cc0eea3a331a96584d5ae090630b627369510397dccc9edfcd43d4aeefc99579f277a05c72c binutils-2.30.tar.bz2 +ecee33b0e435aa704af1c334e560f201638ff79e199aa11ed78a72f7c9b46f85fbb227af5748e735fd681d1965fcc42ac81b0c8824e540430ce0c706c81e8b49 binutils-ld-fix-static-linking.patch" diff --git a/testing/binutils-cross-bare-metal/binutils-ld-fix-static-linking.patch b/testing/binutils-cross-bare-metal/binutils-ld-fix-static-linking.patch new file mode 100644 index 0000000000..bc5d762656 --- /dev/null +++ b/testing/binutils-cross-bare-metal/binutils-ld-fix-static-linking.patch @@ -0,0 +1,46 @@ +This fixes static linking for our hardened toolchain +diff --git a/ld/scripttempl/elf.sc b/ld/scripttempl/elf.sc +index e8126cb..9532bfb 100644 +--- a/ld/scripttempl/elf.sc ++++ b/ld/scripttempl/elf.sc +@@ -235,8 +235,8 @@ test "${LARGE_SECTIONS}" = "yes" && LARGE_SECTIONS=" + if test "${ENABLE_INITFINI_ARRAY}" = "yes"; then + SORT_INIT_ARRAY="KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))" + SORT_FINI_ARRAY="KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*)))" +- CTORS_IN_INIT_ARRAY="EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .ctors" +- DTORS_IN_FINI_ARRAY="EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .dtors" ++ CTORS_IN_INIT_ARRAY="EXCLUDE_FILE (*crtbegin*.o *crtend*.o $OTHER_EXCLUDE_FILES) .ctors" ++ DTORS_IN_FINI_ARRAY="EXCLUDE_FILE (*crtbegin*.o *crtend*.o $OTHER_EXCLUDE_FILES) .dtors" + else + SORT_INIT_ARRAY="KEEP (*(SORT(.init_array.*)))" + SORT_FINI_ARRAY="KEEP (*(SORT(.fini_array.*)))" +@@ -270,15 +270,14 @@ CTOR=".ctors ${CONSTRUCTING-0} : + doesn't matter which directory crtbegin.o + is in. */ + +- KEEP (*crtbegin.o(.ctors)) +- KEEP (*crtbegin?.o(.ctors)) ++ KEEP (*crtbegin*.o(.ctors)) + + /* We don't want to include the .ctor section from + the crtend.o file until after the sorted ctors. + The .ctor section from the crtend file contains the + end of ctors marker and it must be last */ + +- KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .ctors)) ++ KEEP (*(EXCLUDE_FILE (*crtend*.o $OTHER_EXCLUDE_FILES) .ctors)) + KEEP (*(SORT(.ctors.*))) + KEEP (*(.ctors)) + ${CONSTRUCTING+${CTOR_END}} +@@ -286,9 +285,8 @@ CTOR=".ctors ${CONSTRUCTING-0} : + DTOR=".dtors ${CONSTRUCTING-0} : + { + ${CONSTRUCTING+${DTOR_START}} +- KEEP (*crtbegin.o(.dtors)) +- KEEP (*crtbegin?.o(.dtors)) +- KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .dtors)) ++ KEEP (*crtbegin*.o(.dtors)) ++ KEEP (*(EXCLUDE_FILE (*crtend*.o $OTHER_EXCLUDE_FILES) .dtors)) + KEEP (*(SORT(.dtors.*))) + KEEP (*(.dtors)) + ${CONSTRUCTING+${DTOR_END}} -- 2.17.0 --- Unsubscribe: alpine-aports+unsubscribe@lists.alpinelinux.org Help: alpine-aports+help@lists.alpinelinux.org ---