Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package binutils for openSUSE:Factory checked in at 2023-01-23 18:30:20 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/binutils (Old) and /work/SRC/openSUSE:Factory/.binutils.new.32243 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "binutils" Mon Jan 23 18:30:20 2023 rev:160 rq:1060010 version:2.39 Changes: -------- --- /work/SRC/openSUSE:Factory/binutils/binutils.changes 2022-08-13 22:36:32.986626973 +0200 +++ /work/SRC/openSUSE:Factory/.binutils.new.32243/binutils.changes 2023-01-23 18:30:21.431467134 +0100 @@ -1,0 +2,47 @@ +Sat Dec 10 10:00:56 UTC 2022 - Dirk Müller <dmuel...@suse.com> + +- fix build on x86_64_vX platforms + +------------------------------------------------------------------- +Tue Oct 25 14:52:30 UTC 2022 - Michael Matz <m...@suse.com> + +- Add binutils-maxpagesize.diff for a problem on old code + streams, where we would generate too large binaries. + +------------------------------------------------------------------- +Tue Oct 25 12:54:34 UTC 2022 - Andreas Schwab <sch...@suse.de> + +- s390-pic-dso.diff: use %pB instead of %B + +------------------------------------------------------------------- +Mon Oct 17 15:16:23 UTC 2022 - Michael Matz <m...@suse.com> + +- SLE toolchain update of binutils. Update to 2.39 from 2.37, + which means obsoleting and hence removing these patches: + binutils-add-efi-aarch64-1.diff, binutils-add-efi-aarch64-2.diff, + binutils-add-efi-aarch64-3.diff, binutils-fix-keepdebug.diff, + binutils-add-z16-name.diff. + Implements [jsc#SLE-25046, jsc#PED-2029, jsc#PED-2035, jsc#PED-2033, + jsc#PED-2030, jsc#PED-2038, jsc#PED-2032, jsc#PED-2034, jsc#PED-2031, + jsc#SLE-25047] +- This fixes these CVEs relative to 2.37: + [bsc#1188374, bsc#1185597] aka (GCC) PR99935 aka CVE-2021-3648 + [bsc#1193929] aka PR28694 aka CVE-2021-45078 + [bsc#1194783] aka (GCC) PR98886 aka CVE-2021-46195 + [bsc#1197592] aka (GCC) PR105039 aka CVE-2022-27943 + [bsc#1202966] aka PR29289 aka CVE-2022-38126 + [bsc#1202967] aka PR29290 aka CVE-2022-38127 + [bsc#1202969] aka CVE-2021-3826 + +------------------------------------------------------------------- +Fri Oct 14 15:22:38 UTC 2022 - Dirk Müller <dmuel...@suse.com> + +- add arm32-avoid-copyreloc.patch for PR16177 (bsc#1200962) + +------------------------------------------------------------------- +Fri Aug 26 13:24:35 UTC 2022 - Michael Matz <m...@suse.com> + +- Add binutils-pr29482.diff for PR29482, aka CVE-2022-38533 + [bsc#1202816] + +------------------------------------------------------------------- @@ -47,0 +95,9 @@ +Mon Jun 13 12:09:35 UTC 2022 - Michael Matz <m...@suse.com> + +(Fake entry from SLE for tracking purposes:) +- For building shim 15.6~rc1 (and later versions) aarch64 image, objcopy + needs to support efi-app-aarch64 target. (bsc#1198458) + Adds binutils-add-efi-aarch64-1.diff, + binutils-add-efi-aarch64-2.diff, binutils-add-efi-aarch64-3.diff . + +------------------------------------------------------------------- @@ -65,0 +122,7 @@ +Fri May 6 14:17:19 UTC 2022 - Michael Matz <m...@suse.com> + +(Fake entry from SLE for tracking purposes:) +- Add binutils-fix-keepdebug.diff for fix bsc#1191908, a problem + in crash not accepting some of our .ko.debug files. + +------------------------------------------------------------------- @@ -86,0 +150,10 @@ +Mon Apr 25 16:25:47 UTC 2022 - Michael Matz <m...@suse.com> + +- Add binutils-revert-rela.diff to revert back to old behaviour + of not ignoring the in-section content of to be relocated + fields on x86-64, even though that's a RELA architecture. + Compatibility with buggy object files generated by old tools. + [bsc#1198422] + (forward port from SLE) + +------------------------------------------------------------------- @@ -90,0 +164,7 @@ + +------------------------------------------------------------------- +Mon Apr 11 13:43:11 UTC 2022 - Michael Matz <m...@suse.com> + +(Fake entry from SLE for tracking purposes:) +- Add binutils-add-z16-name.diff so that the now official name + z16 for arch14 is recognized. [bsc#1198237] New: ---- arm32-avoid-copyreloc.patch binutils-maxpagesize.diff binutils-pr29482.diff binutils-revert-rela.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ binutils.spec ++++++ --- /var/tmp/diff_new_pack.5LcVqY/_old 2023-01-23 18:30:23.735481355 +0100 +++ /var/tmp/diff_new_pack.5LcVqY/_new 2023-01-23 18:30:23.739481380 +0100 @@ -94,7 +94,7 @@ %define make_check_handling false %endif # handle all binary object formats supported by SUSE (and a few more) -%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 ppc64le riscv64 s390 s390x x86_64 +%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 ppc64le riscv64 s390 s390x x86_64 %x86_64 %define build_multitarget 1 %else %define build_multitarget 0 @@ -125,6 +125,7 @@ Patch8: ld-relro.diff Patch9: testsuite.diff Patch10: enable-targets-gold.diff +Patch11: arm32-avoid-copyreloc.patch Patch12: s390-pic-dso.diff Patch14: binutils-build-as-needed.diff Patch15: binutils-znow.patch @@ -138,6 +139,9 @@ Patch41: binutils-fix-relax.diff Patch42: binutils-compat-old-behaviour.diff Patch43: binutils-revert-hlasm-insns.diff +Patch44: binutils-revert-rela.diff +Patch45: binutils-pr29482.diff +Patch46: binutils-maxpagesize.diff Patch100: add-ulp-section.diff Patch90: cross-avr-nesc-as.patch Patch92: cross-avr-omit_section_dynsym.patch @@ -165,7 +169,7 @@ PreReq: update-alternatives %endif %if 0%{!?cross:1} && 0%{?suse_version} >= 1310 -%define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc +%define gold_archs %ix86 aarch64 %arm x86_64 %x86_64 ppc ppc64 ppc64le s390x %sparc %endif %description gold @@ -215,7 +219,7 @@ %ifarch %arm %define HOST %{_target_cpu}-suse-linux-gnueabi %else -%define HOST %(echo %{_target_cpu} | sed -e "s/parisc/hppa/" -e "s/i.86/i586/" -e "s/ppc/powerpc/" -e "s/sparc64v.*/sparc64/" -e "s/sparcv.*/sparc/")-suse-linux +%define HOST %(echo %{_target_cpu} | sed -s -e "s/x86_64_v./x86_64/" -e "s/parisc/hppa/" -e "s/i.86/i586/" -e "s/ppc/powerpc/" -e "s/sparc64v.*/sparc64/" -e "s/sparcv.*/sparc/")-suse-linux %endif %define DIST %(echo '%distribution' | sed 's/ (.*)//') @@ -243,6 +247,7 @@ %patch8 %patch9 %patch10 +%patch11 -p1 %patch12 %patch14 %patch15 @@ -259,7 +264,10 @@ %if %{suse_version} < 1550 %patch42 -p1 %patch43 -p1 +%patch44 -p1 %endif +%patch45 -p1 +%patch46 -p1 %patch100 -p1 %if "%{TARGET}" == "avr" cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h @@ -690,7 +698,7 @@ %{_libdir}/libctf-nobfd.so.* %if %{suse_version} > 1500 -%ifarch %ix86 x86_64 aarch64 +%ifarch %ix86 x86_64 %x86_64 aarch64 %files -n gprofng %defattr(-,root,root) %dir %{_libdir}/gprofng/ ++++++ arm32-avoid-copyreloc.patch ++++++ When a writable input section (i.e. data) refers to a symbol defined in an ET_DYN object, BFD ld for ARM targets generates a COPY dynamic reloc. For other targets like x86, this situation generates a plain data dynamic reloc. Gold for ARM also generates the plain data dynamic reloc. https://bugzilla.suse.com/show_bug.cgi?id=1200962 https://sourceware.org/bugzilla/show_bug.cgi?id=16177 --- bfd/elf32-arm.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) Index: binutils-2.39/bfd/elf32-arm.c =================================================================== --- binutils-2.39.orig/bfd/elf32-arm.c +++ binutils-2.39/bfd/elf32-arm.c @@ -16196,6 +16196,21 @@ elf32_arm_adjust_dynamic_symbol (struct if (bfd_link_pic (info) || globals->root.is_relocatable_executable) return true; + /* If -z nocopyreloc was given, we won't generate them either. */ + if (info->nocopyreloc) + { + h->non_got_ref = 0; + return true; + } + + /* If we don't find any dynamic relocs in read-only sections, then + we'll be keeping the dynamic relocs and avoiding the copy reloc. */ + if (!_bfd_elf_readonly_dynrelocs (h)) + { + h->non_got_ref = 0; + return true; + } + /* We must allocate the symbol in our .dynbss section, which will become part of the .bss section of the executable. There will be an entry for this symbol in the .dynsym section. The dynamic @@ -16205,9 +16220,9 @@ elf32_arm_adjust_dynamic_symbol (struct determine the address it must put in the global offset table, so both the dynamic object and the regular object will refer to the same memory location for the variable. */ - /* If allowed, we must generate a R_ARM_COPY reloc to tell the dynamic - linker to copy the initial value out of the dynamic object and into - the runtime process image. We need to remember the offset into the + /* We must generate a R_ARM_COPY reloc to tell the dynamic linker to + copy the initial value out of the dynamic object and into the + runtime process image. We need to remember the offset into the .rel(a).bss section we are going to use. */ if ((h->root.u.def.section->flags & SEC_READONLY) != 0) { @@ -16219,9 +16234,7 @@ elf32_arm_adjust_dynamic_symbol (struct s = globals->root.sdynbss; srel = globals->root.srelbss; } - if (info->nocopyreloc == 0 - && (h->root.u.def.section->flags & SEC_ALLOC) != 0 - && h->size != 0) + if ((h->root.u.def.section->flags & SEC_ALLOC) != 0 && h->size != 0) { elf32_arm_allocate_dynrelocs (info, srel, 1); h->needs_copy = 1; ++++++ binutils-maxpagesize.diff ++++++ commit a2267dbfc9e1dd955f78561c40f00afa9ddbe619 Author: Michael Matz <m...@suse.de> Date: Thu Oct 20 16:06:57 2022 +0200 x86-64: Use only one default max-page-size On x86-64 the default ELF_MAXPAGESIZE depends on a configure option (--disable-separate-code). Since 9833b775 ("PR28824, relro security issues") we use max-page-size for relro alignment (with a short interval, from 31b4d3a ("PR28824, relro security issues, x86 keep COMMONPAGESIZE relro") to its revert a1faa5ea, where x86-64 only used COMMONPAGESIZE as relro alignment target). But that means that a linker configured with --disable-separate-code behaves different from one configured with --enable-separate-code (the default), _even if using "-z {no,}separate-code" option to use the non-configured behaviour_ . In particular it means that when configuring with --disable-separate-code the linker will produce binaries aligned to 2MB pages on disk, and hence generate 2MB executables for a hello world (and even 6MB when linked with "-z separate-code"). Generally we can't have constants that ultimately land in static variables be depending on configure options if those only influence behaviour that is overridable by command line options. So, do away with that, make the default MAXPAGESIZE be 4k (as is default for most x86-64 configs anyway, as most people won't configure with --disable-separate-code). If people need more they can use the "-z max-page-size" (with would have been required right now for a default configure binutils). bfd/ * elf64-x86-64.c (ELF_MAXPAGESIZE): Don't depend on DEFAULT_LD_Z_SEPARATE_CODE. diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c index f3b54400013..2ae8dffba0f 100644 --- a/bfd/elf64-x86-64.c +++ b/bfd/elf64-x86-64.c @@ -5259,11 +5259,7 @@ elf_x86_64_special_sections[]= #define ELF_ARCH bfd_arch_i386 #define ELF_TARGET_ID X86_64_ELF_DATA #define ELF_MACHINE_CODE EM_X86_64 -#if DEFAULT_LD_Z_SEPARATE_CODE -# define ELF_MAXPAGESIZE 0x1000 -#else -# define ELF_MAXPAGESIZE 0x200000 -#endif +#define ELF_MAXPAGESIZE 0x1000 #define ELF_COMMONPAGESIZE 0x1000 #define elf_backend_can_gc_sections 1 ++++++ binutils-pr29482.diff ++++++ PR29482 aka CVE-2022-38533 >From ef186fe54aa6d281a3ff8a9528417e5cc614c797 Mon Sep 17 00:00:00 2001 From: Alan Modra <amo...@gmail.com> Date: Sat, 13 Aug 2022 15:32:47 +0930 Subject: [PATCH 1/1] PR29482 - strip: heap-buffer-overflow PR 29482 * coffcode.h (coff_set_section_contents): Sanity check _LIB. --- bfd/coffcode.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) Index: binutils-2.39/bfd/coffcode.h =================================================================== --- binutils-2.39.orig/bfd/coffcode.h 2022-07-08 11:46:47.000000000 +0200 +++ binutils-2.39/bfd/coffcode.h 2022-08-26 15:23:58.749610670 +0200 @@ -4284,10 +4284,13 @@ coff_set_section_contents (bfd * abfd, rec = (bfd_byte *) location; recend = rec + count; - while (rec < recend) + while (recend - rec >= 4) { + size_t len = bfd_get_32 (abfd, rec); + if (len == 0 || len > (size_t) (recend - rec) / 4) + break; + rec += len * 4; ++section->lma; - rec += bfd_get_32 (abfd, rec) * 4; } BFD_ASSERT (rec == recend); ++++++ binutils-revert-rela.diff ++++++ This is for bsc#1198422 This essentially reverts commit 17c6c3b99156fe82c1e637e1a5fd9f163ac788c8 to return back to old behaviour regarding RELA relocs: old binutils used the relocated field as additional addend, relying on it being zero for normal RELA behaviour. This isn't correct according to the psABI, but some old tools (e.g. older ICC) emit object files where the in-field "addend" is to be used (and record the zero in the A field of the RELA reloc). This change was included starting with binutils 2.37, but for older codestreams we want to be compatible with the old (buggy) behaviour. We revert the change for all relocs and not just those for which it arguably made some sense or where we had a report about (PLT32). Index: binutils-2.39/bfd/elf64-x86-64.c =================================================================== --- binutils-2.39.orig/bfd/elf64-x86-64.c 2022-10-17 16:20:55.074224642 +0200 +++ binutils-2.39/bfd/elf64-x86-64.c 2022-10-17 16:31:36.128864508 +0200 @@ -47,127 +47,127 @@ static reloc_howto_type x86_64_elf_howto bfd_elf_generic_reloc, "R_X86_64_NONE", false, 0, 0x00000000, false), HOWTO(R_X86_64_64, 0, 8, 64, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_X86_64_64", false, 0, MINUS_ONE, + bfd_elf_generic_reloc, "R_X86_64_64", false, MINUS_ONE, MINUS_ONE, false), HOWTO(R_X86_64_PC32, 0, 4, 32, true, 0, complain_overflow_signed, - bfd_elf_generic_reloc, "R_X86_64_PC32", false, 0, 0xffffffff, + bfd_elf_generic_reloc, "R_X86_64_PC32", false, 0xffffffff, 0xffffffff, true), HOWTO(R_X86_64_GOT32, 0, 4, 32, false, 0, complain_overflow_signed, - bfd_elf_generic_reloc, "R_X86_64_GOT32", false, 0, 0xffffffff, + bfd_elf_generic_reloc, "R_X86_64_GOT32", false, 0xffffffff, 0xffffffff, false), HOWTO(R_X86_64_PLT32, 0, 4, 32, true, 0, complain_overflow_signed, - bfd_elf_generic_reloc, "R_X86_64_PLT32", false, 0, 0xffffffff, + bfd_elf_generic_reloc, "R_X86_64_PLT32", false, 0xffffffff, 0xffffffff, true), HOWTO(R_X86_64_COPY, 0, 4, 32, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_X86_64_COPY", false, 0, 0xffffffff, + bfd_elf_generic_reloc, "R_X86_64_COPY", false, 0xffffffff, 0xffffffff, false), HOWTO(R_X86_64_GLOB_DAT, 0, 8, 64, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_X86_64_GLOB_DAT", false, 0, MINUS_ONE, + bfd_elf_generic_reloc, "R_X86_64_GLOB_DAT", false, MINUS_ONE, MINUS_ONE, false), HOWTO(R_X86_64_JUMP_SLOT, 0, 8, 64, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_X86_64_JUMP_SLOT", false, 0, MINUS_ONE, + bfd_elf_generic_reloc, "R_X86_64_JUMP_SLOT", false, MINUS_ONE, MINUS_ONE, false), HOWTO(R_X86_64_RELATIVE, 0, 8, 64, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_X86_64_RELATIVE", false, 0, MINUS_ONE, + bfd_elf_generic_reloc, "R_X86_64_RELATIVE", false, MINUS_ONE, MINUS_ONE, false), HOWTO(R_X86_64_GOTPCREL, 0, 4, 32, true, 0, complain_overflow_signed, - bfd_elf_generic_reloc, "R_X86_64_GOTPCREL", false, 0, 0xffffffff, + bfd_elf_generic_reloc, "R_X86_64_GOTPCREL", false, 0xffffffff, 0xffffffff, true), HOWTO(R_X86_64_32, 0, 4, 32, false, 0, complain_overflow_unsigned, - bfd_elf_generic_reloc, "R_X86_64_32", false, 0, 0xffffffff, + bfd_elf_generic_reloc, "R_X86_64_32", false, 0xffffffff, 0xffffffff, false), HOWTO(R_X86_64_32S, 0, 4, 32, false, 0, complain_overflow_signed, - bfd_elf_generic_reloc, "R_X86_64_32S", false, 0, 0xffffffff, + bfd_elf_generic_reloc, "R_X86_64_32S", false, 0xffffffff, 0xffffffff, false), HOWTO(R_X86_64_16, 0, 2, 16, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_X86_64_16", false, 0, 0xffff, false), + bfd_elf_generic_reloc, "R_X86_64_16", false, 0xffff, 0xffff, false), HOWTO(R_X86_64_PC16, 0, 2, 16, true, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_X86_64_PC16", false, 0, 0xffff, true), + bfd_elf_generic_reloc, "R_X86_64_PC16", false, 0xffff, 0xffff, true), HOWTO(R_X86_64_8, 0, 1, 8, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_X86_64_8", false, 0, 0xff, false), + bfd_elf_generic_reloc, "R_X86_64_8", false, 0xff, 0xff, false), HOWTO(R_X86_64_PC8, 0, 1, 8, true, 0, complain_overflow_signed, - bfd_elf_generic_reloc, "R_X86_64_PC8", false, 0, 0xff, true), + bfd_elf_generic_reloc, "R_X86_64_PC8", false, 0xff, 0xff, true), HOWTO(R_X86_64_DTPMOD64, 0, 8, 64, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_X86_64_DTPMOD64", false, 0, MINUS_ONE, + bfd_elf_generic_reloc, "R_X86_64_DTPMOD64", false, MINUS_ONE, MINUS_ONE, false), HOWTO(R_X86_64_DTPOFF64, 0, 8, 64, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_X86_64_DTPOFF64", false, 0, MINUS_ONE, + bfd_elf_generic_reloc, "R_X86_64_DTPOFF64", false, MINUS_ONE, MINUS_ONE, false), HOWTO(R_X86_64_TPOFF64, 0, 8, 64, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_X86_64_TPOFF64", false, 0, MINUS_ONE, + bfd_elf_generic_reloc, "R_X86_64_TPOFF64", false, MINUS_ONE, MINUS_ONE, false), HOWTO(R_X86_64_TLSGD, 0, 4, 32, true, 0, complain_overflow_signed, - bfd_elf_generic_reloc, "R_X86_64_TLSGD", false, 0, 0xffffffff, + bfd_elf_generic_reloc, "R_X86_64_TLSGD", false, 0xffffffff, 0xffffffff, true), HOWTO(R_X86_64_TLSLD, 0, 4, 32, true, 0, complain_overflow_signed, - bfd_elf_generic_reloc, "R_X86_64_TLSLD", false, 0, 0xffffffff, + bfd_elf_generic_reloc, "R_X86_64_TLSLD", false, 0xffffffff, 0xffffffff, true), HOWTO(R_X86_64_DTPOFF32, 0, 4, 32, false, 0, complain_overflow_signed, - bfd_elf_generic_reloc, "R_X86_64_DTPOFF32", false, 0, 0xffffffff, + bfd_elf_generic_reloc, "R_X86_64_DTPOFF32", false, 0xffffffff, 0xffffffff, false), HOWTO(R_X86_64_GOTTPOFF, 0, 4, 32, true, 0, complain_overflow_signed, - bfd_elf_generic_reloc, "R_X86_64_GOTTPOFF", false, 0, 0xffffffff, + bfd_elf_generic_reloc, "R_X86_64_GOTTPOFF", false, 0xffffffff, 0xffffffff, true), HOWTO(R_X86_64_TPOFF32, 0, 4, 32, false, 0, complain_overflow_signed, - bfd_elf_generic_reloc, "R_X86_64_TPOFF32", false, 0, 0xffffffff, + bfd_elf_generic_reloc, "R_X86_64_TPOFF32", false, 0xffffffff, 0xffffffff, false), HOWTO(R_X86_64_PC64, 0, 8, 64, true, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_X86_64_PC64", false, 0, MINUS_ONE, + bfd_elf_generic_reloc, "R_X86_64_PC64", false, MINUS_ONE, MINUS_ONE, true), HOWTO(R_X86_64_GOTOFF64, 0, 8, 64, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_X86_64_GOTOFF64", false, 0, MINUS_ONE, + bfd_elf_generic_reloc, "R_X86_64_GOTOFF64", false, MINUS_ONE, MINUS_ONE, false), HOWTO(R_X86_64_GOTPC32, 0, 4, 32, true, 0, complain_overflow_signed, - bfd_elf_generic_reloc, "R_X86_64_GOTPC32", false, 0, 0xffffffff, + bfd_elf_generic_reloc, "R_X86_64_GOTPC32", false, 0xffffffff, 0xffffffff, true), HOWTO(R_X86_64_GOT64, 0, 8, 64, false, 0, complain_overflow_signed, - bfd_elf_generic_reloc, "R_X86_64_GOT64", false, 0, MINUS_ONE, + bfd_elf_generic_reloc, "R_X86_64_GOT64", false, MINUS_ONE, MINUS_ONE, false), HOWTO(R_X86_64_GOTPCREL64, 0, 8, 64, true, 0, complain_overflow_signed, - bfd_elf_generic_reloc, "R_X86_64_GOTPCREL64", false, 0, MINUS_ONE, + bfd_elf_generic_reloc, "R_X86_64_GOTPCREL64", false, MINUS_ONE, MINUS_ONE, true), HOWTO(R_X86_64_GOTPC64, 0, 8, 64, true, 0, complain_overflow_signed, - bfd_elf_generic_reloc, "R_X86_64_GOTPC64", false, 0, MINUS_ONE, + bfd_elf_generic_reloc, "R_X86_64_GOTPC64", false, MINUS_ONE, MINUS_ONE, true), HOWTO(R_X86_64_GOTPLT64, 0, 8, 64, false, 0, complain_overflow_signed, - bfd_elf_generic_reloc, "R_X86_64_GOTPLT64", false, 0, MINUS_ONE, + bfd_elf_generic_reloc, "R_X86_64_GOTPLT64", false, MINUS_ONE, MINUS_ONE, false), HOWTO(R_X86_64_PLTOFF64, 0, 8, 64, false, 0, complain_overflow_signed, - bfd_elf_generic_reloc, "R_X86_64_PLTOFF64", false, 0, MINUS_ONE, + bfd_elf_generic_reloc, "R_X86_64_PLTOFF64", false, MINUS_ONE, MINUS_ONE, false), HOWTO(R_X86_64_SIZE32, 0, 4, 32, false, 0, complain_overflow_unsigned, - bfd_elf_generic_reloc, "R_X86_64_SIZE32", false, 0, 0xffffffff, + bfd_elf_generic_reloc, "R_X86_64_SIZE32", false, 0xffffffff, 0xffffffff, false), HOWTO(R_X86_64_SIZE64, 0, 8, 64, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_X86_64_SIZE64", false, 0, MINUS_ONE, + bfd_elf_generic_reloc, "R_X86_64_SIZE64", false, MINUS_ONE, MINUS_ONE, false), HOWTO(R_X86_64_GOTPC32_TLSDESC, 0, 4, 32, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, - "R_X86_64_GOTPC32_TLSDESC", false, 0, 0xffffffff, true), + "R_X86_64_GOTPC32_TLSDESC", false, 0xffffffff, 0xffffffff, true), HOWTO(R_X86_64_TLSDESC_CALL, 0, 0, 0, false, 0, complain_overflow_dont, bfd_elf_generic_reloc, "R_X86_64_TLSDESC_CALL", false, 0, 0, false), HOWTO(R_X86_64_TLSDESC, 0, 8, 64, false, 0, complain_overflow_dont, bfd_elf_generic_reloc, - "R_X86_64_TLSDESC", false, 0, MINUS_ONE, false), + "R_X86_64_TLSDESC", false, MINUS_ONE, MINUS_ONE, false), HOWTO(R_X86_64_IRELATIVE, 0, 8, 64, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_X86_64_IRELATIVE", false, 0, MINUS_ONE, + bfd_elf_generic_reloc, "R_X86_64_IRELATIVE", false, MINUS_ONE, MINUS_ONE, false), HOWTO(R_X86_64_RELATIVE64, 0, 8, 64, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_X86_64_RELATIVE64", false, 0, MINUS_ONE, + bfd_elf_generic_reloc, "R_X86_64_RELATIVE64", false, MINUS_ONE, MINUS_ONE, false), HOWTO(R_X86_64_PC32_BND, 0, 4, 32, true, 0, complain_overflow_signed, - bfd_elf_generic_reloc, "R_X86_64_PC32_BND", false, 0, 0xffffffff, + bfd_elf_generic_reloc, "R_X86_64_PC32_BND", false, 0xffffffff, 0xffffffff, true), HOWTO(R_X86_64_PLT32_BND, 0, 4, 32, true, 0, complain_overflow_signed, - bfd_elf_generic_reloc, "R_X86_64_PLT32_BND", false, 0, 0xffffffff, + bfd_elf_generic_reloc, "R_X86_64_PLT32_BND", false, 0xffffffff, 0xffffffff, true), HOWTO(R_X86_64_GOTPCRELX, 0, 4, 32, true, 0, complain_overflow_signed, - bfd_elf_generic_reloc, "R_X86_64_GOTPCRELX", false, 0, 0xffffffff, + bfd_elf_generic_reloc, "R_X86_64_GOTPCRELX", false, 0xffffffff, 0xffffffff, true), HOWTO(R_X86_64_REX_GOTPCRELX, 0, 4, 32, true, 0, complain_overflow_signed, - bfd_elf_generic_reloc, "R_X86_64_REX_GOTPCRELX", false, 0, 0xffffffff, + bfd_elf_generic_reloc, "R_X86_64_REX_GOTPCRELX", false, 0xffffffff, 0xffffffff, true), /* We have a gap in the reloc numbers here. @@ -188,7 +188,7 @@ static reloc_howto_type x86_64_elf_howto /* Use complain_overflow_bitfield on R_X86_64_32 for x32. */ HOWTO(R_X86_64_32, 0, 4, 32, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_X86_64_32", false, 0, 0xffffffff, + bfd_elf_generic_reloc, "R_X86_64_32", false, 0xffffffff, 0xffffffff, false) }; Index: binutils-2.39/gas/testsuite/gas/i386/i386.exp =================================================================== --- binutils-2.39.orig/gas/testsuite/gas/i386/i386.exp 2022-07-08 11:46:47.000000000 +0200 +++ binutils-2.39/gas/testsuite/gas/i386/i386.exp 2022-10-17 16:27:41.276966573 +0200 @@ -1287,7 +1287,6 @@ if [gas_64_check] then { run_list_test "reloc64" "--defsym _bad_=1" run_list_test "x86-64-inval-tls" run_dump_test "mixed-mode-reloc64" - run_dump_test "rela" run_dump_test "x86-64-ifunc" run_dump_test "x86-64-opcode-inval" run_dump_test "x86-64-opcode-inval-intel" Index: binutils-2.39/gas/testsuite/gas/i386/rela.d =================================================================== --- binutils-2.39.orig/gas/testsuite/gas/i386/rela.d 2022-07-08 11:46:47.000000000 +0200 +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 @@ -1,13 +0,0 @@ -#name: x86-64 rela relocs w/ non-zero relocated fields -#objdump: -rsj .data - -.*: +file format .* - -RELOCATION RECORDS FOR \[\.data\]: - -OFFSET +TYPE +VALUE -0*0 R_X86_64_64 *q -0*8 R_X86_64_32 *l - -Contents of section .data: - 0+0 11 ?11 ?11 ?11 22 ?22 ?22 ?22 33 ?33 ?33 ?33 44 ?44 ?44 ?44 .* Index: binutils-2.39/gas/testsuite/gas/i386/rela.s =================================================================== --- binutils-2.39.orig/gas/testsuite/gas/i386/rela.s 2022-07-08 11:46:47.000000000 +0200 +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 @@ -1,14 +0,0 @@ -# Note: This file is also used by an ld test case. - - .text - .global _start -_start: - ret - - .data - .p2align 4 -l: .long 0x11111111, 0x22222222 -q: .quad 0x4444444433333333 - - .reloc l, BFD_RELOC_64, q - .reloc q, BFD_RELOC_32, l Index: binutils-2.39/ld/testsuite/ld-x86-64/rela.d =================================================================== --- binutils-2.39.orig/ld/testsuite/ld-x86-64/rela.d 2022-07-08 11:46:48.000000000 +0200 +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ -#name: x86-64 rela relocs w/ non-zero relocated fields -#as: --64 -#source: ${srcdir}/../../../gas/testsuite/gas/i386/rela.s -#ld: -melf_x86_64 -#objdump: -sj .data - -.*: +file format .* - -Contents of section .data: - *[0-9a-f]*0 .8 ?.. ?.. ?.. 00 ?00 ?00 ?00 .0 ?.. ?.. ?.. 44 ?44 ?44 ?44 .* Index: binutils-2.39/ld/testsuite/ld-x86-64/x86-64.exp =================================================================== --- binutils-2.39.orig/ld/testsuite/ld-x86-64/x86-64.exp 2022-07-26 09:13:10.000000000 +0200 +++ binutils-2.39/ld/testsuite/ld-x86-64/x86-64.exp 2022-10-17 16:27:41.276966573 +0200 @@ -286,7 +286,6 @@ run_dump_test "apic" run_dump_test "pcrel8" run_dump_test "pcrel16" run_dump_test "pcrel16-2" -run_dump_test "rela" run_dump_test "tlsgd2" run_dump_test "tlsgd3" run_dump_test "tlsgd12" ++++++ s390-pic-dso.diff ++++++ --- /var/tmp/diff_new_pack.5LcVqY/_old 2023-01-23 18:30:23.959482738 +0100 +++ /var/tmp/diff_new_pack.5LcVqY/_new 2023-01-23 18:30:23.963482762 +0100 @@ -19,7 +19,7 @@ + || ELF_ST_VISIBILITY (h->other) != STV_PROTECTED)) + { + (*_bfd_error_handler) -+ (_("%B: relocation %s against `%s' can not be used when " ++ (_("%pB: relocation %s against `%s' can not be used when " + "making a shared object; recompile with -fPIC"), + input_bfd, elf_howto_table[r_type].name, + h->root.root.string);