[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: planning to upload binutils 2.35.2



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 <nickc@redhat.com>
Date:   Sat Jan 30 12:35:52 2021 +0000

    GNU Binutils 2.35.2 Release

commit 7ed5ed075b9a166f74cf13be216b3e5cf04cd622
Author: Alan Modra <amodra@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 <amodra@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.tools@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 <bergner@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 <amodra@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 <amodra@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 <amodra@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 <amodra@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 <amodra@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 <amodra@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 <fred@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 <amodra@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.tools@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.tools@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.tools@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 <mark@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 <gdbadmin@sourceware.org>
Date:   Sun Jan 10 00:00:33 2021 +0000

    Automatic date update in version.in

commit 395053b92f193c512067f5a5124ceffc23d2a5a1
Author: GDB Administrator <gdbadmin@sourceware.org>
Date:   Sat Jan 9 00:00:31 2021 +0000

    Automatic date update in version.in

commit e9b6933e073f62b999326b22e8694ec3788033df
Author: GDB Administrator <gdbadmin@sourceware.org>
Date:   Fri Jan 8 00:00:40 2021 +0000

    Automatic date update in version.in

commit 830d57df461b5aa9239e6f15da3c1a271a90396c
Author: GDB Administrator <gdbadmin@sourceware.org>
Date:   Thu Jan 7 00:00:56 2021 +0000

    Automatic date update in version.in

commit f0b8ea109fbcd6ae6d226234428061f88ebfd3cc
Author: GDB Administrator <gdbadmin@sourceware.org>
Date:   Wed Jan 6 00:00:53 2021 +0000

    Automatic date update in version.in


Reply to: