bug-binutils
[Top][All Lists]
Advanced

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

[Bug ld/27905] qemu: ./src/hw/megasas.c:168:(.text.megasas_process_op+0x


From: cvs-commit at gcc dot gnu.org
Subject: [Bug ld/27905] qemu: ./src/hw/megasas.c:168:(.text.megasas_process_op+0x3d): relocation
Date: Wed, 26 May 2021 19:22:34 +0000

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

--- Comment #6 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot 
gnu.org> ---
The master branch has been updated by H.J. Lu <hjl@sourceware.org>:

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

commit 50c95a739c91ae70cf8481936611aa1f5397a384
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 26 12:13:13 2021 -0700

    x86: Propery check PC16 reloc overflow in 16-bit mode instructions

    commit a7664973b24a242cd9ea17deb5eaf503065fc0bd
    Author: Jan Beulich <jbeulich@suse.com>
    Date:   Mon Apr 26 10:41:35 2021 +0200

        x86: correct overflow checking for 16-bit PC-relative relocs

    caused linker failure when building 16-bit program in a 32-bit ELF
    container.  Update GNU_PROPERTY_X86_FEATURE_2_USED with

     #define GNU_PROPERTY_X86_FEATURE_2_CODE16 (1U << 12)

    to indicate that 16-bit mode instructions are used in the input object:

    https://groups.google.com/g/x86-64-abi/c/UvvXWeHIGMA

    to indicate that 16-bit mode instructions are used in the object to
    allow linker to properly perform relocation overflow check for 16-bit
    PC-relative relocations in 16-bit mode instructions.

    1. Update x86 assembler to always generate the GNU property note with
    GNU_PROPERTY_X86_FEATURE_2_CODE16 for .code16 in ELF object.
    2. Update i386 and x86-64 linkers to use 16-bit PC16 relocations if
    input object is marked with GNU_PROPERTY_X86_FEATURE_2_CODE16.

    bfd/

            PR ld/27905
            * elf32-i386.c: Include "libiberty.h".
            (elf_howto_table): Add 16-bit R_386_PC16 entry.
            (elf_i386_rtype_to_howto): Add a BFD argument.  Use 16-bit
            R_386_PC16 if input has 16-bit mode instructions.
            (elf_i386_info_to_howto_rel): Update elf_i386_rtype_to_howto
            call.
            (elf_i386_tls_transition): Likewise.
            (elf_i386_relocate_section): Likewise.
            * elf64-x86-64.c (x86_64_elf_howto_table): Add 16-bit
            R_X86_64_PC16 entry.
            (elf_x86_64_rtype_to_howto): Use 16-bit R_X86_64_PC16 if input
            has 16-bit mode instructions.
            * elfxx-x86.c (_bfd_x86_elf_parse_gnu_properties): Set
            elf_x86_has_code16 if relocatable input is marked with
            GNU_PROPERTY_X86_FEATURE_2_CODE16.
            * elfxx-x86.h (elf_x86_obj_tdata): Add has_code16.
            (elf_x86_has_code16): New.

    binutils/

            PR ld/27905
            * readelf.c (decode_x86_feature_2): Support
            GNU_PROPERTY_X86_FEATURE_2_CODE16.

    gas/

            PR ld/27905
            * config/tc-i386.c (set_code_flag): Update x86_feature_2_used
            with GNU_PROPERTY_X86_FEATURE_2_CODE16 for .code16 in ELF
            object.
            (set_16bit_gcc_code_flag): Likewise.
            (x86_cleanup): Always generate the GNU property note if
            x86_feature_2_used isn't 0.
            * testsuite/gas/i386/code16-2.d: New file.
            * testsuite/gas/i386/code16-2.s: Likewise.
            * testsuite/gas/i386/x86-64-code16-2.d: Likewise.
            * testsuite/gas/i386/i386.exp: Run code16-2 and x86-64-code16-2.

    include/

            PR ld/27905
            * elf/common.h (GNU_PROPERTY_X86_FEATURE_2_CODE16): New.

    ld/

            PR ld/27905
            * testsuite/ld-i386/code16.d: New file.
            * testsuite/ld-i386/code16.t: Likewise.
            * testsuite/ld-x86-64/code16.d: Likewise.
            * testsuite/ld-x86-64/code16.t: Likewise.
            * testsuite/ld-i386/i386.exp: Run code16.
            * testsuite/ld-x86-64/x86-64.exp: Likewise.

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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]