On 2/1/21 7:57 PM, Paul Gevers wrote: > Hi > > On 29-01-2021 12:13, Matthias Klose wrote: >>> We would be happy with either of the following: >>> 1) upload to unstable with PR27218 only >>> 2) upload to experimental first (with a 2.36+really2.35.2 version) to >>> check all is fine. >> >> so I don't see what an upload for 2) would provide you with more information. > > It would give us a PASS or a FAIL. Where a PASS would tell us that > apparently it's not the DWARF5 changes that made the glibc autopkgtest > FAIL. A FAIL would tell us to be very suspicious about the change.
I think your analysis is flawed. There's nothing producing DWARF5 debug information, so even a test rebuild of glibc doesn't tell you anything about the status of DWARF5. Also requesting a test rebuild of glibc not having information about concrete failures is not the most friendly way towards developers, and not the best use of volunteers time, as you mentioned elsewhere. I filed #982598 to address this, and from my perspective the severity of this issue should be raised if you plan to make the outcome of these tests a criteria for release decisions. https://release.debian.org/britney/pseudo-excuses-experimental.html#binutils shows no regressions except for cross-toolchain-base, caused by the version scheme proposed by yourself. As the build in experimental shows, the package builds and the regression will go away with a proper version number. The final 2.35.2 release also includes a fix for PR27259, and also some addition to recognize new POWER10 instructions (again, nothing produces these by default). Summarizing the changes compared to 2.35.1-7: * binutils 2.35.2 release. - PR gas/27218, memory access violation in dwarf2dbg.c - PR gas/27195, enable DWARF5 support when required - PR binutils/27231: Fix parsing DWARF-5 line number tables, DWARF-5: Ignore empty range in DWARF-5 line number tables - Fix thinko in objcopy's memory freeing code (double free). - Fix Segmentation fault i386-gen. - PR binutils/26483, ASAN: ppc_elf_link_params elf32-ppc.c. - PR binutils/26492, ASAN: ppc64_elf_before_check_relocs elf64-ppc.c. - PR binutils/26489, ASAN: ppc64_elf_size_stubs elf64-ppc.c. - power10 on ppc32 fix: We don't support power10 on ppc32, mainly because some instructions have 34-bit fields for which we don't have relocations on ppc32. If you try to assemble typical code, you'll see errors saying "reloc ... not supported by object file format". Also, on 32-bit hosts with binutils configured without a 64-bit bfd, you'll see errors saying "bignum invalid" when using large offsets. But let's not kill output of prefix insns entirely on 32-bit hosts. - R_PPC64_GOT_LO_DS and R_PPC64_GOT_HA sanity check. - POWER10: Add Return-Oriented Programming instructions. - PR gold/27246, skip address size and segment selector for DWARF5. - Fix PR ld/27259, stop ld from endless looping on SHF_LINK_ORDER sh_link loops. Also attaching the upstream git log for these changes. As you might guess, this review process didn't make much sense to me. Also seeing another linux upload flying by again without getting any ack or review seems to be odd. No, I didn't look for other frozen packages uploaded without ack or review. Matthias
commit 3bcf28ab4a7205c606e6dfde4f55548f188ad7eb Author: Nick Clifton <ni...@redhat.com> Date: Sat Jan 30 12:35:52 2021 +0000 GNU Binutils 2.35.2 Release commit 7ed5ed075b9a166f74cf13be216b3e5cf04cd622 Author: Alan Modra <amo...@gmail.com> Date: Thu Jan 28 10:30:36 2021 +1030 PR27259, SHF_LINK_ORDER self-link This stops ld from endless looping on SHF_LINK_ORDER sh_link loops. bfd/ PR 27259 * elflink.c (_bfd_elf_gc_mark_extra_sections): Use linker_mark to prevent endless looping of linked-to sections. ld/ PR 27259 * ldelf.c (ldelf_before_place_orphans): Use linker_mark to prevent endless looping of linked-to sections. (cherry picked from commit def97fb945a98544938087eff3111e16ce58da6d) commit 9107f37953b565a7604a4d89b8f2bf5b07a0279b Author: Alan Modra <amo...@gmail.com> Date: Wed Jul 29 17:30:15 2020 +0930 Don't assert at ldwrite.c:212 When excluding SHF_LINK_ORDER sections that happen to have SEC_KEEP set, we need to set SEC_EXCLUDE here to avoid a problem later. * ldelf.c (ldelf_before_place_orphans): Set SEC_EXCLUDE for discarded sections. (cherry picked from commit 5987401fcbc9933808fa0d84d1b01c93356c39a1) commit 756beae66817dcf3794028cb49c8371f4ba54bfa Author: H.J. Lu <hjl.to...@gmail.com> Date: Thu Jan 28 04:21:15 2021 -0800 gold: Skip address size and segment selector for DWARF5 The .debug_line secton in DWARF5 has a byte for address size and a byte for segment selector after DWARF version. Skip them for DWARF5. PR gold/27246 * dwarf_reader.cc (Sized_dwarf_line_info::read_header_prolog): Skip address size and segment selector for DWARF5. (cherry picked from commit 0318cca4934fc5d85e83351842985ad2a3475146) commit 02f225e4de9532f5e4435ff718f87e487bb74035 Author: Peter Bergner <berg...@linux.ibm.com> Date: Fri Jan 8 16:07:12 2021 -0600 POWER10: Add Return-Oriented Programming instructions POWER10 adds some return-oriented programming (ROP) instructions and this patch adds support for them. You will notice that they are enabled for POWER8 and later, not just POWER10 and later. This is on purpose. This allows the instructions to be added to POWER8 binaries that can be run on POWER8, POWER9 and POWER10 cpus. On POWER8 and POWER9, these instructions just act as nop's. opcodes/ * ppc-opc.c (insert_dw, (extract_dw): New functions. (DW, (XRC_MASK): Define. (powerpc_opcodes) <hashchk, hashchkp, hashst, haststp>: New mnemonics. gas/ * testsuite/gas/ppc/rop-checks.d, * testsuite/gas/ppc/rop-checks.l, * testsuite/gas/ppc/rop-checks.s, * testsuite/gas/ppc/rop.d, * testsuite/gas/ppc/rop.s: New tests. * testsuite/gas/ppc/ppc.exp: Run them. (cherry picked from commit aae7fcb8d755a2eb3f32a3f945a4e8f30cf5c5e2) commit 662f9a91098d29a36a371aa12ab79ec3b58d0748 Author: Alan Modra <amo...@gmail.com> Date: Fri Oct 16 09:26:32 2020 +1030 R_PPC64_GOT_LO_DS and R_PPC64_GOT_HA sanity check The previous sanity check allowed a ld on the HA reloc and addis on the LO_DS. * elf64-ppc.c (ppc64_elf_relocate_section): Tighten sanity check on R_PPC64_GOT_LO_DS and R_PPC64_GOT_HA instructions. (cherry picked from commit fba8689ad3b72a3e895ebd41485d747dba5da811) commit 7601b250d53db736850eb7f7cc033a10dda2a23b Author: Alan Modra <amo...@gmail.com> Date: Wed Sep 9 22:10:47 2020 +0930 power10 on ppc32 We don't support power10 on ppc32, mainly because some instructions have 34-bit fields for which we don't have relocations on ppc32. If you try to assemble typical code, you'll see errors saying "reloc ... not supported by object file format". Also, on 32-bit hosts with binutils configured without a 64-bit bfd, you'll see errors saying "bignum invalid" when using large offsets. But let's not kill output of prefix insns entirely on 32-bit hosts. * config/tc-ppc.c (md_assemble): Emit prefix insn by parts when valueT is smaller than 64 bits. (cherry picked from commit 15a32af52fdc010801396cbcf62f33d88435ac1a) commit e658f42c0fe7e84a0e1eedaea4b29a4e3a23840c Author: Alan Modra <amo...@gmail.com> Date: Tue Aug 25 01:55:38 2020 +0930 PR26489, ASAN: ppc64_elf_size_stubs elf64-ppc.c:13389 Stub sections are inserted after sec_info is sized, so have higher ids. Test flags that will exclude stub sections before looking at the sec_info array. PR 26489 * elf64-ppc.c (ppc64_elf_size_stubs): Test code_sec->has_toc_reloc and code_sec->makes_toc_func_call before sec_info[code_sec->id]. (cherry picked from commit 918dc783deadc206691dcc20bf8aa6c807c10244) commit 0004f3b30c717314abfb741758eb383ac43730ed Author: Alan Modra <amo...@gmail.com> Date: Tue Aug 25 01:51:39 2020 +0930 PR26492, ASAN: ppc64_elf_before_check_relocs elf64-ppc.c:4337 PR 26492 * elf64-ppc.c (ppc_hash_table): Test is_elf_hash_table before accessing elf_hash_table_id. (cherry picked from commit 573eb292ee79dc78207cedadaa8acbb1922ab699) commit 9010a66f2dd947815fa1b8ff10054e07ac76cc58 Author: Alan Modra <amo...@gmail.com> Date: Tue Aug 25 01:48:08 2020 +0930 PR26483, ASAN: ppc_elf_link_params elf32-ppc.c:2314 PR 26483 * elf32-ppc.c (ppc_elf_hash_table): Test is_elf_hash_table before accessing elf_hash_table_id. (cherry picked from commit a8d549c006a2135b86186d14ab5d0d5fdb702b2f) commit 6dcfc42f6893f4e49cb8d8e9fe1bfedcb783bb20 Author: Alan Modra <amo...@gmail.com> Date: Tue Jan 26 12:20:23 2021 +1030 Segmentation fault i386-gen A case of inst->next being uninitialised. * i386-gen.c (parse_template): Ensure entire template_instance is initialised. (cherry picked from commit c3ffb8f340f567949f24c3bab62259f0e593637f) commit b1e65c1026ab07203367a099b2d3b29efb3e0ba1 Author: Frederic Cambus <f...@statdns.com> Date: Tue Jan 26 09:55:34 2021 +0000 Fix thinko in objcopy's memory freeing code. * objcopy.c (copy_main): Fix a double free happening when both --localize-symbols and --globalize-symbols options are invoked together. (cherry picked from commit e37709f0901fe6f2410094151002bab3d123df85) commit a2aa107b13785088fe417163b4f21e481e9f8130 Author: Alan Modra <amo...@gmail.com> Date: Thu Jan 21 16:46:20 2021 +1030 PR27218, memory access violation in dwarf2dbg.c PR 27218 * dwarf2dbg.c (dwarf2_gen_line_info): Correct setting of dwarf_level. (dwarf2_directive_filename, dwarf2_directive_loc): Likewise, and error for negative file numbers. (cherry picked from commit 498ff0328fed7689f7a675d8c9f0f04bed1f1522) commit 74c2eff55954b850b8bc9804cbf4e599919a811a Author: H.J. Lu <hjl.to...@gmail.com> Date: Mon Jan 18 06:25:05 2021 -0800 as: Automatically enable DWARF5 support Currently $ as -o x.o x.s fails when x.s contains DWARF5 ".file 0" or ".loc 0" directives. Update assembler to automatically enable DWARF5 support so that $ gcc -S -g -c x.c $ gcc -c x.s works. PR gas/27195 * dwarf2dbg.c (dwarf2_gen_line_info): Set dwarf_level to 5 if needed. (dwarf2_directive_filename): Likewise. (dwarf2_directive_loc): Likewise. * testsuite/gas/elf/dwarf-5-file0.d: Pass --gdwarf-3. * testsuite/gas/lns/lns-diag-1.l: Remove the "Error: file number less than one" errors. (cherry picked from commit 705989f19adf20dd70c50237ec61cd708f2b0939) commit 1ae65e19b214068e0fd3389f755d5a4ffffaca83 Author: H.J. Lu <hjl.to...@gmail.com> Date: Sun Jan 24 07:00:34 2021 -0800 DWARF-5: Ignore empty range in DWARF-5 line number tables The DWARF5 spec does indeed explicitly say: "A bounded range entry whose beginning and ending address offsets are equal (including zero) indicates an empty range and may be ignored." Since arange_add already ignores empty ranges, remove the whole check which is equivalent to the check plus explicit continue. PR binutils/27231 * dwarf2.c (read_rnglists): Ignore empty range when parsing line number tables. (cherry picked from commit 940d0202fd472b09d370fb483bf5a8ae99c9c830) commit 0da7136ac1a83080996247551286019066fbd0e3 Author: H.J. Lu <hjl.to...@gmail.com> Date: Sat Jan 23 18:17:37 2021 -0800 DWARF-5: Fix parsing DWARF-5 line number tables Advance rngs_ptr when parsing DW_RLE_offset_pair, which was missing in commit c3757b583d2448a5996e83e374fb96ac7938da35 Author: Mark Wielaard <m...@klomp.org> Date: Tue Aug 25 15:33:00 2020 +0100 Fix the linker's handling of DWARF-5 line number tables. PR binutils/27231 * dwarf2.c (read_rnglists): Advance rngs_ptr after _bfd_safe_read_leb128 when parsing DW_RLE_offset_pair. (cherry picked from commit 18454c151f5824564130ba626bd90e9de30444ef) commit 4100e6999664833defb8ee038f75812d9b85f9c7 Author: GDB Administrator <gdbad...@sourceware.org> Date: Sun Jan 10 00:00:33 2021 +0000 Automatic date update in version.in commit 395053b92f193c512067f5a5124ceffc23d2a5a1 Author: GDB Administrator <gdbad...@sourceware.org> Date: Sat Jan 9 00:00:31 2021 +0000 Automatic date update in version.in commit e9b6933e073f62b999326b22e8694ec3788033df Author: GDB Administrator <gdbad...@sourceware.org> Date: Fri Jan 8 00:00:40 2021 +0000 Automatic date update in version.in commit 830d57df461b5aa9239e6f15da3c1a271a90396c Author: GDB Administrator <gdbad...@sourceware.org> Date: Thu Jan 7 00:00:56 2021 +0000 Automatic date update in version.in commit f0b8ea109fbcd6ae6d226234428061f88ebfd3cc Author: GDB Administrator <gdbad...@sourceware.org> Date: Wed Jan 6 00:00:53 2021 +0000 Automatic date update in version.in