From 004334438558495b9e60fce577db32713b183448 Mon Sep 17 00:00:00 2001 From: Oliver Smith Date: Sun, 3 Jul 2022 19:54:25 +0200 Subject: [PATCH] cross/binutils-*: remove (MR 3275) Use the recently added binutils-cross packages in Alpine instead of our own ones. --- ...gnu.attributes-are-not-checked-for-s.patch | 55 ------- cross/binutils-aarch64/APKBUILD | 153 ------------------ cross/binutils-aarch64/CVE-2023-1972.patch | 37 ----- .../binutils-ld-fix-static-linking.patch | 46 ------ cross/binutils-aarch64/riscv64-textrels.patch | 103 ------------ ...gnu.attributes-are-not-checked-for-s.patch | 55 ------- cross/binutils-armhf/APKBUILD | 153 ------------------ cross/binutils-armhf/CVE-2023-1972.patch | 37 ----- .../binutils-ld-fix-static-linking.patch | 46 ------ cross/binutils-armhf/riscv64-textrels.patch | 103 ------------ ...gnu.attributes-are-not-checked-for-s.patch | 55 ------- cross/binutils-armv7/APKBUILD | 153 ------------------ cross/binutils-armv7/CVE-2023-1972.patch | 37 ----- .../binutils-ld-fix-static-linking.patch | 46 ------ cross/binutils-armv7/riscv64-textrels.patch | 103 ------------ ...gnu.attributes-are-not-checked-for-s.patch | 55 ------- cross/binutils-riscv64/APKBUILD | 153 ------------------ cross/binutils-riscv64/CVE-2023-1972.patch | 37 ----- .../binutils-ld-fix-static-linking.patch | 46 ------ cross/binutils-riscv64/riscv64-textrels.patch | 103 ------------ 20 files changed, 1576 deletions(-) delete mode 100644 cross/binutils-aarch64/0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch delete mode 100644 cross/binutils-aarch64/APKBUILD delete mode 100644 cross/binutils-aarch64/CVE-2023-1972.patch delete mode 100644 cross/binutils-aarch64/binutils-ld-fix-static-linking.patch delete mode 100644 cross/binutils-aarch64/riscv64-textrels.patch delete mode 100644 cross/binutils-armhf/0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch delete mode 100644 cross/binutils-armhf/APKBUILD delete mode 100644 cross/binutils-armhf/CVE-2023-1972.patch delete mode 100644 cross/binutils-armhf/binutils-ld-fix-static-linking.patch delete mode 100644 cross/binutils-armhf/riscv64-textrels.patch delete mode 100644 cross/binutils-armv7/0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch delete mode 100644 cross/binutils-armv7/APKBUILD delete mode 100644 cross/binutils-armv7/CVE-2023-1972.patch delete mode 100644 cross/binutils-armv7/binutils-ld-fix-static-linking.patch delete mode 100644 cross/binutils-armv7/riscv64-textrels.patch delete mode 100644 cross/binutils-riscv64/0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch delete mode 100644 cross/binutils-riscv64/APKBUILD delete mode 100644 cross/binutils-riscv64/CVE-2023-1972.patch delete mode 100644 cross/binutils-riscv64/binutils-ld-fix-static-linking.patch delete mode 100644 cross/binutils-riscv64/riscv64-textrels.patch diff --git a/cross/binutils-aarch64/0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch b/cross/binutils-aarch64/0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch deleted file mode 100644 index 6e1fa7731..000000000 --- a/cross/binutils-aarch64/0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch +++ /dev/null @@ -1,55 +0,0 @@ -From bbf05b742fde518fb97c789b043fe0d3aaf549f0 Mon Sep 17 00:00:00 2001 -From: Ariadne Conill -Date: Tue, 21 Sep 2021 14:53:13 +0000 -Subject: [PATCH] Revert "PR25882, .gnu.attributes are not checked for shared - libraries" - -This revert is needed to avoid wrongly tagging objects with the incompatible -IBM long double ABI, which is not supported by musl and will result in -linking errors if used. - -This reverts commit a8acd6eeb6dc2cc5460ece90f90ebe36b56b20ba. ---- - bfd/elf32-tic6x.c | 3 --- - ld/ldlang.c | 10 ++++------ - 2 files changed, 4 insertions(+), 9 deletions(-) - -diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c -index 5754f3cb860..3ad1d612749 100644 ---- a/bfd/elf32-tic6x.c -+++ b/bfd/elf32-tic6x.c -@@ -3735,9 +3735,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info) - - case Tag_ABI_PIC: - case Tag_ABI_PID: -- /* Don't transfer these tags from dynamic objects. */ -- if ((ibfd->flags & DYNAMIC) != 0) -- continue; - if (out_attr[i].i > in_attr[i].i) - out_attr[i].i = in_attr[i].i; - break; -diff --git a/ld/ldlang.c b/ld/ldlang.c -index 37b64c89ee1..f13beaef9d9 100644 ---- a/ld/ldlang.c -+++ b/ld/ldlang.c -@@ -7071,13 +7071,11 @@ lang_check (void) - bfd_printable_name (input_bfd), input_bfd, - bfd_printable_name (link_info.output_bfd)); - } -- -- /* If the input bfd has no contents, it shouldn't set the -- private data of the output bfd. */ -- else if (!file->flags.just_syms -- && ((input_bfd->flags & DYNAMIC) != 0 -- || bfd_count_sections (input_bfd) != 0)) -+ else if (bfd_count_sections (input_bfd)) - { -+ /* If the input bfd has no contents, it shouldn't set the -+ private data of the output bfd. */ -+ - bfd_error_handler_type pfn = NULL; - - /* If we aren't supposed to warn about mismatched input --- -2.33.0 - diff --git a/cross/binutils-aarch64/APKBUILD b/cross/binutils-aarch64/APKBUILD deleted file mode 100644 index 378969768..000000000 --- a/cross/binutils-aarch64/APKBUILD +++ /dev/null @@ -1,153 +0,0 @@ -# Automatically generated aport, do not edit! -# Generator: pmbootstrap aportgen binutils-aarch64 -# Based on: main/binutils - - -CTARGET_ARCH=aarch64 -CTARGET="$(arch_to_hostspec $CTARGET_ARCH)" - -pkgname=binutils-aarch64 -pkgver=2.40 -pkgrel=12 -pkgdesc="Tools necessary to build programs for aarch64 targets" -url="https://www.gnu.org/software/binutils/" -makedepends_build="bison flex texinfo" -makedepends_host="zlib-dev jansson-dev zstd-dev" -arch="x86_64" -license="GPL-2.0-or-later AND LGPL-2.1-or-later AND BSD-3-Clause" -subpackages="binutils-dev binutils-doc" -source="https://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.xz - 0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch - CVE-2023-1972.patch - binutils-ld-fix-static-linking.patch - riscv64-textrels.patch - " -builddir="$srcdir/binutils-$pkgver" - -if [ -z "$BOOTSTRAP" ]; then - makedepends_host="$makedepends_host jansson-dev zstd-dev" - _noboot_configure="--enable-jansson --with-zstd" -fi - -if [ "$CHOST" = "$CBUILD" ] && [ "$CBUILD" = "$CTARGET" ] && [ "$CTARGET_ARCH" != "riscv64" ]; then - subpackages="$subpackages binutils-gold" -fi - -if [ "$CHOST" != "$CTARGET" ]; then - pkgname="binutils-$CTARGET_ARCH" - subpackages="" - sonameprefix="binutils:" -fi - -# secfixes: -# 2.40-r10: -# - CVE-2023-1972 -# 2.40-r0: -# - CVE-2023-1579 -# 2.39-r2: -# - CVE-2022-38533 -# 2.39-r0: -# - CVE-2022-38126 -# 2.35.2-r1: -# - CVE-2021-3487 -# 2.32-r0: -# - CVE-2018-19931 -# - CVE-2018-19932 -# - CVE-2018-20002 -# - CVE-2018-20712 -# 2.28-r1: -# - CVE-2017-7614 - -build() { - local _sysroot=/ - local _cross_configure="--enable-install-libiberty --enable-shared" - local _arch_configure="" - local _gold_configure="--disable-gold" - local _plugin_configure="--enable-plugins" - - if [ "$CHOST" != "$CTARGET" ]; then - _sysroot="$CBUILDROOT" - _cross_configure="--disable-install-libiberty" - _plugin_configure="--disable-plugins" - fi - - if [ "$CHOST" = "$CBUILD" ] && [ "$CBUILD" = "$CTARGET" ] && [ "$CTARGET_ARCH" != "riscv64" ]; then - _gold_configure="--enable-gold" - fi - - if [ "$CTARGET_ARCH" = "x86_64" ]; then - _arch_configure="--enable-targets=x86_64-pep" - fi - - if [ "$CTARGET_ARCH" = "riscv64" ]; then - _gold_configure="--disable-gold" - fi - - CFLAGS="$CFLAGS -O2" \ - CXXFLAGS="$CXXFLAGS -O2" \ - ./configure \ - --build=$CBUILD \ - --host=$CHOST \ - --target=$CTARGET \ - --with-build-sysroot="$CBUILDROOT" \ - --with-sysroot=$_sysroot \ - --prefix=/usr \ - --mandir=/usr/share/man \ - --infodir=/usr/share/info \ - --sysconfdir=/etc \ - $_arch_configure \ - $_cross_configure \ - $_gold_configure \ - $_plugin_configure \ - $_noboot_configure \ - --disable-gprofng \ - --disable-multilib \ - --disable-nls \ - --disable-werror \ - --enable-64-bit-bfd \ - --enable-colored-disassembly \ - --enable-default-execstack=no \ - --enable-default-hash-style=gnu \ - --enable-deterministic-archives \ - --enable-ld=default \ - --enable-new-dtags \ - --enable-relro \ - --enable-threads \ - --with-bugurl="https://postmarketos.org/issues" \ - --with-mmap \ - --with-pic \ - --with-system-zlib - make -} - -package() { - make install DESTDIR="$pkgdir" - if [ -d "$pkgdir"/usr/lib64 ]; then - mv "$pkgdir"/usr/lib64/* "$pkgdir"/usr/lib/ - rmdir "$pkgdir"/usr/lib64 - fi - if [ "$CHOST" != "$CTARGET" ]; then - # creating cross tools: remove any files that would conflict - # with the native tools, or other cross tools - rm -r "${pkgdir:?}"/usr/share - rm -f "$pkgdir"/usr/lib/libiberty.a - rm -r "${pkgdir:?}"/usr/lib/bfd-plugins - fi -} - -gold() { - pkgdesc="GNU binutils - gold linker" - - if [ -e "$pkgdir"/usr/bin/ld.gold ]; then - amove usr/bin/ld.gold - fi - amove usr/$CTARGET/bin/ld.gold -} - -sha512sums=" -a37e042523bc46494d99d5637c3f3d8f9956d9477b748b3b1f6d7dfbb8d968ed52c932e88a4e946c6f77b8f48f1e1b360ca54c3d298f17193f3b4963472f6925 binutils-2.40.tar.xz -70ec22bd72ef6dddecfd970613387dd4a8cdc8730dd3cbf03d5a0c3a7c4d839383167bb06dad21bf7c235329fd44b5dc4aefe762f68544f17155cf002bf1be4a 0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch -b434e126c4c3f70c02b0a5597a0d75a4ea99b1498552c2d0676005ac0ae171c56cf07a6f6e2faa1381f1f4d4a37043a07d177dd4912f09b61109f103853594b2 CVE-2023-1972.patch -ecee33b0e435aa704af1c334e560f201638ff79e199aa11ed78a72f7c9b46f85fbb227af5748e735fd681d1965fcc42ac81b0c8824e540430ce0c706c81e8b49 binutils-ld-fix-static-linking.patch -d138691d953c6f49111601df1731db157d2ecedf1593e37ababb5c12ff10572b5f7982288c81579f4a99097780dbb18d3b457f74daab0f935f59423e69cec56f riscv64-textrels.patch -" diff --git a/cross/binutils-aarch64/CVE-2023-1972.patch b/cross/binutils-aarch64/CVE-2023-1972.patch deleted file mode 100644 index ab8f8eb8b..000000000 --- a/cross/binutils-aarch64/CVE-2023-1972.patch +++ /dev/null @@ -1,37 +0,0 @@ -Patch-Source: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=c22d38baefc5a7a1e1f5cdc9dbb556b1f0ec5c57;hp=f2f9bde5cde7ff34ed0a4c4682a211d402aa1086 -https://sourceware.org/bugzilla/show_bug.cgi?id=30285 --- -From: Nick Clifton -Date: Thu, 30 Mar 2023 09:10:09 +0000 (+0100) -Subject: Fix an illegal memory access when an accessing a zer0-lengthverdef table. -X-Git-Url: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff_plain;h=c22d38baefc5a7a1e1f5cdc9dbb556b1f0ec5c57;hp=f2f9bde5cde7ff34ed0a4c4682a211d402aa1086 - -Fix an illegal memory access when an accessing a zer0-lengthverdef table. - - PR 30285 - * elf.c (_bfd_elf_slurp_version_tables): Fail if no version definitions are allocated. ---- - -diff --git a/bfd/elf.c b/bfd/elf.c -index 027d0143735..185028cbd97 100644 ---- a/bfd/elf.c -+++ b/bfd/elf.c -@@ -9030,6 +9030,9 @@ _bfd_elf_slurp_version_tables (bfd *abfd, bool default_imported_symver) - bfd_set_error (bfd_error_file_too_big); - goto error_return_verdef; - } -+ -+ if (amt == 0) -+ goto error_return_verdef; - elf_tdata (abfd)->verdef = (Elf_Internal_Verdef *) bfd_zalloc (abfd, amt); - if (elf_tdata (abfd)->verdef == NULL) - goto error_return_verdef; -@@ -9133,6 +9136,8 @@ _bfd_elf_slurp_version_tables (bfd *abfd, bool default_imported_symver) - bfd_set_error (bfd_error_file_too_big); - goto error_return; - } -+ if (amt == 0) -+ goto error_return; - elf_tdata (abfd)->verdef = (Elf_Internal_Verdef *) bfd_zalloc (abfd, amt); - if (elf_tdata (abfd)->verdef == NULL) - goto error_return; diff --git a/cross/binutils-aarch64/binutils-ld-fix-static-linking.patch b/cross/binutils-aarch64/binutils-ld-fix-static-linking.patch deleted file mode 100644 index bc5d76265..000000000 --- a/cross/binutils-aarch64/binutils-ld-fix-static-linking.patch +++ /dev/null @@ -1,46 +0,0 @@ -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/cross/binutils-aarch64/riscv64-textrels.patch b/cross/binutils-aarch64/riscv64-textrels.patch deleted file mode 100644 index 8660bfa36..000000000 --- a/cross/binutils-aarch64/riscv64-textrels.patch +++ /dev/null @@ -1,103 +0,0 @@ -Patch-Source: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=225df051d3d4cf714d1791b9035966a6686b3f3d;hp=a70d5ba34cb64bbbb7df4f3055cf5b1967bdf61e#patch1 -https://sourceware.org/bugzilla/show_bug.cgi?id=25694 --- -From: Nelson Chu -Date: Thu, 4 May 2023 09:08:50 +0000 (+0800) -Subject: [PR ld/22263][PR ld/25694] RISC-V: Avoid dynamic TLS relocs in PIE. -X-Git-Url: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff_plain;h=225df051d3d4cf714d1791b9035966a6686b3f3d;hp=a70d5ba34cb64bbbb7df4f3055cf5b1967bdf61e - -[PR ld/22263][PR ld/25694] RISC-V: Avoid dynamic TLS relocs in PIE. - -Lots of targets already fixed the TEXTREL problem for TLS in PIE. - -* For PR ld/25694, -In the check_reloc, refer to spare and loongarch, they don't need to reserve -any local dynamic reloc for TLS LE in pie/pde, and similar to other targets. -So it seems like riscv was too conservative to estimate the TLS LE before. -Just break and don't goto static_reloc for TLS LE in pie/pde can fix the -TEXTREL problem. - -* For PR ld/22263, -The risc-v code for TLS GD/IE in the relocate_section seems same as MIPS port. -So similar to MIPS, pr22570, commits 9143e72c6d4d and 1cb83cac9a89, it seems -also the right way to do the same thing for risc-v. - -On risc-v, fixes -FAIL: Build pr22263-1 - -RISC-V haven't supported the TLS transitions, so will need the same fix (use -bfd_link_dll) in the future. - -bfd/ - PR ld/22263 - PR ld/25694 - * elfnn-riscv.c (riscv_elf_check_relocs): Replace bfd_link_pic with - bfd_link_dll for TLS IE. Don't need to reserve the local dynamic - relocation for TLS LE in pie/pde, and report error in pic just like - before. - (riscv_elf_relocate_section): For TLS GD/IE, use bfd_link_dll rather - than !bfd_link_pic in determining the dynamic symbol index. Avoid - the index of -1. ---- - -diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c -index 75af040cf92..762ea231c0b 100644 ---- a/bfd/elfnn-riscv.c -+++ b/bfd/elfnn-riscv.c -@@ -824,7 +824,7 @@ riscv_elf_check_relocs (bfd *abfd, struct bfd_link_info *info, - break; - - case R_RISCV_TLS_GOT_HI20: -- if (bfd_link_pic (info)) -+ if (bfd_link_dll (info)) - info->flags |= DF_STATIC_TLS; - if (!riscv_elf_record_got_reference (abfd, info, h, r_symndx) - || !riscv_elf_record_tls_type (abfd, h, r_symndx, GOT_TLS_IE)) -@@ -920,11 +920,12 @@ riscv_elf_check_relocs (bfd *abfd, struct bfd_link_info *info, - goto static_reloc; - - case R_RISCV_TPREL_HI20: -+ /* This is not allowed in the pic, but okay in pie. */ - if (!bfd_link_executable (info)) - return bad_static_reloc (abfd, r_type, h); - if (h != NULL) - riscv_elf_record_tls_type (abfd, h, r_symndx, GOT_TLS_LE); -- goto static_reloc; -+ break; - - case R_RISCV_HI20: - if (bfd_link_pic (info)) -@@ -2880,24 +2881,20 @@ riscv_elf_relocate_section (bfd *output_bfd, - if (htab->elf.srelgot == NULL) - abort (); - -- if (h != NULL) -- { -- bool dyn, pic; -- dyn = htab->elf.dynamic_sections_created; -- pic = bfd_link_pic (info); -- -- if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, pic, h) -- && (!pic || !SYMBOL_REFERENCES_LOCAL (info, h))) -- indx = h->dynindx; -- } -+ bool dyn = elf_hash_table (info)->dynamic_sections_created; -+ if (h != NULL -+ && h->dynindx != -1 -+ && WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, bfd_link_pic (info), h) -+ && (bfd_link_dll (info) || !SYMBOL_REFERENCES_LOCAL (info, h))) -+ indx = h->dynindx; - - /* The GOT entries have not been initialized yet. Do it - now, and emit any relocations. */ -- if ((bfd_link_pic (info) || indx != 0) -+ if ((bfd_link_dll (info) || indx != 0) - && (h == NULL - || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT - || h->root.type != bfd_link_hash_undefweak)) -- need_relocs = true; -+ need_relocs = true; - - if (tls_type & GOT_TLS_GD) - { - diff --git a/cross/binutils-armhf/0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch b/cross/binutils-armhf/0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch deleted file mode 100644 index 6e1fa7731..000000000 --- a/cross/binutils-armhf/0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch +++ /dev/null @@ -1,55 +0,0 @@ -From bbf05b742fde518fb97c789b043fe0d3aaf549f0 Mon Sep 17 00:00:00 2001 -From: Ariadne Conill -Date: Tue, 21 Sep 2021 14:53:13 +0000 -Subject: [PATCH] Revert "PR25882, .gnu.attributes are not checked for shared - libraries" - -This revert is needed to avoid wrongly tagging objects with the incompatible -IBM long double ABI, which is not supported by musl and will result in -linking errors if used. - -This reverts commit a8acd6eeb6dc2cc5460ece90f90ebe36b56b20ba. ---- - bfd/elf32-tic6x.c | 3 --- - ld/ldlang.c | 10 ++++------ - 2 files changed, 4 insertions(+), 9 deletions(-) - -diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c -index 5754f3cb860..3ad1d612749 100644 ---- a/bfd/elf32-tic6x.c -+++ b/bfd/elf32-tic6x.c -@@ -3735,9 +3735,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info) - - case Tag_ABI_PIC: - case Tag_ABI_PID: -- /* Don't transfer these tags from dynamic objects. */ -- if ((ibfd->flags & DYNAMIC) != 0) -- continue; - if (out_attr[i].i > in_attr[i].i) - out_attr[i].i = in_attr[i].i; - break; -diff --git a/ld/ldlang.c b/ld/ldlang.c -index 37b64c89ee1..f13beaef9d9 100644 ---- a/ld/ldlang.c -+++ b/ld/ldlang.c -@@ -7071,13 +7071,11 @@ lang_check (void) - bfd_printable_name (input_bfd), input_bfd, - bfd_printable_name (link_info.output_bfd)); - } -- -- /* If the input bfd has no contents, it shouldn't set the -- private data of the output bfd. */ -- else if (!file->flags.just_syms -- && ((input_bfd->flags & DYNAMIC) != 0 -- || bfd_count_sections (input_bfd) != 0)) -+ else if (bfd_count_sections (input_bfd)) - { -+ /* If the input bfd has no contents, it shouldn't set the -+ private data of the output bfd. */ -+ - bfd_error_handler_type pfn = NULL; - - /* If we aren't supposed to warn about mismatched input --- -2.33.0 - diff --git a/cross/binutils-armhf/APKBUILD b/cross/binutils-armhf/APKBUILD deleted file mode 100644 index 3f31c1d17..000000000 --- a/cross/binutils-armhf/APKBUILD +++ /dev/null @@ -1,153 +0,0 @@ -# Automatically generated aport, do not edit! -# Generator: pmbootstrap aportgen binutils-armhf -# Based on: main/binutils - - -CTARGET_ARCH=armhf -CTARGET="$(arch_to_hostspec $CTARGET_ARCH)" - -pkgname=binutils-armhf -pkgver=2.40 -pkgrel=12 -pkgdesc="Tools necessary to build programs for armhf targets" -url="https://www.gnu.org/software/binutils/" -makedepends_build="bison flex texinfo" -makedepends_host="zlib-dev jansson-dev zstd-dev" -arch="x86_64" -license="GPL-2.0-or-later AND LGPL-2.1-or-later AND BSD-3-Clause" -subpackages="binutils-dev binutils-doc" -source="https://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.xz - 0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch - CVE-2023-1972.patch - binutils-ld-fix-static-linking.patch - riscv64-textrels.patch - " -builddir="$srcdir/binutils-$pkgver" - -if [ -z "$BOOTSTRAP" ]; then - makedepends_host="$makedepends_host jansson-dev zstd-dev" - _noboot_configure="--enable-jansson --with-zstd" -fi - -if [ "$CHOST" = "$CBUILD" ] && [ "$CBUILD" = "$CTARGET" ] && [ "$CTARGET_ARCH" != "riscv64" ]; then - subpackages="$subpackages binutils-gold" -fi - -if [ "$CHOST" != "$CTARGET" ]; then - pkgname="binutils-$CTARGET_ARCH" - subpackages="" - sonameprefix="binutils:" -fi - -# secfixes: -# 2.40-r10: -# - CVE-2023-1972 -# 2.40-r0: -# - CVE-2023-1579 -# 2.39-r2: -# - CVE-2022-38533 -# 2.39-r0: -# - CVE-2022-38126 -# 2.35.2-r1: -# - CVE-2021-3487 -# 2.32-r0: -# - CVE-2018-19931 -# - CVE-2018-19932 -# - CVE-2018-20002 -# - CVE-2018-20712 -# 2.28-r1: -# - CVE-2017-7614 - -build() { - local _sysroot=/ - local _cross_configure="--enable-install-libiberty --enable-shared" - local _arch_configure="" - local _gold_configure="--disable-gold" - local _plugin_configure="--enable-plugins" - - if [ "$CHOST" != "$CTARGET" ]; then - _sysroot="$CBUILDROOT" - _cross_configure="--disable-install-libiberty" - _plugin_configure="--disable-plugins" - fi - - if [ "$CHOST" = "$CBUILD" ] && [ "$CBUILD" = "$CTARGET" ] && [ "$CTARGET_ARCH" != "riscv64" ]; then - _gold_configure="--enable-gold" - fi - - if [ "$CTARGET_ARCH" = "x86_64" ]; then - _arch_configure="--enable-targets=x86_64-pep" - fi - - if [ "$CTARGET_ARCH" = "riscv64" ]; then - _gold_configure="--disable-gold" - fi - - CFLAGS="$CFLAGS -O2" \ - CXXFLAGS="$CXXFLAGS -O2" \ - ./configure \ - --build=$CBUILD \ - --host=$CHOST \ - --target=$CTARGET \ - --with-build-sysroot="$CBUILDROOT" \ - --with-sysroot=$_sysroot \ - --prefix=/usr \ - --mandir=/usr/share/man \ - --infodir=/usr/share/info \ - --sysconfdir=/etc \ - $_arch_configure \ - $_cross_configure \ - $_gold_configure \ - $_plugin_configure \ - $_noboot_configure \ - --disable-gprofng \ - --disable-multilib \ - --disable-nls \ - --disable-werror \ - --enable-64-bit-bfd \ - --enable-colored-disassembly \ - --enable-default-execstack=no \ - --enable-default-hash-style=gnu \ - --enable-deterministic-archives \ - --enable-ld=default \ - --enable-new-dtags \ - --enable-relro \ - --enable-threads \ - --with-bugurl="https://postmarketos.org/issues" \ - --with-mmap \ - --with-pic \ - --with-system-zlib - make -} - -package() { - make install DESTDIR="$pkgdir" - if [ -d "$pkgdir"/usr/lib64 ]; then - mv "$pkgdir"/usr/lib64/* "$pkgdir"/usr/lib/ - rmdir "$pkgdir"/usr/lib64 - fi - if [ "$CHOST" != "$CTARGET" ]; then - # creating cross tools: remove any files that would conflict - # with the native tools, or other cross tools - rm -r "${pkgdir:?}"/usr/share - rm -f "$pkgdir"/usr/lib/libiberty.a - rm -r "${pkgdir:?}"/usr/lib/bfd-plugins - fi -} - -gold() { - pkgdesc="GNU binutils - gold linker" - - if [ -e "$pkgdir"/usr/bin/ld.gold ]; then - amove usr/bin/ld.gold - fi - amove usr/$CTARGET/bin/ld.gold -} - -sha512sums=" -a37e042523bc46494d99d5637c3f3d8f9956d9477b748b3b1f6d7dfbb8d968ed52c932e88a4e946c6f77b8f48f1e1b360ca54c3d298f17193f3b4963472f6925 binutils-2.40.tar.xz -70ec22bd72ef6dddecfd970613387dd4a8cdc8730dd3cbf03d5a0c3a7c4d839383167bb06dad21bf7c235329fd44b5dc4aefe762f68544f17155cf002bf1be4a 0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch -b434e126c4c3f70c02b0a5597a0d75a4ea99b1498552c2d0676005ac0ae171c56cf07a6f6e2faa1381f1f4d4a37043a07d177dd4912f09b61109f103853594b2 CVE-2023-1972.patch -ecee33b0e435aa704af1c334e560f201638ff79e199aa11ed78a72f7c9b46f85fbb227af5748e735fd681d1965fcc42ac81b0c8824e540430ce0c706c81e8b49 binutils-ld-fix-static-linking.patch -d138691d953c6f49111601df1731db157d2ecedf1593e37ababb5c12ff10572b5f7982288c81579f4a99097780dbb18d3b457f74daab0f935f59423e69cec56f riscv64-textrels.patch -" diff --git a/cross/binutils-armhf/CVE-2023-1972.patch b/cross/binutils-armhf/CVE-2023-1972.patch deleted file mode 100644 index ab8f8eb8b..000000000 --- a/cross/binutils-armhf/CVE-2023-1972.patch +++ /dev/null @@ -1,37 +0,0 @@ -Patch-Source: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=c22d38baefc5a7a1e1f5cdc9dbb556b1f0ec5c57;hp=f2f9bde5cde7ff34ed0a4c4682a211d402aa1086 -https://sourceware.org/bugzilla/show_bug.cgi?id=30285 --- -From: Nick Clifton -Date: Thu, 30 Mar 2023 09:10:09 +0000 (+0100) -Subject: Fix an illegal memory access when an accessing a zer0-lengthverdef table. -X-Git-Url: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff_plain;h=c22d38baefc5a7a1e1f5cdc9dbb556b1f0ec5c57;hp=f2f9bde5cde7ff34ed0a4c4682a211d402aa1086 - -Fix an illegal memory access when an accessing a zer0-lengthverdef table. - - PR 30285 - * elf.c (_bfd_elf_slurp_version_tables): Fail if no version definitions are allocated. ---- - -diff --git a/bfd/elf.c b/bfd/elf.c -index 027d0143735..185028cbd97 100644 ---- a/bfd/elf.c -+++ b/bfd/elf.c -@@ -9030,6 +9030,9 @@ _bfd_elf_slurp_version_tables (bfd *abfd, bool default_imported_symver) - bfd_set_error (bfd_error_file_too_big); - goto error_return_verdef; - } -+ -+ if (amt == 0) -+ goto error_return_verdef; - elf_tdata (abfd)->verdef = (Elf_Internal_Verdef *) bfd_zalloc (abfd, amt); - if (elf_tdata (abfd)->verdef == NULL) - goto error_return_verdef; -@@ -9133,6 +9136,8 @@ _bfd_elf_slurp_version_tables (bfd *abfd, bool default_imported_symver) - bfd_set_error (bfd_error_file_too_big); - goto error_return; - } -+ if (amt == 0) -+ goto error_return; - elf_tdata (abfd)->verdef = (Elf_Internal_Verdef *) bfd_zalloc (abfd, amt); - if (elf_tdata (abfd)->verdef == NULL) - goto error_return; diff --git a/cross/binutils-armhf/binutils-ld-fix-static-linking.patch b/cross/binutils-armhf/binutils-ld-fix-static-linking.patch deleted file mode 100644 index bc5d76265..000000000 --- a/cross/binutils-armhf/binutils-ld-fix-static-linking.patch +++ /dev/null @@ -1,46 +0,0 @@ -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/cross/binutils-armhf/riscv64-textrels.patch b/cross/binutils-armhf/riscv64-textrels.patch deleted file mode 100644 index 8660bfa36..000000000 --- a/cross/binutils-armhf/riscv64-textrels.patch +++ /dev/null @@ -1,103 +0,0 @@ -Patch-Source: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=225df051d3d4cf714d1791b9035966a6686b3f3d;hp=a70d5ba34cb64bbbb7df4f3055cf5b1967bdf61e#patch1 -https://sourceware.org/bugzilla/show_bug.cgi?id=25694 --- -From: Nelson Chu -Date: Thu, 4 May 2023 09:08:50 +0000 (+0800) -Subject: [PR ld/22263][PR ld/25694] RISC-V: Avoid dynamic TLS relocs in PIE. -X-Git-Url: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff_plain;h=225df051d3d4cf714d1791b9035966a6686b3f3d;hp=a70d5ba34cb64bbbb7df4f3055cf5b1967bdf61e - -[PR ld/22263][PR ld/25694] RISC-V: Avoid dynamic TLS relocs in PIE. - -Lots of targets already fixed the TEXTREL problem for TLS in PIE. - -* For PR ld/25694, -In the check_reloc, refer to spare and loongarch, they don't need to reserve -any local dynamic reloc for TLS LE in pie/pde, and similar to other targets. -So it seems like riscv was too conservative to estimate the TLS LE before. -Just break and don't goto static_reloc for TLS LE in pie/pde can fix the -TEXTREL problem. - -* For PR ld/22263, -The risc-v code for TLS GD/IE in the relocate_section seems same as MIPS port. -So similar to MIPS, pr22570, commits 9143e72c6d4d and 1cb83cac9a89, it seems -also the right way to do the same thing for risc-v. - -On risc-v, fixes -FAIL: Build pr22263-1 - -RISC-V haven't supported the TLS transitions, so will need the same fix (use -bfd_link_dll) in the future. - -bfd/ - PR ld/22263 - PR ld/25694 - * elfnn-riscv.c (riscv_elf_check_relocs): Replace bfd_link_pic with - bfd_link_dll for TLS IE. Don't need to reserve the local dynamic - relocation for TLS LE in pie/pde, and report error in pic just like - before. - (riscv_elf_relocate_section): For TLS GD/IE, use bfd_link_dll rather - than !bfd_link_pic in determining the dynamic symbol index. Avoid - the index of -1. ---- - -diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c -index 75af040cf92..762ea231c0b 100644 ---- a/bfd/elfnn-riscv.c -+++ b/bfd/elfnn-riscv.c -@@ -824,7 +824,7 @@ riscv_elf_check_relocs (bfd *abfd, struct bfd_link_info *info, - break; - - case R_RISCV_TLS_GOT_HI20: -- if (bfd_link_pic (info)) -+ if (bfd_link_dll (info)) - info->flags |= DF_STATIC_TLS; - if (!riscv_elf_record_got_reference (abfd, info, h, r_symndx) - || !riscv_elf_record_tls_type (abfd, h, r_symndx, GOT_TLS_IE)) -@@ -920,11 +920,12 @@ riscv_elf_check_relocs (bfd *abfd, struct bfd_link_info *info, - goto static_reloc; - - case R_RISCV_TPREL_HI20: -+ /* This is not allowed in the pic, but okay in pie. */ - if (!bfd_link_executable (info)) - return bad_static_reloc (abfd, r_type, h); - if (h != NULL) - riscv_elf_record_tls_type (abfd, h, r_symndx, GOT_TLS_LE); -- goto static_reloc; -+ break; - - case R_RISCV_HI20: - if (bfd_link_pic (info)) -@@ -2880,24 +2881,20 @@ riscv_elf_relocate_section (bfd *output_bfd, - if (htab->elf.srelgot == NULL) - abort (); - -- if (h != NULL) -- { -- bool dyn, pic; -- dyn = htab->elf.dynamic_sections_created; -- pic = bfd_link_pic (info); -- -- if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, pic, h) -- && (!pic || !SYMBOL_REFERENCES_LOCAL (info, h))) -- indx = h->dynindx; -- } -+ bool dyn = elf_hash_table (info)->dynamic_sections_created; -+ if (h != NULL -+ && h->dynindx != -1 -+ && WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, bfd_link_pic (info), h) -+ && (bfd_link_dll (info) || !SYMBOL_REFERENCES_LOCAL (info, h))) -+ indx = h->dynindx; - - /* The GOT entries have not been initialized yet. Do it - now, and emit any relocations. */ -- if ((bfd_link_pic (info) || indx != 0) -+ if ((bfd_link_dll (info) || indx != 0) - && (h == NULL - || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT - || h->root.type != bfd_link_hash_undefweak)) -- need_relocs = true; -+ need_relocs = true; - - if (tls_type & GOT_TLS_GD) - { - diff --git a/cross/binutils-armv7/0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch b/cross/binutils-armv7/0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch deleted file mode 100644 index 6e1fa7731..000000000 --- a/cross/binutils-armv7/0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch +++ /dev/null @@ -1,55 +0,0 @@ -From bbf05b742fde518fb97c789b043fe0d3aaf549f0 Mon Sep 17 00:00:00 2001 -From: Ariadne Conill -Date: Tue, 21 Sep 2021 14:53:13 +0000 -Subject: [PATCH] Revert "PR25882, .gnu.attributes are not checked for shared - libraries" - -This revert is needed to avoid wrongly tagging objects with the incompatible -IBM long double ABI, which is not supported by musl and will result in -linking errors if used. - -This reverts commit a8acd6eeb6dc2cc5460ece90f90ebe36b56b20ba. ---- - bfd/elf32-tic6x.c | 3 --- - ld/ldlang.c | 10 ++++------ - 2 files changed, 4 insertions(+), 9 deletions(-) - -diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c -index 5754f3cb860..3ad1d612749 100644 ---- a/bfd/elf32-tic6x.c -+++ b/bfd/elf32-tic6x.c -@@ -3735,9 +3735,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info) - - case Tag_ABI_PIC: - case Tag_ABI_PID: -- /* Don't transfer these tags from dynamic objects. */ -- if ((ibfd->flags & DYNAMIC) != 0) -- continue; - if (out_attr[i].i > in_attr[i].i) - out_attr[i].i = in_attr[i].i; - break; -diff --git a/ld/ldlang.c b/ld/ldlang.c -index 37b64c89ee1..f13beaef9d9 100644 ---- a/ld/ldlang.c -+++ b/ld/ldlang.c -@@ -7071,13 +7071,11 @@ lang_check (void) - bfd_printable_name (input_bfd), input_bfd, - bfd_printable_name (link_info.output_bfd)); - } -- -- /* If the input bfd has no contents, it shouldn't set the -- private data of the output bfd. */ -- else if (!file->flags.just_syms -- && ((input_bfd->flags & DYNAMIC) != 0 -- || bfd_count_sections (input_bfd) != 0)) -+ else if (bfd_count_sections (input_bfd)) - { -+ /* If the input bfd has no contents, it shouldn't set the -+ private data of the output bfd. */ -+ - bfd_error_handler_type pfn = NULL; - - /* If we aren't supposed to warn about mismatched input --- -2.33.0 - diff --git a/cross/binutils-armv7/APKBUILD b/cross/binutils-armv7/APKBUILD deleted file mode 100644 index 86cc72f28..000000000 --- a/cross/binutils-armv7/APKBUILD +++ /dev/null @@ -1,153 +0,0 @@ -# Automatically generated aport, do not edit! -# Generator: pmbootstrap aportgen binutils-armv7 -# Based on: main/binutils - - -CTARGET_ARCH=armv7 -CTARGET="$(arch_to_hostspec $CTARGET_ARCH)" - -pkgname=binutils-armv7 -pkgver=2.40 -pkgrel=12 -pkgdesc="Tools necessary to build programs for armv7 targets" -url="https://www.gnu.org/software/binutils/" -makedepends_build="bison flex texinfo" -makedepends_host="zlib-dev jansson-dev zstd-dev" -arch="x86_64" -license="GPL-2.0-or-later AND LGPL-2.1-or-later AND BSD-3-Clause" -subpackages="binutils-dev binutils-doc" -source="https://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.xz - 0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch - CVE-2023-1972.patch - binutils-ld-fix-static-linking.patch - riscv64-textrels.patch - " -builddir="$srcdir/binutils-$pkgver" - -if [ -z "$BOOTSTRAP" ]; then - makedepends_host="$makedepends_host jansson-dev zstd-dev" - _noboot_configure="--enable-jansson --with-zstd" -fi - -if [ "$CHOST" = "$CBUILD" ] && [ "$CBUILD" = "$CTARGET" ] && [ "$CTARGET_ARCH" != "riscv64" ]; then - subpackages="$subpackages binutils-gold" -fi - -if [ "$CHOST" != "$CTARGET" ]; then - pkgname="binutils-$CTARGET_ARCH" - subpackages="" - sonameprefix="binutils:" -fi - -# secfixes: -# 2.40-r10: -# - CVE-2023-1972 -# 2.40-r0: -# - CVE-2023-1579 -# 2.39-r2: -# - CVE-2022-38533 -# 2.39-r0: -# - CVE-2022-38126 -# 2.35.2-r1: -# - CVE-2021-3487 -# 2.32-r0: -# - CVE-2018-19931 -# - CVE-2018-19932 -# - CVE-2018-20002 -# - CVE-2018-20712 -# 2.28-r1: -# - CVE-2017-7614 - -build() { - local _sysroot=/ - local _cross_configure="--enable-install-libiberty --enable-shared" - local _arch_configure="" - local _gold_configure="--disable-gold" - local _plugin_configure="--enable-plugins" - - if [ "$CHOST" != "$CTARGET" ]; then - _sysroot="$CBUILDROOT" - _cross_configure="--disable-install-libiberty" - _plugin_configure="--disable-plugins" - fi - - if [ "$CHOST" = "$CBUILD" ] && [ "$CBUILD" = "$CTARGET" ] && [ "$CTARGET_ARCH" != "riscv64" ]; then - _gold_configure="--enable-gold" - fi - - if [ "$CTARGET_ARCH" = "x86_64" ]; then - _arch_configure="--enable-targets=x86_64-pep" - fi - - if [ "$CTARGET_ARCH" = "riscv64" ]; then - _gold_configure="--disable-gold" - fi - - CFLAGS="$CFLAGS -O2" \ - CXXFLAGS="$CXXFLAGS -O2" \ - ./configure \ - --build=$CBUILD \ - --host=$CHOST \ - --target=$CTARGET \ - --with-build-sysroot="$CBUILDROOT" \ - --with-sysroot=$_sysroot \ - --prefix=/usr \ - --mandir=/usr/share/man \ - --infodir=/usr/share/info \ - --sysconfdir=/etc \ - $_arch_configure \ - $_cross_configure \ - $_gold_configure \ - $_plugin_configure \ - $_noboot_configure \ - --disable-gprofng \ - --disable-multilib \ - --disable-nls \ - --disable-werror \ - --enable-64-bit-bfd \ - --enable-colored-disassembly \ - --enable-default-execstack=no \ - --enable-default-hash-style=gnu \ - --enable-deterministic-archives \ - --enable-ld=default \ - --enable-new-dtags \ - --enable-relro \ - --enable-threads \ - --with-bugurl="https://postmarketos.org/issues" \ - --with-mmap \ - --with-pic \ - --with-system-zlib - make -} - -package() { - make install DESTDIR="$pkgdir" - if [ -d "$pkgdir"/usr/lib64 ]; then - mv "$pkgdir"/usr/lib64/* "$pkgdir"/usr/lib/ - rmdir "$pkgdir"/usr/lib64 - fi - if [ "$CHOST" != "$CTARGET" ]; then - # creating cross tools: remove any files that would conflict - # with the native tools, or other cross tools - rm -r "${pkgdir:?}"/usr/share - rm -f "$pkgdir"/usr/lib/libiberty.a - rm -r "${pkgdir:?}"/usr/lib/bfd-plugins - fi -} - -gold() { - pkgdesc="GNU binutils - gold linker" - - if [ -e "$pkgdir"/usr/bin/ld.gold ]; then - amove usr/bin/ld.gold - fi - amove usr/$CTARGET/bin/ld.gold -} - -sha512sums=" -a37e042523bc46494d99d5637c3f3d8f9956d9477b748b3b1f6d7dfbb8d968ed52c932e88a4e946c6f77b8f48f1e1b360ca54c3d298f17193f3b4963472f6925 binutils-2.40.tar.xz -70ec22bd72ef6dddecfd970613387dd4a8cdc8730dd3cbf03d5a0c3a7c4d839383167bb06dad21bf7c235329fd44b5dc4aefe762f68544f17155cf002bf1be4a 0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch -b434e126c4c3f70c02b0a5597a0d75a4ea99b1498552c2d0676005ac0ae171c56cf07a6f6e2faa1381f1f4d4a37043a07d177dd4912f09b61109f103853594b2 CVE-2023-1972.patch -ecee33b0e435aa704af1c334e560f201638ff79e199aa11ed78a72f7c9b46f85fbb227af5748e735fd681d1965fcc42ac81b0c8824e540430ce0c706c81e8b49 binutils-ld-fix-static-linking.patch -d138691d953c6f49111601df1731db157d2ecedf1593e37ababb5c12ff10572b5f7982288c81579f4a99097780dbb18d3b457f74daab0f935f59423e69cec56f riscv64-textrels.patch -" diff --git a/cross/binutils-armv7/CVE-2023-1972.patch b/cross/binutils-armv7/CVE-2023-1972.patch deleted file mode 100644 index ab8f8eb8b..000000000 --- a/cross/binutils-armv7/CVE-2023-1972.patch +++ /dev/null @@ -1,37 +0,0 @@ -Patch-Source: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=c22d38baefc5a7a1e1f5cdc9dbb556b1f0ec5c57;hp=f2f9bde5cde7ff34ed0a4c4682a211d402aa1086 -https://sourceware.org/bugzilla/show_bug.cgi?id=30285 --- -From: Nick Clifton -Date: Thu, 30 Mar 2023 09:10:09 +0000 (+0100) -Subject: Fix an illegal memory access when an accessing a zer0-lengthverdef table. -X-Git-Url: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff_plain;h=c22d38baefc5a7a1e1f5cdc9dbb556b1f0ec5c57;hp=f2f9bde5cde7ff34ed0a4c4682a211d402aa1086 - -Fix an illegal memory access when an accessing a zer0-lengthverdef table. - - PR 30285 - * elf.c (_bfd_elf_slurp_version_tables): Fail if no version definitions are allocated. ---- - -diff --git a/bfd/elf.c b/bfd/elf.c -index 027d0143735..185028cbd97 100644 ---- a/bfd/elf.c -+++ b/bfd/elf.c -@@ -9030,6 +9030,9 @@ _bfd_elf_slurp_version_tables (bfd *abfd, bool default_imported_symver) - bfd_set_error (bfd_error_file_too_big); - goto error_return_verdef; - } -+ -+ if (amt == 0) -+ goto error_return_verdef; - elf_tdata (abfd)->verdef = (Elf_Internal_Verdef *) bfd_zalloc (abfd, amt); - if (elf_tdata (abfd)->verdef == NULL) - goto error_return_verdef; -@@ -9133,6 +9136,8 @@ _bfd_elf_slurp_version_tables (bfd *abfd, bool default_imported_symver) - bfd_set_error (bfd_error_file_too_big); - goto error_return; - } -+ if (amt == 0) -+ goto error_return; - elf_tdata (abfd)->verdef = (Elf_Internal_Verdef *) bfd_zalloc (abfd, amt); - if (elf_tdata (abfd)->verdef == NULL) - goto error_return; diff --git a/cross/binutils-armv7/binutils-ld-fix-static-linking.patch b/cross/binutils-armv7/binutils-ld-fix-static-linking.patch deleted file mode 100644 index bc5d76265..000000000 --- a/cross/binutils-armv7/binutils-ld-fix-static-linking.patch +++ /dev/null @@ -1,46 +0,0 @@ -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/cross/binutils-armv7/riscv64-textrels.patch b/cross/binutils-armv7/riscv64-textrels.patch deleted file mode 100644 index 8660bfa36..000000000 --- a/cross/binutils-armv7/riscv64-textrels.patch +++ /dev/null @@ -1,103 +0,0 @@ -Patch-Source: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=225df051d3d4cf714d1791b9035966a6686b3f3d;hp=a70d5ba34cb64bbbb7df4f3055cf5b1967bdf61e#patch1 -https://sourceware.org/bugzilla/show_bug.cgi?id=25694 --- -From: Nelson Chu -Date: Thu, 4 May 2023 09:08:50 +0000 (+0800) -Subject: [PR ld/22263][PR ld/25694] RISC-V: Avoid dynamic TLS relocs in PIE. -X-Git-Url: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff_plain;h=225df051d3d4cf714d1791b9035966a6686b3f3d;hp=a70d5ba34cb64bbbb7df4f3055cf5b1967bdf61e - -[PR ld/22263][PR ld/25694] RISC-V: Avoid dynamic TLS relocs in PIE. - -Lots of targets already fixed the TEXTREL problem for TLS in PIE. - -* For PR ld/25694, -In the check_reloc, refer to spare and loongarch, they don't need to reserve -any local dynamic reloc for TLS LE in pie/pde, and similar to other targets. -So it seems like riscv was too conservative to estimate the TLS LE before. -Just break and don't goto static_reloc for TLS LE in pie/pde can fix the -TEXTREL problem. - -* For PR ld/22263, -The risc-v code for TLS GD/IE in the relocate_section seems same as MIPS port. -So similar to MIPS, pr22570, commits 9143e72c6d4d and 1cb83cac9a89, it seems -also the right way to do the same thing for risc-v. - -On risc-v, fixes -FAIL: Build pr22263-1 - -RISC-V haven't supported the TLS transitions, so will need the same fix (use -bfd_link_dll) in the future. - -bfd/ - PR ld/22263 - PR ld/25694 - * elfnn-riscv.c (riscv_elf_check_relocs): Replace bfd_link_pic with - bfd_link_dll for TLS IE. Don't need to reserve the local dynamic - relocation for TLS LE in pie/pde, and report error in pic just like - before. - (riscv_elf_relocate_section): For TLS GD/IE, use bfd_link_dll rather - than !bfd_link_pic in determining the dynamic symbol index. Avoid - the index of -1. ---- - -diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c -index 75af040cf92..762ea231c0b 100644 ---- a/bfd/elfnn-riscv.c -+++ b/bfd/elfnn-riscv.c -@@ -824,7 +824,7 @@ riscv_elf_check_relocs (bfd *abfd, struct bfd_link_info *info, - break; - - case R_RISCV_TLS_GOT_HI20: -- if (bfd_link_pic (info)) -+ if (bfd_link_dll (info)) - info->flags |= DF_STATIC_TLS; - if (!riscv_elf_record_got_reference (abfd, info, h, r_symndx) - || !riscv_elf_record_tls_type (abfd, h, r_symndx, GOT_TLS_IE)) -@@ -920,11 +920,12 @@ riscv_elf_check_relocs (bfd *abfd, struct bfd_link_info *info, - goto static_reloc; - - case R_RISCV_TPREL_HI20: -+ /* This is not allowed in the pic, but okay in pie. */ - if (!bfd_link_executable (info)) - return bad_static_reloc (abfd, r_type, h); - if (h != NULL) - riscv_elf_record_tls_type (abfd, h, r_symndx, GOT_TLS_LE); -- goto static_reloc; -+ break; - - case R_RISCV_HI20: - if (bfd_link_pic (info)) -@@ -2880,24 +2881,20 @@ riscv_elf_relocate_section (bfd *output_bfd, - if (htab->elf.srelgot == NULL) - abort (); - -- if (h != NULL) -- { -- bool dyn, pic; -- dyn = htab->elf.dynamic_sections_created; -- pic = bfd_link_pic (info); -- -- if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, pic, h) -- && (!pic || !SYMBOL_REFERENCES_LOCAL (info, h))) -- indx = h->dynindx; -- } -+ bool dyn = elf_hash_table (info)->dynamic_sections_created; -+ if (h != NULL -+ && h->dynindx != -1 -+ && WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, bfd_link_pic (info), h) -+ && (bfd_link_dll (info) || !SYMBOL_REFERENCES_LOCAL (info, h))) -+ indx = h->dynindx; - - /* The GOT entries have not been initialized yet. Do it - now, and emit any relocations. */ -- if ((bfd_link_pic (info) || indx != 0) -+ if ((bfd_link_dll (info) || indx != 0) - && (h == NULL - || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT - || h->root.type != bfd_link_hash_undefweak)) -- need_relocs = true; -+ need_relocs = true; - - if (tls_type & GOT_TLS_GD) - { - diff --git a/cross/binutils-riscv64/0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch b/cross/binutils-riscv64/0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch deleted file mode 100644 index 6e1fa7731..000000000 --- a/cross/binutils-riscv64/0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch +++ /dev/null @@ -1,55 +0,0 @@ -From bbf05b742fde518fb97c789b043fe0d3aaf549f0 Mon Sep 17 00:00:00 2001 -From: Ariadne Conill -Date: Tue, 21 Sep 2021 14:53:13 +0000 -Subject: [PATCH] Revert "PR25882, .gnu.attributes are not checked for shared - libraries" - -This revert is needed to avoid wrongly tagging objects with the incompatible -IBM long double ABI, which is not supported by musl and will result in -linking errors if used. - -This reverts commit a8acd6eeb6dc2cc5460ece90f90ebe36b56b20ba. ---- - bfd/elf32-tic6x.c | 3 --- - ld/ldlang.c | 10 ++++------ - 2 files changed, 4 insertions(+), 9 deletions(-) - -diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c -index 5754f3cb860..3ad1d612749 100644 ---- a/bfd/elf32-tic6x.c -+++ b/bfd/elf32-tic6x.c -@@ -3735,9 +3735,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info) - - case Tag_ABI_PIC: - case Tag_ABI_PID: -- /* Don't transfer these tags from dynamic objects. */ -- if ((ibfd->flags & DYNAMIC) != 0) -- continue; - if (out_attr[i].i > in_attr[i].i) - out_attr[i].i = in_attr[i].i; - break; -diff --git a/ld/ldlang.c b/ld/ldlang.c -index 37b64c89ee1..f13beaef9d9 100644 ---- a/ld/ldlang.c -+++ b/ld/ldlang.c -@@ -7071,13 +7071,11 @@ lang_check (void) - bfd_printable_name (input_bfd), input_bfd, - bfd_printable_name (link_info.output_bfd)); - } -- -- /* If the input bfd has no contents, it shouldn't set the -- private data of the output bfd. */ -- else if (!file->flags.just_syms -- && ((input_bfd->flags & DYNAMIC) != 0 -- || bfd_count_sections (input_bfd) != 0)) -+ else if (bfd_count_sections (input_bfd)) - { -+ /* If the input bfd has no contents, it shouldn't set the -+ private data of the output bfd. */ -+ - bfd_error_handler_type pfn = NULL; - - /* If we aren't supposed to warn about mismatched input --- -2.33.0 - diff --git a/cross/binutils-riscv64/APKBUILD b/cross/binutils-riscv64/APKBUILD deleted file mode 100644 index 5a705dbdf..000000000 --- a/cross/binutils-riscv64/APKBUILD +++ /dev/null @@ -1,153 +0,0 @@ -# Automatically generated aport, do not edit! -# Generator: pmbootstrap aportgen binutils-riscv64 -# Based on: main/binutils - - -CTARGET_ARCH=riscv64 -CTARGET="$(arch_to_hostspec $CTARGET_ARCH)" - -pkgname=binutils-riscv64 -pkgver=2.40 -pkgrel=12 -pkgdesc="Tools necessary to build programs for riscv64 targets" -url="https://www.gnu.org/software/binutils/" -makedepends_build="bison flex texinfo" -makedepends_host="zlib-dev jansson-dev zstd-dev" -arch="x86_64" -license="GPL-2.0-or-later AND LGPL-2.1-or-later AND BSD-3-Clause" -subpackages="binutils-dev binutils-doc" -source="https://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.xz - 0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch - CVE-2023-1972.patch - binutils-ld-fix-static-linking.patch - riscv64-textrels.patch - " -builddir="$srcdir/binutils-$pkgver" - -if [ -z "$BOOTSTRAP" ]; then - makedepends_host="$makedepends_host jansson-dev zstd-dev" - _noboot_configure="--enable-jansson --with-zstd" -fi - -if [ "$CHOST" = "$CBUILD" ] && [ "$CBUILD" = "$CTARGET" ] && [ "$CTARGET_ARCH" != "riscv64" ]; then - subpackages="$subpackages binutils-gold" -fi - -if [ "$CHOST" != "$CTARGET" ]; then - pkgname="binutils-$CTARGET_ARCH" - subpackages="" - sonameprefix="binutils:" -fi - -# secfixes: -# 2.40-r10: -# - CVE-2023-1972 -# 2.40-r0: -# - CVE-2023-1579 -# 2.39-r2: -# - CVE-2022-38533 -# 2.39-r0: -# - CVE-2022-38126 -# 2.35.2-r1: -# - CVE-2021-3487 -# 2.32-r0: -# - CVE-2018-19931 -# - CVE-2018-19932 -# - CVE-2018-20002 -# - CVE-2018-20712 -# 2.28-r1: -# - CVE-2017-7614 - -build() { - local _sysroot=/ - local _cross_configure="--enable-install-libiberty --enable-shared" - local _arch_configure="" - local _gold_configure="--disable-gold" - local _plugin_configure="--enable-plugins" - - if [ "$CHOST" != "$CTARGET" ]; then - _sysroot="$CBUILDROOT" - _cross_configure="--disable-install-libiberty" - _plugin_configure="--disable-plugins" - fi - - if [ "$CHOST" = "$CBUILD" ] && [ "$CBUILD" = "$CTARGET" ] && [ "$CTARGET_ARCH" != "riscv64" ]; then - _gold_configure="--enable-gold" - fi - - if [ "$CTARGET_ARCH" = "x86_64" ]; then - _arch_configure="--enable-targets=x86_64-pep" - fi - - if [ "$CTARGET_ARCH" = "riscv64" ]; then - _gold_configure="--disable-gold" - fi - - CFLAGS="$CFLAGS -O2" \ - CXXFLAGS="$CXXFLAGS -O2" \ - ./configure \ - --build=$CBUILD \ - --host=$CHOST \ - --target=$CTARGET \ - --with-build-sysroot="$CBUILDROOT" \ - --with-sysroot=$_sysroot \ - --prefix=/usr \ - --mandir=/usr/share/man \ - --infodir=/usr/share/info \ - --sysconfdir=/etc \ - $_arch_configure \ - $_cross_configure \ - $_gold_configure \ - $_plugin_configure \ - $_noboot_configure \ - --disable-gprofng \ - --disable-multilib \ - --disable-nls \ - --disable-werror \ - --enable-64-bit-bfd \ - --enable-colored-disassembly \ - --enable-default-execstack=no \ - --enable-default-hash-style=gnu \ - --enable-deterministic-archives \ - --enable-ld=default \ - --enable-new-dtags \ - --enable-relro \ - --enable-threads \ - --with-bugurl="https://postmarketos.org/issues" \ - --with-mmap \ - --with-pic \ - --with-system-zlib - make -} - -package() { - make install DESTDIR="$pkgdir" - if [ -d "$pkgdir"/usr/lib64 ]; then - mv "$pkgdir"/usr/lib64/* "$pkgdir"/usr/lib/ - rmdir "$pkgdir"/usr/lib64 - fi - if [ "$CHOST" != "$CTARGET" ]; then - # creating cross tools: remove any files that would conflict - # with the native tools, or other cross tools - rm -r "${pkgdir:?}"/usr/share - rm -f "$pkgdir"/usr/lib/libiberty.a - rm -r "${pkgdir:?}"/usr/lib/bfd-plugins - fi -} - -gold() { - pkgdesc="GNU binutils - gold linker" - - if [ -e "$pkgdir"/usr/bin/ld.gold ]; then - amove usr/bin/ld.gold - fi - amove usr/$CTARGET/bin/ld.gold -} - -sha512sums=" -a37e042523bc46494d99d5637c3f3d8f9956d9477b748b3b1f6d7dfbb8d968ed52c932e88a4e946c6f77b8f48f1e1b360ca54c3d298f17193f3b4963472f6925 binutils-2.40.tar.xz -70ec22bd72ef6dddecfd970613387dd4a8cdc8730dd3cbf03d5a0c3a7c4d839383167bb06dad21bf7c235329fd44b5dc4aefe762f68544f17155cf002bf1be4a 0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch -b434e126c4c3f70c02b0a5597a0d75a4ea99b1498552c2d0676005ac0ae171c56cf07a6f6e2faa1381f1f4d4a37043a07d177dd4912f09b61109f103853594b2 CVE-2023-1972.patch -ecee33b0e435aa704af1c334e560f201638ff79e199aa11ed78a72f7c9b46f85fbb227af5748e735fd681d1965fcc42ac81b0c8824e540430ce0c706c81e8b49 binutils-ld-fix-static-linking.patch -d138691d953c6f49111601df1731db157d2ecedf1593e37ababb5c12ff10572b5f7982288c81579f4a99097780dbb18d3b457f74daab0f935f59423e69cec56f riscv64-textrels.patch -" diff --git a/cross/binutils-riscv64/CVE-2023-1972.patch b/cross/binutils-riscv64/CVE-2023-1972.patch deleted file mode 100644 index ab8f8eb8b..000000000 --- a/cross/binutils-riscv64/CVE-2023-1972.patch +++ /dev/null @@ -1,37 +0,0 @@ -Patch-Source: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=c22d38baefc5a7a1e1f5cdc9dbb556b1f0ec5c57;hp=f2f9bde5cde7ff34ed0a4c4682a211d402aa1086 -https://sourceware.org/bugzilla/show_bug.cgi?id=30285 --- -From: Nick Clifton -Date: Thu, 30 Mar 2023 09:10:09 +0000 (+0100) -Subject: Fix an illegal memory access when an accessing a zer0-lengthverdef table. -X-Git-Url: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff_plain;h=c22d38baefc5a7a1e1f5cdc9dbb556b1f0ec5c57;hp=f2f9bde5cde7ff34ed0a4c4682a211d402aa1086 - -Fix an illegal memory access when an accessing a zer0-lengthverdef table. - - PR 30285 - * elf.c (_bfd_elf_slurp_version_tables): Fail if no version definitions are allocated. ---- - -diff --git a/bfd/elf.c b/bfd/elf.c -index 027d0143735..185028cbd97 100644 ---- a/bfd/elf.c -+++ b/bfd/elf.c -@@ -9030,6 +9030,9 @@ _bfd_elf_slurp_version_tables (bfd *abfd, bool default_imported_symver) - bfd_set_error (bfd_error_file_too_big); - goto error_return_verdef; - } -+ -+ if (amt == 0) -+ goto error_return_verdef; - elf_tdata (abfd)->verdef = (Elf_Internal_Verdef *) bfd_zalloc (abfd, amt); - if (elf_tdata (abfd)->verdef == NULL) - goto error_return_verdef; -@@ -9133,6 +9136,8 @@ _bfd_elf_slurp_version_tables (bfd *abfd, bool default_imported_symver) - bfd_set_error (bfd_error_file_too_big); - goto error_return; - } -+ if (amt == 0) -+ goto error_return; - elf_tdata (abfd)->verdef = (Elf_Internal_Verdef *) bfd_zalloc (abfd, amt); - if (elf_tdata (abfd)->verdef == NULL) - goto error_return; diff --git a/cross/binutils-riscv64/binutils-ld-fix-static-linking.patch b/cross/binutils-riscv64/binutils-ld-fix-static-linking.patch deleted file mode 100644 index bc5d76265..000000000 --- a/cross/binutils-riscv64/binutils-ld-fix-static-linking.patch +++ /dev/null @@ -1,46 +0,0 @@ -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/cross/binutils-riscv64/riscv64-textrels.patch b/cross/binutils-riscv64/riscv64-textrels.patch deleted file mode 100644 index 8660bfa36..000000000 --- a/cross/binutils-riscv64/riscv64-textrels.patch +++ /dev/null @@ -1,103 +0,0 @@ -Patch-Source: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=225df051d3d4cf714d1791b9035966a6686b3f3d;hp=a70d5ba34cb64bbbb7df4f3055cf5b1967bdf61e#patch1 -https://sourceware.org/bugzilla/show_bug.cgi?id=25694 --- -From: Nelson Chu -Date: Thu, 4 May 2023 09:08:50 +0000 (+0800) -Subject: [PR ld/22263][PR ld/25694] RISC-V: Avoid dynamic TLS relocs in PIE. -X-Git-Url: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff_plain;h=225df051d3d4cf714d1791b9035966a6686b3f3d;hp=a70d5ba34cb64bbbb7df4f3055cf5b1967bdf61e - -[PR ld/22263][PR ld/25694] RISC-V: Avoid dynamic TLS relocs in PIE. - -Lots of targets already fixed the TEXTREL problem for TLS in PIE. - -* For PR ld/25694, -In the check_reloc, refer to spare and loongarch, they don't need to reserve -any local dynamic reloc for TLS LE in pie/pde, and similar to other targets. -So it seems like riscv was too conservative to estimate the TLS LE before. -Just break and don't goto static_reloc for TLS LE in pie/pde can fix the -TEXTREL problem. - -* For PR ld/22263, -The risc-v code for TLS GD/IE in the relocate_section seems same as MIPS port. -So similar to MIPS, pr22570, commits 9143e72c6d4d and 1cb83cac9a89, it seems -also the right way to do the same thing for risc-v. - -On risc-v, fixes -FAIL: Build pr22263-1 - -RISC-V haven't supported the TLS transitions, so will need the same fix (use -bfd_link_dll) in the future. - -bfd/ - PR ld/22263 - PR ld/25694 - * elfnn-riscv.c (riscv_elf_check_relocs): Replace bfd_link_pic with - bfd_link_dll for TLS IE. Don't need to reserve the local dynamic - relocation for TLS LE in pie/pde, and report error in pic just like - before. - (riscv_elf_relocate_section): For TLS GD/IE, use bfd_link_dll rather - than !bfd_link_pic in determining the dynamic symbol index. Avoid - the index of -1. ---- - -diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c -index 75af040cf92..762ea231c0b 100644 ---- a/bfd/elfnn-riscv.c -+++ b/bfd/elfnn-riscv.c -@@ -824,7 +824,7 @@ riscv_elf_check_relocs (bfd *abfd, struct bfd_link_info *info, - break; - - case R_RISCV_TLS_GOT_HI20: -- if (bfd_link_pic (info)) -+ if (bfd_link_dll (info)) - info->flags |= DF_STATIC_TLS; - if (!riscv_elf_record_got_reference (abfd, info, h, r_symndx) - || !riscv_elf_record_tls_type (abfd, h, r_symndx, GOT_TLS_IE)) -@@ -920,11 +920,12 @@ riscv_elf_check_relocs (bfd *abfd, struct bfd_link_info *info, - goto static_reloc; - - case R_RISCV_TPREL_HI20: -+ /* This is not allowed in the pic, but okay in pie. */ - if (!bfd_link_executable (info)) - return bad_static_reloc (abfd, r_type, h); - if (h != NULL) - riscv_elf_record_tls_type (abfd, h, r_symndx, GOT_TLS_LE); -- goto static_reloc; -+ break; - - case R_RISCV_HI20: - if (bfd_link_pic (info)) -@@ -2880,24 +2881,20 @@ riscv_elf_relocate_section (bfd *output_bfd, - if (htab->elf.srelgot == NULL) - abort (); - -- if (h != NULL) -- { -- bool dyn, pic; -- dyn = htab->elf.dynamic_sections_created; -- pic = bfd_link_pic (info); -- -- if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, pic, h) -- && (!pic || !SYMBOL_REFERENCES_LOCAL (info, h))) -- indx = h->dynindx; -- } -+ bool dyn = elf_hash_table (info)->dynamic_sections_created; -+ if (h != NULL -+ && h->dynindx != -1 -+ && WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, bfd_link_pic (info), h) -+ && (bfd_link_dll (info) || !SYMBOL_REFERENCES_LOCAL (info, h))) -+ indx = h->dynindx; - - /* The GOT entries have not been initialized yet. Do it - now, and emit any relocations. */ -- if ((bfd_link_pic (info) || indx != 0) -+ if ((bfd_link_dll (info) || indx != 0) - && (h == NULL - || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT - || h->root.type != bfd_link_hash_undefweak)) -- need_relocs = true; -+ need_relocs = true; - - if (tls_type & GOT_TLS_GD) - { -