X-Original-To: alpine-aports@mail.alpinelinux.org Delivered-To: alpine-aports@mail.alpinelinux.org Received: from mail.alpinelinux.org (dallas-a1.alpinelinux.org [127.0.0.1]) by mail.alpinelinux.org (Postfix) with ESMTP id 1CA03DCBA73 for ; Fri, 15 Apr 2016 15:22:59 +0000 (UTC) Received: from mx.bit-strickerei.de (mx.bit-strickerei.de [78.47.233.102]) by mail.alpinelinux.org (Postfix) with ESMTP id AEF17DCEBD8 for ; Fri, 15 Apr 2016 15:22:58 +0000 (UTC) From: Stefan Wagner To: alpine-aports@lists.alpinelinux.org Cc: Stefan Wagner Subject: [alpine-aports] [PATCH 2/5] testing/binutils-avr: new aport Date: Fri, 15 Apr 2016 17:22:44 +0200 Message-Id: <1460733767-26639-2-git-send-email-stw@bit-strickerei.de> X-Mailer: git-send-email 2.8.1 In-Reply-To: <1460733767-26639-1-git-send-email-stw@bit-strickerei.de> References: <1460733767-26639-1-git-send-email-stw@bit-strickerei.de> X-Virus-Scanned: ClamAV using ClamSMTP X-Mailinglist: alpine-aports Precedence: list List-Id: Alpine Development List-Unsubscribe: List-Post: List-Help: List-Subscribe: Tools necessary to build programs for AVR targets http://www.gnu.org/software/binutils/ --- testing/binutils-avr/APKBUILD | 55 ++++++++++++++++++++++ .../binutils-ld-fix-static-linking.patch | 46 ++++++++++++++++++ testing/binutils-avr/hash-style-gnu.patch | 31 ++++++++++++ 3 files changed, 132 insertions(+) create mode 100644 testing/binutils-avr/APKBUILD create mode 100644 testing/binutils-avr/binutils-ld-fix-static-linking.patch create mode 100644 testing/binutils-avr/hash-style-gnu.patch diff --git a/testing/binutils-avr/APKBUILD b/testing/binutils-avr/APKBUILD new file mode 100644 index 0000000..9b84246 --- /dev/null +++ b/testing/binutils-avr/APKBUILD @@ -0,0 +1,55 @@ +# Contributor: Stefan Wagner +# Maintainer: Stefan Wagner +pkgname=binutils-avr +pkgver=2.25.1 +pkgrel=0 +pkgdesc="Tools necessary to build programs for AVR targets" +url="http://www.gnu.org/software/binutils/" +depends="" +makedepends="gettext libtool autoconf automake" # bison flex texinfo zlib-dev" +arch="x86_64" +license="GPL2 GPL3+ LGPL2 BSD" +subpackages="$pkgname-doc" +source="http://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.bz2 + binutils-ld-fix-static-linking.patch + hash-style-gnu.patch" + +builddir="$srcdir/binutils-$pkgver" +_workingdir="$srcdir/binutils-build" + +build() { + mkdir "$_workingdir" || return 1 + cd "$_workingdir" + "$builddir"/configure \ + --build="$CBUILD" \ + --target=avr \ + --with-lib-path=/usr/lib \ + --prefix=/usr \ + --enable-ld=default \ + --enable-gold=yes \ + --enable-plugins \ + --disable-multilib \ + --disable-werror \ + --disable-nls \ + || return 1 + make -j1 tooldir=/usr +} + +package() { + cd "$_workingdir" + make tooldir=/usr install DESTDIR="$pkgdir" || return 1 + rm -rf "$pkgdir"/usr/share/info + for bin in ar as nm objcopy objdump ranlib strip readelf; do + rm -f "$pkgdir"/usr/bin/"$bin" + done +} + +md5sums="ac493a78de4fee895961d025b7905be4 binutils-2.25.1.tar.bz2 +c9f308494b87c243f121a56d58f2da87 binutils-ld-fix-static-linking.patch +686071a371b6d7aaad86c3a5c09ba6d3 hash-style-gnu.patch" +sha256sums="b5b14added7d78a8d1ca70b5cb75fef57ce2197264f4f5835326b0df22ac9f22 binutils-2.25.1.tar.bz2 +d5c5581d0ba04ef2e3690f6fb57435bf7ce343f2376fe972a2a693c5429eec9c binutils-ld-fix-static-linking.patch +d30633153c41f0a59956f4d49ad12c0b53dabfd9f48175d0db0a1a5f2263cdfc hash-style-gnu.patch" +sha512sums="0b36dda0e6d32cd25613c0e64b56b28312515c54d6a159efd3db9a86717f114ab0a0a1f69d08975084d55713ebaeab64e4085c9b3d1c3fa86712869f80eb954d binutils-2.25.1.tar.bz2 +ecee33b0e435aa704af1c334e560f201638ff79e199aa11ed78a72f7c9b46f85fbb227af5748e735fd681d1965fcc42ac81b0c8824e540430ce0c706c81e8b49 binutils-ld-fix-static-linking.patch +24e853bf4b58621a77921087e599da2ace47ba3079e2d50fb5d08ae399be5f060c5fdd7f65257bcc0526aebc66e68b98aafd45d714c035da8ea2bdc3d8d4e375 hash-style-gnu.patch" diff --git a/testing/binutils-avr/binutils-ld-fix-static-linking.patch b/testing/binutils-avr/binutils-ld-fix-static-linking.patch new file mode 100644 index 0000000..bc5d762 --- /dev/null +++ b/testing/binutils-avr/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}} diff --git a/testing/binutils-avr/hash-style-gnu.patch b/testing/binutils-avr/hash-style-gnu.patch new file mode 100644 index 0000000..2e6c019 --- /dev/null +++ b/testing/binutils-avr/hash-style-gnu.patch @@ -0,0 +1,31 @@ +# DP: Default to --hash-style=gnu in ld.bfd and ld.gold. + +--- a/ld/ldmain.c ++++ b/ld/ldmain.c +@@ -287,6 +288,15 @@ + emulation = get_emulation (argc, argv); + ldemul_choose_mode (emulation); + default_target = ldemul_choose_target (argc, argv); ++ ++ /* Default to --hash-style=gnu */ ++ if (strcmp (default_target, "elf32-tradbigmips") != 0 ++ && strcmp (default_target, "elf32-tradlittlemips") != 0) ++ { ++ link_info.emit_gnu_hash = TRUE; ++ link_info.emit_hash = FALSE; ++ } ++ + config.maxpagesize = bfd_emul_get_maxpagesize (default_target); + config.commonpagesize = bfd_emul_get_commonpagesize (default_target); + lang_init (); +--- a/gold/options.h ++++ b/gold/options.h +@@ -794,7 +794,7 @@ + N_("Min fraction of empty buckets in dynamic hash"), + N_("FRACTION")); + +- DEFINE_enum(hash_style, options::TWO_DASHES, '\0', "sysv", ++ DEFINE_enum(hash_style, options::TWO_DASHES, '\0', "gnu", + N_("Dynamic hash style"), N_("[sysv,gnu,both]"), + {"sysv", "gnu", "both"}); + -- 2.8.1 --- Unsubscribe: alpine-aports+unsubscribe@lists.alpinelinux.org Help: alpine-aports+help@lists.alpinelinux.org ---