bug-binutils
[Top][All Lists]
Advanced

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

[Bug binutils/26206] Add pei-aarch64 support for native EFI support


From: cvs-commit at gcc dot gnu.org
Subject: [Bug binutils/26206] Add pei-aarch64 support for native EFI support
Date: Tue, 23 Nov 2021 09:53:21 +0000

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

--- Comment #26 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot 
gnu.org> ---
The master branch has been updated by Tamar Christina
<tnfchris@sourceware.org>:

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

commit b69c9d41e89498442cb5af5287f378b3583dd445
Author: Tamar Christina <tamar.christina@arm.com>
Date:   Tue Nov 23 09:36:39 2021 +0000

    AArch64: Add support for AArch64 EFI (efi-*-aarch64).

    This adds support for efi-*-aarch64 by virtue of adding a new PEI target
    pei-aarch64-little.  This is not a full target and only exists to support
EFI
    at this time.

    This means that this target does not support relocation processing and is
mostly
    a container format.  This format has been added to elf based aarch64
targets
    such that efi images can be made natively on Linux.

    However this target is not valid for use with gas but only with objcopy.

    With these changes the resulting file is recognized as an efi image by
    third party tools:

    >  pecli info hello.efi

    Metadata
   
================================================================================
    MD5:            598c32a778b0f0deebe977fef8578c4e
    SHA1:           4580121edd5cb4dc40f51b28f171fd15250df84c
    SHA256:        
3154bd7cf42433d1c957f6bf55a17ad8c57ed41b29df2d485703349fd6ff1d5c
    Imphash:
    Size:           47561 bytes
    Type:           PE32+ executable (EFI application) (stripped to external
PDB), for MS Windows
    Compile Time:   1970-01-01 00:00:00 (UTC - 0x0       )
    Entry point:    0x2000 (section .text)

    Sections
   
================================================================================
    Name      RWX  VirtSize   VirtAddr   RawAddr   RawSize   Entropy  md5
    .text     R-X  0x5bb0     0x2000     0x400     0x5c00      6.39
551fbc264256a3f387de8a891500ae0d
    .reloc    R--  0xc        0x8000     0x6000    0x200       0.02
0c45f6d812d079821c1d54c09ab89e1d
    .data     RW-  0x1d88     0x9000     0x6200    0x1e00      4.18
5d1137c09f01289dc62bf754f7290db3
    .dynamic  RW-  0xf0       0xb000     0x8000    0x200       0.34
5c94ed3206f05a277e6f04fbf131f131
    .rela     R--  0xe58      0xc000     0x8200    0x1000      1.87
8b5c6bc30f3acb7ca7bf2e6789d68519
    .dynsym   R--  0x138      0xd000     0x9200    0x200       0.96
bdcf5101da51aadc663ca8859f88138c

    Imports
   
================================================================================

    Any magic number is based on the Microsoft PE specification [1].

    [1] https://docs.microsoft.com/en-us/windows/win32/debug/pe-format

    bfd/ChangeLog:

    2021-10-21  Tamar Christina  <tamar.christina@arm.com>

            PR binutils/26206
            * .gitignore (pe-aarch64igen.c): New.
            * Makefile.am (pei-aarch64.lo, pe-aarch64igen.lo, pei-aarch64.c,
            pe-aarch64igen.c): Add support.
            * Makefile.in: Likewise.
            * bfd.c (bfd_get_sign_extend_vma): Add pei-aarch64-little.
            * coff-aarch64.c: New file.
            * coffcode.h (coff_set_arch_mach_hook, coff_set_flags,
            coff_write_object_contents) Add aarch64 (aarch64_pei_vec) support.
            * config.bfd: Likewise.
            * configure: Likewise.
            * configure.ac: Likewise.
            * libpei.h (GET_OPTHDR_IMAGE_BASE, PUT_OPTHDR_IMAGE_BASE,
            GET_OPTHDR_SIZE_OF_STACK_RESERVE, PUT_OPTHDR_SIZE_OF_STACK_RESERVE,
            GET_OPTHDR_SIZE_OF_STACK_COMMIT, PUT_OPTHDR_SIZE_OF_STACK_COMMIT,
            GET_OPTHDR_SIZE_OF_HEAP_RESERVE, PUT_OPTHDR_SIZE_OF_HEAP_RESERVE,
            GET_OPTHDR_SIZE_OF_HEAP_COMMIT, PUT_OPTHDR_SIZE_OF_HEAP_COMMIT,
            GET_PDATA_ENTRY, _bfd_peAArch64_bfd_copy_private_bfd_data_common,
            _bfd_peAArch64_bfd_copy_private_section_data,
            _bfd_peAArch64_get_symbol_info,
_bfd_peAArch64_only_swap_filehdr_out,
            _bfd_peAArch64_print_private_bfd_data_common,
            _bfd_peAArch64i_final_link_postscript,
            _bfd_peAArch64i_only_swap_filehdr_out,
_bfd_peAArch64i_swap_aouthdr_in,
            _bfd_peAArch64i_swap_aouthdr_out, _bfd_peAArch64i_swap_aux_in,
            _bfd_peAArch64i_swap_aux_out, _bfd_peAArch64i_swap_lineno_in,
            _bfd_peAArch64i_swap_lineno_out, _bfd_peAArch64i_swap_scnhdr_out,
            _bfd_peAArch64i_swap_sym_in, _bfd_peAArch64i_swap_sym_out,
            _bfd_peAArch64i_swap_debugdir_in,
_bfd_peAArch64i_swap_debugdir_out,
            _bfd_peAArch64i_write_codeview_record,
            _bfd_peAArch64i_slurp_codeview_record,
            _bfd_peAArch64_print_ce_compressed_pdata): New.
            * peXXigen.c (_bfd_XXi_swap_aouthdr_in, _bfd_XXi_swap_aouthdr_out,
            pe_print_pdata, _bfd_XX_print_private_bfd_data_common,
            _bfd_XX_bfd_copy_private_section_data,
_bfd_XXi_final_link_postscript):
            Support COFF_WITH_peAArch64,
            * pei-aarch64.c: New file.
            * peicode.h (coff_swap_scnhdr_in, pe_ILF_build_a_bfd,
pe_ILF_object_p):
            Support COFF_WITH_peAArch64.
            (jtab): Add dummy entry that traps.
            * targets.c (aarch64_pei_vec): New.

    binutils/ChangeLog:

    2021-10-21  Tamar Christina  <tamar.christina@arm.com>

            PR binutils/26206
            * NEWS: Add new support.
            * objcopy.c (convert_efi_target): Add efi-*-aarch64 support.
            * testsuite/binutils-all/aarch64/pei-aarch64-little.d: New test.
            * testsuite/binutils-all/aarch64/pei-aarch64-little.s: New test.

    include/ChangeLog:

    2021-10-21  Tamar Christina  <tamar.christina@arm.com>

            PR binutils/26206
            * coff/aarch64.h: New file.
            * coff/pe.h (IMAGE_FILE_MACHINE_ARM64): New.

-- 
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]