[PATCH] PR 28447: implement multiple parameters for .file on XCOFF

CHIGOT, CLEMENT clement.chigot@atos.net
Mon Oct 18 11:37:25 GMT 2021


On XCOFF, ".file" pseudo-op allows 3 extras parameters to provide
additional information to AIX linker, or its debugger. These are
stored in auxiliary entries of the C_FILE symbol.

PR 28447
bfd/Changelog

        * coffcode.h (combined_entry_type): Add extrap field.
        (coff_bigobj_swap_aux_in): Adjust names of x_file fields.
        (coff_bigobj_swap_aux_out): Likewise.
        * coffgen.c (coff_write_auxent_fname): New function.
        (coff_fix_symbol_name): Write x_file using
         coff_write_auxent_fname.
        (coff_write_symbol): Likewise.
        (coff_write_symbols): Add C_FILE auxiliary entries to
        string table if needed.
        (coff_get_normalized_symtab): Adjust names of x_file fields.
        Normalize C_FILE auxiliary entries.
        (coff_print_symbol): Print C_FILE auxiliary entries.
        * coff-rs6000.c (_bfd_xcoff_swap_aux_in): Adjust names of
        x_file fields.
        (_bfd_xcoff_swap_aux_out): Likewise.
        * coff64-rs6000.c (_bfd_xcoff64_swap_aux_in): Likewise.
        (_bfd_xcoff64_swap_aux_out): Likewise.
        * cofflink.c (_bfd_coff_final_link): Likewise.
        (_bfd_coff_link_input_bfd): Likewise.
        * coffswap.h (coff_swap_aux_in): Likewise.
        * peXXigen.c (_bfd_XXi_swap_aux_in): Likewise.
        (_bfd_XXi_swap_aux_out): Likewise.
        * xcofflink.c (xcoff_link_input_bfd): Likewise.
        * libcoff.h: Regenerate.

gas/ChangeLog:

        * config/tc-ppc.c (ppc_file): New function.
        * config/tc-ppc.h (OBJ_COFF_MAX_AUXENTRIES): Change to 4.
        * testsuite/gas/ppc/aix.exp: Add tests.
        * testsuite/gas/ppc/xcoff-file-32.d: New test.
        * testsuite/gas/ppc/xcoff-file-64.d: New test.
        * testsuite/gas/ppc/xcoff-file.s: New test.

include/ChangeLog:

        * coff/internal.h (union internal_auxent): Change x_file to be a
          struct instead of a union. Add x_ftype field.
        * coff/rs6000.h (union external_auxent): Add x_resv field.
        * coff/xcoff.h (XFT_FN): New define.
        (XFT_CT): Likewise.
        (XFT_CV): Likewise.
        (XFT_CD): Likewise.


I would be glad if someone can test it on Windows and maybe on other
COFF formats too. It shouldn't impact but we never know. 

Thanks, 
Clément






-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-PR-28447-implement-multiple-parameters-for-.file-on-.patch
Type: text/x-patch
Size: 27402 bytes
Desc: 0001-PR-28447-implement-multiple-parameters-for-.file-on-.patch
URL: <https://sourceware.org/pipermail/binutils/attachments/20211018/b52c65aa/attachment-0001.bin>


More information about the Binutils mailing list