https://sourceware.org/bugzilla/show_bug.cgi?id=33810

--- Comment #14 from Sourceware Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jens Remus <[email protected]>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=9f3749fff938e51ed1a1d92b308a363b2f8197ce

commit 9f3749fff938e51ed1a1d92b308a363b2f8197ce
Author: Jens Remus <[email protected]>
Date:   Tue Jan 20 10:22:52 2026 +0100

    libsframe: use proper FRE type when flipping SFrame V3 FREs

    flip_sframe_fdes_with_fres_v3 was erroneously using a fixed FRE type
    of 0 (= SFRAME_FRE_TYPE_ADDR1) when endianness byte-flipping the FREs,
    regardless of the actual FRE type (i.e. ADDR1, ADDR2, or ADDR4).  This
    only affected cross builds, where the .sframe section data may needed
    to be endianness byte-flipped (e.g. binutils cross-built for s390
    64-bit (s390x) on x86-64).

    As a consequence objdump/readelf with option --sframe could fail to dump
    e.g. s390 64-bit (s390x) .sframe section data on x86-64 with the
    following error message:

      Error: SFrame decode failure: Buffer does not contain SFrame data.

    The linker ld-sframe test "PR ld/33401 (Step 1: Create relocatable
    object and check R_*_NONE)" cross-build for s390 64-bit (s390x) on
    x86-64 could fail with ld error message:

      error in tmpdir/StatePlaying.o(.sframe); no .sframe will be created

    The linker ld-sframe test "PR ld/33401 (Step 1: Create relocatable
    object and check R_*_NONE)" cros-build for s390 64-bit (s390x) on
    x86-64 could fail with BDF assertion:

      BFD (GNU Binutils) ... assertion fail .../bfd/elf-sframe.c:153

    Add a common cfi-sframe assembler test, that forces a FDE type of
    SFRAME_FRE_TYPE_ADDR2.  When the test is run cross-build it may
    exercise the SFrame FDE and FDE endianness byte flipping.

    libsframe/
            PR ld/33810
            * sframe.c (sframe_decode_fde_attr_v3): Decode and return FRE
            type from FDE attributes.
            (flip_sframe_fdes_with_fres_v3): Use proper FRE type from
            FDE attributes when flipping FREs.

    gas/testsuite/
            PR ld/33810
            * gas/cfi-sframe/cfi-sframe.exp (cfi-sframe-common-pr33810): Run
            new test.
            * gas/cfi-sframe/cfi-sframe-common-pr33810.d: New test.
            * gas/cfi-sframe/cfi-sframe-common-pr33810.s: Likewise.

    Bug: https://sourceware.org/pr33810
    Fixes: 8ab6e4c72ab6 ("[SFrame-V3] include: gas: libsframe: split FDE into
idx and attr")
    Reported-by: Alan Modra <[email protected]>
    Signed-off-by: Jens Remus <[email protected]>

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Reply via email to