mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-30 12:44:10 +08:00
351cdf24d2
Specification: https://dmz-portal.mips.com/wiki/MIPS_O32_ABI_-_FR0_and_FR1_Interlinking include/ * elf/mips.h (PT_MIPS_ABIFLAGS, SHT_MIPS_ABIFLAGS): Define. (Val_GNU_MIPS_ABI_FP_OLD_64): Rename from Val_GNU_MIPS_ABI_FP_64. (Val_GNU_MIPS_ABI_FP_64): Redefine. (Val_GNU_MIPS_ABI_FP_XX): Define. (Elf_External_ABIFlags_v0, Elf_Internal_ABIFlags_v0): New structures. (AFL_REG_NONE, AFL_REG_32, AFL_REG_64, AFL_REG_128): Define. (AFL_ASE_DSP, AFL_ASE_DSPR2, AFL_ASE_EVA, AFL_ASE_MCU): Likewise. (AFL_ASE_MDMX, AFL_ASE_MIPS3D, AFL_ASE_MT, AFL_ASE_SMARTMIPS): Likewise. (AFL_ASE_VIRT, AFL_ASE_MSA, AFL_ASE_MIPS16): Likewise. (AFL_ASE_MICROMIPS, AFL_ASE_XPA): Likewise. (AFL_EXT_XLR, AFL_EXT_OCTEON2, AFL_EXT_OCTEONP): Likewise. (AFL_EXT_LOONGSON_3A, AFL_EXT_OCTEON, AFL_EXT_5900): Likewise. (AFL_EXT_4650, AFL_EXT_4010, AFL_EXT_4100, AFL_EXT_3900): Likewise. (AFL_EXT_10000, AFL_EXT_SB1, AFL_EXT_4111, AFL_EXT_4120): Likewise. (AFL_EXT_5400, AFL_EXT_5500, AFL_EXT_LOONGSON_2E): Likewise. (AFL_EXT_LOONGSON_2F): Likewise. (bfd_mips_elf_swap_abiflags_v0_in): Prototype. (bfd_mips_elf_swap_abiflags_v0_out): Likewise. (bfd_mips_isa_ext): Likewise. bfd/ * elfxx-mips.c (ABI_O32_P, MIPS_ELF_ABIFLAGS_SECTION_NAME_P): New macro. (mips_elf_obj_tdata): Add abiflags and abiflags_valid fields. (bfd_mips_elf_swap_abiflags_v0_in): New function. (bfd_mips_elf_swap_abiflags_v0_out): Likewise. (_bfd_mips_elf_section_from_shdr): Handle SHT_MIPS_ABIFLAGS. (_bfd_mips_elf_fake_sections): Likewise. (_bfd_mips_elf_always_size_sections): Handle .MIPS.abiflags. (_bfd_mips_elf_additional_program_headers): Account for new PT_MIPS_ABIFLAGS program header. (_bfd_mips_elf_modify_segment_map): Create PT_MIPS_ABIFLAGS segment and associate with .MIPS.abiflags. (_bfd_mips_elf_gc_mark_extra_sections): New function. (bfd_mips_isa_ext, update_mips_abiflags_isa): New static function. (infer_mips_abiflags): Likewise. (_bfd_mips_elf_final_link): Handle .MIPS.abiflags. (mips_32bit_flags_p): Moved higher. (mips_elf_merge_obj_attributes, _bfd_mips_fp_abi_string): Error checking for FP ABIs. (_bfd_mips_elf_merge_private_bfd_data): Restructure and add abiflags checks. Check EF_MIPS_FP64 flag consistency. (print_mips_ases, print_mips_isa_ext): New static function. (print_mips_fp_abi_value, get_mips_reg_size): Likewise. (_bfd_mips_elf_print_private_bfd_data): Display abiflags data. (_bfd_mips_post_process_headers): Set EI_ABIVERSION = 3 for Val_GNU_MIPS_ABI_FP_64 or Val_GNU_MIPS_ABI_FP_64A. * elfxx-mips.h (_bfd_mips_elf_gc_mark_extra_sections): New prototype. * elf32-mips.c (elf_backend_gc_mark_extra_sections): Implement. * elfn32-mips.c (elf_backend_gc_mark_extra_sections): Implement. * elf64-mips.c (elf_backend_gc_mark_extra_sections): Implement. binutils/ * readelf.c (get_mips_segment_type): Display name for PT_MIPS_ABIFLAGS. (get_mips_section_type_name): Display name for SHT_MIPS_ABIFLAGS. (display_mips_gnu_attribute): Abstracted fp abi printing to... (print_mips_fp_abi_value): New static function. Handle new FP ABIs. (print_mips_ases, print_mips_isa_ext): New static functions. (get_mips_reg_size): Likewise. (process_mips_specific): Display abiflags data. elfcpp/ * elfcpp.h (PT_MIPS_ABIFLAGS): New program header type. gas/ * config/tc-mips.c (mips_flags_frag): New static global. (struct mips_set_options): Add oddspreg field. (file_mips_opts, mips_opts): Initialize oddspreg. (ISA_HAS_ODD_SINGLE_FPR): Add CPU argument and update for R5900 and Loongson-3a. (enum options, md_longopts, md_parse_option): Add -mfpxx, -modd-spreg and -mno-odd-spreg options. (md_begin): Create .MIPS.abiflags section. (fpabi_incompatible_with, fpabi_requires): New static function. (check_fpabi): Likewise. (mips_check_options): Handle fp=xx and oddspreg restrictions. (file_mips_check_options): Set oddspreg by default for fp=xx. (mips_oddfpreg_ok): Re-write function. (check_regno): Check odd numbered registers regardless of FPR size. For fp != 32 use as_bad instead of as_warn. (match_float_constant): Rewrite check regarding FP register width. Add support for generating constants when MXHC1 is present. Handle fp=xx to comply with the ABI. (macro): Update M_LI_DD similarly to match_float_constant. Generate MTHC1 when available. Check that correct code can be generated for fp=xx and fp=64 ABIs. (parse_code_option, s_mipsset): Add fp=xx, oddspreg and nooddspreg options. (mips_convert_ase_flags): New static function. (mips_elf_final_processing): Use fpabi == Val_GNU_MIPS_ABI_FP_OLD_64 to determine when to add the EF_MIPS_FP64 flag. Populate the .MIPS.abiflags section. (md_mips_end): Update .gnu_attribute based on command line and .module as applicable. Use check_fpabi to ensure .gnu.attribute and command line/.module options are consistent. * doc/as.texinfo: Add missing -mgp64/-mfp64 options and document new -mfpxx, -modd-spreg and -mno-odd-spreg options. * doc/c-mips.texi: Document -mfpxx, -modd-spreg, -mno-odd-spreg, gnu_attribute values and FP ABIs. ld/ * emulparams/elf32bmip.sh: Add .MIPS.abiflags. * emulparams/elf32bmipn32-defs.sh: Likewise. * emulparams/elf64bmip-defs.sh: Likewise. opcodes/ * micromips-opc.c (COD, LCD) New macros. (cfc1, ctc1): Remove FP_S attribute. (dmfc1, mfc1, mfhc1): Add LCD attribute. (dmtc1, mtc1, mthc1): Add COD attribute. * mips-opc.c (cfc1, cftc1, ctc, cttc1): Remove FP_S attribute. binutils/testsuite/ * binutils-all/readelf.s: Account for .MIPS.abiflags and .gnu.attributes. * binutils-all/readelf.ss-tmips: Likewise. * binutils-all/strip-3.d: Likewise. gas/testsuite/ * gas/mips/attr-gnu-4-0.d: New. * gas/mips/attr-gnu-4-0.s: Likewise. * gas/mips/attr-gnu-4-1-mfp32.l: Likewise. * gas/mips/attr-gnu-4-1-mfp32.s: Likewise. * gas/mips/attr-gnu-4-1-mfp64.l: Likewise. * gas/mips/attr-gnu-4-1-mfp64.s: Likewise. * gas/mips/attr-gnu-4-1-mfpxx.s: Likewise. * gas/mips/attr-gnu-4-1-msingle-float.l: Likewise. * gas/mips/attr-gnu-4-1-msingle-float.s: Likewise. * gas/mips/attr-gnu-4-1-msoft-float.l: Likewise. * gas/mips/attr-gnu-4-1-msoft-float.s: Likewise. * gas/mips/attr-gnu-4-1.d: Likewise. * gas/mips/attr-gnu-4-1.s: Likewise. * gas/mips/attr-gnu-4-2-mdouble-float.l: Likewise. * gas/mips/attr-gnu-4-2-mdouble-float.s: Likewise. * gas/mips/attr-gnu-4-2-msoft-float.l: Likewise. * gas/mips/attr-gnu-4-2-msoft-float.s: Likewise. * gas/mips/attr-gnu-4-2.d: Likewise. * gas/mips/attr-gnu-4-2.s: Likewise. * gas/mips/attr-gnu-4-3-mhard-float.l: Likewise. * gas/mips/attr-gnu-4-3-mhard-float.s: Likewise. * gas/mips/attr-gnu-4-3.d: Likewise. * gas/mips/attr-gnu-4-3.s: Likewise. * gas/mips/attr-gnu-4-4.l: Likewise. * gas/mips/attr-gnu-4-4.s: Likewise. * gas/mips/attr-gnu-4-5-64.l: Likewise. * gas/mips/attr-gnu-4-5-64.s: Likewise. * gas/mips/attr-gnu-4-5.d: Likewise. * gas/mips/attr-gnu-4-5.l: Likewise. * gas/mips/attr-gnu-4-5.s: Likewise. * gas/mips/attr-gnu-4-6-64.l: Likewise. * gas/mips/attr-gnu-4-6-64.s: Likewise. * gas/mips/attr-gnu-4-6.d: Likewise. * gas/mips/attr-gnu-4-6.l: Likewise. * gas/mips/attr-gnu-4-6.s: Likewise. * gas/mips/attr-gnu-4-6-msingle-float.l: Likewise. * gas/mips/attr-gnu-4-6-msingle-float.s: Likewise. * gas/mips/attr-gnu-4-6-msoft-float.l: Likewise. * gas/mips/attr-gnu-4-6-msoft-float.s: Likewise. * gas/mips/attr-gnu-4-6-noodd.l: Likewise. * gas/mips/attr-gnu-4-6-noodd.s: Likewise. * gas/mips/attr-gnu-4-7-64.l: Likewise. * gas/mips/attr-gnu-4-7-64.s: Likewise. * gas/mips/attr-gnu-4-7-msingle-float.l: Likewise. * gas/mips/attr-gnu-4-7-msingle-float.s: Likewise. * gas/mips/attr-gnu-4-7-msoft-float.l: Likewise. * gas/mips/attr-gnu-4-7-msoft-float.s: Likewise. * gas/mips/attr-gnu-4-7-odd.l: Likewise. * gas/mips/attr-gnu-4-7-odd.s: Likewise. * gas/mips/attr-gnu-4-7.d: Likewise. * gas/mips/attr-gnu-4-7.l: Likewise. * gas/mips/attr-gnu-4-7.s: Likewise. * gas/mips/attr-none-double.d: Likewise. * gas/mips/attr-none-o32-fp64.d: Likewise. * gas/mips/attr-none-o32-fp64-nooddspreg.d * gas/mips/attr-none-o32-fpxx.d: Likewise. * gas/mips/attr-none-single-float.d: Likewise. * gas/mips/attr-none-soft-float.d: Likewise. * gas/mips/elf_arch_mips32r3.d: Likewise. * gas/mips/elf_arch_mips32r5.d: Likewise. * gas/mips/elf_arch_mips64r3.d: Likewise. * gas/mips/elf_arch_mips64r5.d: Likewise. * gas/mips/li-d.d: Likewise. * gas/mips/li-d.s: Likewise. * gas/mips/module-check-warn.l: Likewise. * gas/mips/module-check-warn.s: Likewise. * gas/mips/module-check.d: Likewise. * gas/mips/module-check.s: Likewise. * gas/mips/module-mfp32.d: Likewise. * gas/mips/module-mfp32.s: Likewise. * gas/mips/module-mfp64.d: Likewise. * gas/mips/module-mfp64.s: Likewise. * gas/mips/module-mfp64-noodd.d: Likewise. * gas/mips/module-mfp64-noodd.s: Likewise. * gas/mips/module-mfpxx.d: Likewise. * gas/mips/module-mfpxx.s: Likewise. * gas/mips/module-msingle-float.d: Likewise. * gas/mips/module-msingle-float.s: Likewise. * gas/mips/module-msoft-float.d: Likewise. * gas/mips/module-msoft-float.s: Likewise. * gas/mips/module-set-mfpxx.d: Likewise. * gas/mips/module-set-mfpxx.s: Likewise. * gas/mips/fpxx-oddfpreg.d: Likewise. * gas/mips/fpxx-oddfpreg.l: Likewise. * gas/mips/fpxx-oddfpreg.s: Likewise. * gas/mips/no-odd-spreg.d: Likewise. * gas/mips/odd-spreg.d: Likewise. * gas/elf/section2.e-mips: Adjust expected output. * gas/mips/attr-gnu-abi-fp-1.d: Likewise. * gas/mips/attr-gnu-abi-msa-1.d: Likewise. * gas/mips/call-nonpic-1.d: Likewise. * gas/mips/elf_arch_mips1.d: Likewise. * gas/mips/elf_arch_mips2.d: Likewise. * gas/mips/elf_arch_mips3.d: Likewise. * gas/mips/elf_arch_mips32.d: Likewise. * gas/mips/elf_arch_mips32r2.d: Likewise. * gas/mips/elf_arch_mips4.d: Likewise. * gas/mips/elf_arch_mips5.d: Likewise. * gas/mips/elf_arch_mips64.d: Likewise. * gas/mips/elf_arch_mips64r2.d: Likewise. * gas/mips/elf_ase_micromips-2.d: Likewise. * gas/mips/elf_ase_micromips.d: Likewise. * gas/mips/elf_ase_mips16-2.d: Likewise. * gas/mips/elf_ase_mips16.d: Likewise. * gas/mips/module-defer-warn1.d: Likewise. * gas/mips/module-override.d: Likewise. * gas/mips/n32-consec.d: Likewise. * gas/mips/nan-2008-1.d: Likewise. * gas/mips/nan-2008-2.d: Likewise. * gas/mips/nan-2008-3.d: Likewise. * gas/mips/nan-2008-4.d: Likewise. * gas/mips/nan-legacy-1.d: Likewise. * gas/mips/nan-legacy-2.d: Likewise. * gas/mips/nan-legacy-3.d: Likewise. * gas/mips/nan-legacy-4.d: Likewise. * gas/mips/nan-legacy-5.d: Likewise. * gas/mips/tmips16-e.d: Likewise. * gas/mips/tmips16-f.d: Likewise. * gas/mips/tmipsel16-e.d: Likewise. * gas/mips/tmipsel16-f.d: Likewise. * gas/testsuite/gas/mips/mips.exp: Add new tests. ld/testsuite/ * ld-mips-elf/abiflags-strip1-ph.d: New. * ld-mips-elf/abiflags-strip2-ph.d: Likewise. * ld-mips-elf/abiflags-strip3-ph.d: Likewise. * ld-mips-elf/abiflags-strip4-ph.d: Likewise. * ld-mips-elf/abiflags-strip5-ph.d: Likewise. * ld-mips-elf/abiflags-strip6-ph.d: Likewise. * ld-mips-elf/abiflags-strip7-ph.d: Likewise. * ld-mips-elf/abiflags-strip8-ph.d: Likewise. * ld-mips-elf/abiflags-strip9-ph.d: Likewise. * ld-mips-elf/attr-gnu-4-0-n32-ph.d: Likewise. * ld-mips-elf/attr-gnu-4-0-n64-ph.d: Likewise. * ld-mips-elf/attr-gnu-4-0-ph.d: Likewise. * ld-mips-elf/attr-gnu-4-06.d: Likewise. * ld-mips-elf/attr-gnu-4-07.d: Likewise. * ld-mips-elf/attr-gnu-4-08.d: Likewise. * ld-mips-elf/attr-gnu-4-1-n32-ph.d: Likewise. * ld-mips-elf/attr-gnu-4-1-n64-ph.d: Likewise. * ld-mips-elf/attr-gnu-4-1-ph.d: Likewise. * ld-mips-elf/attr-gnu-4-16.d: Likewise. * ld-mips-elf/attr-gnu-4-17.d: Likewise. * ld-mips-elf/attr-gnu-4-18.d: Likewise. * ld-mips-elf/attr-gnu-4-2-n32-ph.d: Likewise. * ld-mips-elf/attr-gnu-4-2-n64-ph.d: Likewise. * ld-mips-elf/attr-gnu-4-2-ph.d: Likewise. * ld-mips-elf/attr-gnu-4-26.d: Likewise. * ld-mips-elf/attr-gnu-4-27.d: Likewise. * ld-mips-elf/attr-gnu-4-28.d: Likewise. * ld-mips-elf/attr-gnu-4-3-n32-ph.d: Likewise. * ld-mips-elf/attr-gnu-4-3-n64-ph.d: Likewise. * ld-mips-elf/attr-gnu-4-3-ph.d: Likewise. * ld-mips-elf/attr-gnu-4-36.d: Likewise. * ld-mips-elf/attr-gnu-4-37.d: Likewise. * ld-mips-elf/attr-gnu-4-38.d: Likewise. * ld-mips-elf/attr-gnu-4-4-ph.d: Likewise. * ld-mips-elf/attr-gnu-4-46.d: Likewise. * ld-mips-elf/attr-gnu-4-47.d: Likewise. * ld-mips-elf/attr-gnu-4-48.d: Likewise. * ld-mips-elf/attr-gnu-4-5-ph.d: Likewise. * ld-mips-elf/attr-gnu-4-50.d: Likewise. * ld-mips-elf/attr-gnu-4-52.d: Likewise. * ld-mips-elf/attr-gnu-4-53.d: Likewise. * ld-mips-elf/attr-gnu-4-54.d: Likewise. * ld-mips-elf/attr-gnu-4-55.d: Likewise. * ld-mips-elf/attr-gnu-4-56.d: Likewise. * ld-mips-elf/attr-gnu-4-57.d: Likewise. * ld-mips-elf/attr-gnu-4-58.d: Likewise. * ld-mips-elf/attr-gnu-4-6-ph.d: Likewise. * ld-mips-elf/attr-gnu-4-6.s: Likewise. * ld-mips-elf/attr-gnu-4-60.d: Likewise. * ld-mips-elf/attr-gnu-4-61.d: Likewise. * ld-mips-elf/attr-gnu-4-62.d: Likewise. * ld-mips-elf/attr-gnu-4-63.d: Likewise. * ld-mips-elf/attr-gnu-4-64.d: Likewise. * ld-mips-elf/attr-gnu-4-65.d: Likewise. * ld-mips-elf/attr-gnu-4-66.d: Likewise. * ld-mips-elf/attr-gnu-4-67.d: Likewise. * ld-mips-elf/attr-gnu-4-68.d: Likewise. * ld-mips-elf/attr-gnu-4-7-ph.d: Likewise. * ld-mips-elf/attr-gnu-4-7.s: Likewise. * ld-mips-elf/attr-gnu-4-70.d: Likewise. * ld-mips-elf/attr-gnu-4-71.d: Likewise. * ld-mips-elf/attr-gnu-4-72.d: Likewise. * ld-mips-elf/attr-gnu-4-73.d: Likewise. * ld-mips-elf/attr-gnu-4-74.d: Likewise. * ld-mips-elf/attr-gnu-4-75.d: Likewise. * ld-mips-elf/attr-gnu-4-76.d: Likewise. * ld-mips-elf/attr-gnu-4-77.d: Likewise. * ld-mips-elf/attr-gnu-4-78.d: Likewise. * ld-mips-elf/attr-gnu-4-8.s: Likewise. * ld-mips-elf/attr-gnu-4-81.d: Likewise. * ld-mips-elf/empty.s: Likewise. * ld-mips-elf/attr-gnu-4-00.d: Adjust expected output. * ld-mips-elf/attr-gnu-4-01.d: Likewise. * ld-mips-elf/attr-gnu-4-02.d: Likewise. * ld-mips-elf/attr-gnu-4-03.d: Likewise. * ld-mips-elf/attr-gnu-4-04.d: Likewise. * ld-mips-elf/attr-gnu-4-05.d: Likewise. * ld-mips-elf/attr-gnu-4-10.d: Likewise. * ld-mips-elf/attr-gnu-4-11.d: Likewise. * ld-mips-elf/attr-gnu-4-14.d: Likewise. * ld-mips-elf/attr-gnu-4-15.d: Likewise. * ld-mips-elf/attr-gnu-4-2.s: Likewise. * ld-mips-elf/attr-gnu-4-20.d: Likewise. * ld-mips-elf/attr-gnu-4-22.d: Likewise. * ld-mips-elf/attr-gnu-4-24.d: Likewise. * ld-mips-elf/attr-gnu-4-25.d: Likewise. * ld-mips-elf/attr-gnu-4-3.s: Likewise. * ld-mips-elf/attr-gnu-4-30.d: Likewise. * ld-mips-elf/attr-gnu-4-33.d: Likewise. * ld-mips-elf/attr-gnu-4-34.d: Likewise. * ld-mips-elf/attr-gnu-4-35.d: Likewise. * ld-mips-elf/attr-gnu-4-40.d: Likewise. * ld-mips-elf/attr-gnu-4-41.d: Likewise. * ld-mips-elf/attr-gnu-4-42.d: Likewise. * ld-mips-elf/attr-gnu-4-43.d: Likewise. * ld-mips-elf/attr-gnu-4-44.d: Likewise. * ld-mips-elf/attr-gnu-4-45.d: Likewise. * ld-mips-elf/attr-gnu-4-5.s: Likewise. * ld-mips-elf/attr-gnu-4-51.d: Likewise. * ld-mips-elf/attr-gnu-8-00.d: Likewise. * ld-mips-elf/attr-gnu-8-01.d: Likewise. * ld-mips-elf/attr-gnu-8-02.d: Likewise. * ld-mips-elf/attr-gnu-8-10.d: Likewise. * ld-mips-elf/attr-gnu-8-11.d: Likewise. * ld-mips-elf/attr-gnu-8-20.d: Likewise. * ld-mips-elf/attr-gnu-8-22.d: Likewise. * ld-mips-elf/jalx-2.dd: Likewise. * ld-mips-elf/mips16-pic-1.gd: Likewise. * ld-mips-elf/mips16-pic-2.gd: Likewise. * ld-mips-elf/mips16-pic-3.gd: Likewise. * ld-mips-elf/mips16-pic-4a.gd: Likewise. * ld-mips-elf/multi-got-no-shared.d: Likewise. * ld-mips-elf/nan-2008.d: Likewise. * ld-mips-elf/nan-legacy.d: Rework test. * ld-mips-elf/pic-and-nonpic-3a.gd: Likewise. * ld-mips-elf/pic-and-nonpic-3b.gd: Likewise. * ld-mips-elf/pic-and-nonpic-5b.gd: Likewise. * ld-mips-elf/pic-and-nonpic-6.ld: Likewise. * ld-mips-elf/rel32-n32.d: Likewise. * ld-mips-elf/rel32-o32.d: Likewise. * ld-mips-elf/rel64.d: Likewise. * ld-mips-elf/tls-multi-got-1.r: Likewise. * ld-elf/group.ld: Discard .MIPS.abiflags and .gnu.attributes. * ld-elf/orphan-region.ld: Likewise. * ld-elf/orphan.ld: Likewise. * ld-mips-elf/compressed-plt-1.ld: Likewise. * ld-mips-elf/dyn-sec64.ld: Likewise. * ld-mips-elf/got-dump-1.ld: Likewise. * ld-mips-elf/got-dump-2.ld: Likewise. * ld-mips-elf/got-page-1.ld: Likewise. * ld-mips-elf/mips-dyn.ld: Likewise. * ld-mips-elf/mips-lib.ld: Likewise. * ld-mips-elf/pic-and-nonpic-3a.ld: Likewise. * ld-mips-elf/pic-and-nonpic-3b.ld: Likewise. * ld-mips-elf/pic-and-nonpic-4b.ld: Likewise. * ld-mips-elf/pic-and-nonpic-5b.ld: Likewise. * ld-mips-elf/region1.t: Likewise. * ld-mips-elf/stub-dynsym-1.ld: Likewise. * ld-mips-elf/tls-hidden3.ld: Likewise. * ld-mips-elf/vxworks1.ld: Likewise. * ld-scripts/overlay-size.t: Likewise. * ld-mips-elf/elf-rel-got-n32-embed.d: Remove .MIPS.abiflags from objects. * ld-mips-elf/elf-rel-got-n32.d: Likewise. * ld-mips-elf/elf-rel-got-n64-embed.d: Likewise. * ld-mips-elf/elf-rel-got-n64-linux.d: Likewise. * ld-mips-elf/elf-rel-got-n64.d: Likewise. * ld-mips-elf/elf-rel-xgot-n32.d: Likewise. * ld-mips-elf/elf-rel-xgot-n32-embed.d: Likewise. * ld-mips-elf/elf-rel-xgot-n64.d: Likewise. * ld-mips-elf/elf-rel-xgot-n64-linux.d: Likewise. * ld-mips-elf/elf-rel-xgot-n64-embed.d: Likewise. * ld-mips-elf/mips-elf.exp: Add new tests.
374 lines
12 KiB
Plaintext
374 lines
12 KiB
Plaintext
2014-07-29 Matthew Fortune <matthew.fortune@imgtec.com>
|
||
|
||
* elfcpp.h (PT_MIPS_ABIFLAGS): New program header type.
|
||
|
||
2014-07-02 Jing Yu <jingyu@google.com>
|
||
|
||
* aarch64.h: New file. New enums for aarch64-elf64 relocations.
|
||
* elfcpp.h (EM_AARCH64, SHT_AARCH64_ATTRIBUTES, PT_AARCH64_ARCHEXT,
|
||
PT_AARCH64_UNWIND): New enum constant.
|
||
|
||
2014-04-22 Christian Svensson <blue@cmd.nu>
|
||
|
||
* elfcpp.h: Remove openrisc and or32 support.
|
||
|
||
2014-04-15 Sasa Stankovic <Sasa.Stankovic@imgtec.com>
|
||
|
||
* mips.h (R _MIPS16_TLS_GD, R_MIPS16_TLS_LDM, R_MIPS16_TLS_DTPREL_HI16,
|
||
R_MIPS16_TLS_DTPREL_LO16, R_MIPS16_TLS_GOTTPREL,
|
||
R_MIPS16_TLS_TPREL_HI16, R_MIPS16_TLS_TPREL_LO16, R_MICROMIPS_26_S1,
|
||
R_MICROMIPS_HI16, R_MICROMIPS_LO16, R_MICROMIPS_GPREL16,
|
||
R_MICROMIPS_LITERAL, R_MICROMIPS_GOT16, R_MICROMIPS_PC7_S1,
|
||
R_MICROMIPS_PC10_S1, R_MICROMIPS_PC16_S1, R_MICROMIPS_CALL16,
|
||
R_MICROMIPS_GOT_DISP, R_MICROMIPS_GOT_PAGE, R_MICROMIPS_GOT_OFST,
|
||
R_MICROMIPS_GOT_HI16, R_MICROMIPS_GOT_LO16, R_MICROMIPS_SUB,
|
||
R_MICROMIPS_HIGHER, R_MICROMIPS_HIGHEST, R_MICROMIPS_CALL_HI16,
|
||
R_MICROMIPS_CALL_LO16, R_MICROMIPS_SCN_DISP, R_MICROMIPS_JALR,
|
||
R_MICROMIPS_HI0_LO16, R_MICROMIPS_TLS_GD, R_MICROMIPS_TLS_LDM,
|
||
R_MICROMIPS_TLS_DTPREL_HI16, R_MICROMIPS_TLS_DTPREL_LO16,
|
||
R_MICROMIPS_TLS_GOTTPREL, R_MICROMIPS_TLS_TPREL_HI16,
|
||
R_MICROMIPS_TLS_TPREL_LO16, R_MICROMIPS_GPREL7_S2,
|
||
R_MICROMIPS_PC23_S20, R_MIPS_EH): New enums for relocations (mips16 and
|
||
micromips).
|
||
(STO_MIPS_FLAGS): New enum constant.
|
||
(elf_st_is_mips16): New function.
|
||
(elf_st_is_micromips): New function.
|
||
(is_micromips): New function.
|
||
(abi_n32): New function.
|
||
(abi_n64): New function.
|
||
(ODK_NULL, ODK_REGINFO, ODK_EXCEPTIONS, ODK_PAD, ODK_HWPATCH, ODK_FILL,
|
||
ODK_TAGS, ODK_HWAND, ODK_HWOR, ODK_GP_GROUP, ODK_IDENT): New enum
|
||
constants.
|
||
* elfcpp.h (SHT_MIPS_OPTIONS): New enum constant.
|
||
|
||
2014-03-05 Alan Modra <amodra@gmail.com>
|
||
|
||
Update copyright years.
|
||
|
||
2014-03-05 Alan Modra <amodra@gmail.com>
|
||
|
||
* powerpc.h (R_PPC64_REL24_NOTOC, R_PPC64_ADDR64_LOCAL): Define.
|
||
|
||
2014-02-06 Andrew Pinski <apinski@cavium.com>
|
||
|
||
* mips.h (E_MIPS_MACH_OCTEON3): New enum constant.
|
||
|
||
2013-11-17 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* x86_64.h (R_X86_64_PC32_BND): New.
|
||
(R_X86_64_PLT32_BND): Likewise.
|
||
|
||
2013-10-30 Alan Modra <amodra@gmail.com>
|
||
|
||
* powerpc.h (EF_PPC64_ABI): New enum constant.
|
||
(STO_PPC64_LOCAL_BIT, STO_PPC64_LOCAL_MASK): Likewise.
|
||
(ppc64_decode_local_entry): New function.
|
||
(ppc64_encode_local_entry): Likewise.
|
||
|
||
2013-10-30 Alan Modra <amodra@gmail.com>
|
||
|
||
* powerpc.h (R_PPC64_ADDR16_HIGH, R_PPC64_ADDR16_HIGHA,
|
||
R_PPC64_TPREL16_HIGH, R_PPC64_TPREL16_HIGHA,
|
||
R_PPC64_DTPREL16_HIGH, R_PPC64_DTPREL16_HIGHA): Define.
|
||
|
||
2013-03-01 Cary Coutant <ccoutant@google.com>
|
||
|
||
* dwarf.h (enum DW_LANG): Adjust spacing for consistency.
|
||
(enum DW_SECT): New enum type.
|
||
|
||
2012-12-17 Nick Clifton <nickc@redhat.com>
|
||
|
||
* README: Add copyright notice.
|
||
|
||
2012-10-30 Steve McIntyre <steve.mcintyre@linaro.org>
|
||
|
||
* arm.h: New enum for EABI soft- and hard-float flags.
|
||
|
||
2012-09-15 Jiong Wang <jiwang@tilera.com>
|
||
|
||
* tilegx.h: New file.
|
||
* elfcpp.h: add EM_TILEGX.
|
||
|
||
2012-08-14 Alan Modra <amodra@gmail.com>
|
||
|
||
* powerpc.h: Add more relocs.
|
||
(R_PPC_REL16*): Rename to R_POWERPC_REL16*.
|
||
|
||
2012-05-11 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR gold/14091
|
||
* x86_64.h (R_X86_64_RELATIVE64): New.
|
||
|
||
2012-05-01 Cary Coutant <ccoutant@google.com>
|
||
|
||
* dwarf.h (enum DW_TAG, enum DW_FORM, enum DW_AT, enum DW_ENCODING)
|
||
(enum DW_OP, enum DW_CFA): Remove.
|
||
Include dwarf2.def.
|
||
|
||
2012-04-23 Cary Coutant <ccoutant@google.com>
|
||
|
||
* elfcpp_swap.h (struct Swap_aligned32): New template.
|
||
|
||
2012-04-16 David S. Miller <davem@davemloft.net>
|
||
|
||
* sparc.h (R_SPARC_JMP_IREL): New relocation.
|
||
|
||
2012-04-12 David S. Miller <davem@davemloft.net>
|
||
|
||
* sparc.h (R_SPARC_WDISP10): New relocation.
|
||
|
||
2012-03-12 Cary Coutant <ccoutant@google.com>
|
||
|
||
Update DWARF enums from ../include/dwarf2.h.
|
||
* dwarf.h (enum DW_TAG): Add new DWARF-4 tags.
|
||
(enum DW_FORM): Add new DWARF-4 and Fission extensions.
|
||
(enum DW_AT): New enum.
|
||
(enum DW_LINE_EXTENDED_OPS): Add new DWARF-4 opcode.
|
||
(enum DW_ENCODING): Add new DWARF-4 encoding.
|
||
(enum DW_OP): Add new DWARF-4 opcodes.
|
||
(enum DW_CHILDREN): New enum.
|
||
(enum DW_LANG): New enum.
|
||
|
||
2012-01-27 Aleksandar Simeonov <asimeonov@mips.com>
|
||
|
||
* mips.h: New file
|
||
* elfcpp.h (SHT_MIPS_REGINFO): New enums for processor-specific flags.
|
||
(SHF_MIPS_GPREL): Likewise.
|
||
(PT_MIPS_REGINFO, PT_MIPS_RTPROC, PT_MIPS_OPTIONS): Likewise.
|
||
(DT_MIPS_RLD_VERSION, DT_MIPS_TIME_STAMP, DT_MIPS_ICHECKSUM,
|
||
DT_MIPS_IVERSION, DT_MIPS_FLAGS, DT_MIPS_BASE_ADDRESS, DT_MIPS_MSYM,
|
||
DT_MIPS_CONFLICT, DT_MIPS_LIBLIST, DT_MIPS_LOCAL_GOTNO,
|
||
DT_MIPS_CONFLICTNO, DT_MIPS_LIBLISTNO, DT_MIPS_SYMTABNO,
|
||
DT_MIPS_UNREFEXTNO, DT_MIPS_GOTSYM, DT_MIPS_HIPAGENO, DT_MIPS_RLD_MAP,
|
||
DT_MIPS_DELTA_CLASS, DT_MIPS_DELTA_CLASS_NO, DT_MIPS_DELTA_INSTANCE,
|
||
DT_MIPS_DELTA_INSTANCE_NO, DT_MIPS_DELTA_RELOC, DT_MIPS_DELTA_RELOC_NO,
|
||
DT_MIPS_DELTA_SYM, DT_MIPS_DELTA_SYM_NO, DT_MIPS_DELTA_CLASSSYM,
|
||
DT_MIPS_DELTA_CLASSSYM_NO, DT_MIPS_CXX_FLAGS, DT_MIPS_PIXIE_INIT,
|
||
DT_MIPS_SYMBOL_LIB, DT_MIPS_LOCALPAGE_GOTIDX, DT_MIPS_LOCAL_GOTIDX,
|
||
DT_MIPS_HIDDEN_GOTIDX, DT_MIPS_PROTECTED_GOTIDX, DT_MIPS_OPTIONS,
|
||
DT_MIPS_INTERFACE, DT_MIPS_DYNSTR_ALIGN, DT_MIPS_INTERFACE_SIZE,
|
||
DT_MIPS_RLD_TEXT_RESOLVE_ADDR, DT_MIPS_PERF_SUFFIX,
|
||
DT_MIPS_COMPACT_SIZE, DT_MIPS_GP_VALUE, DT_MIPS_AUX_DYNAMIC,
|
||
DT_MIPS_PLTGOT, DT_MIPS_RWPLT): Likewise.
|
||
|
||
2012-01-27 Ian Lance Taylor <iant@google.com>
|
||
|
||
* elfcpp.h (STT_GNU_IFUNC): Add comment.
|
||
|
||
2011-07-03 Samuel Thibault <samuel.thibault@gnu.org>
|
||
Thomas Schwinge <thomas@schwinge.name>
|
||
|
||
PR binutils/12913
|
||
* elfcpp.h (ELFOSABI): Add ELFOSABI_GNU with value of ELFOSABI_LINUX,
|
||
keep ELFOSABI_LINUX as an alias. Remove ELFOSABI_HURD.
|
||
|
||
2011-07-01 Ian Lance Taylor <iant@google.com>
|
||
|
||
* dwarf.h (enum DW_CFA): Define.
|
||
|
||
2010-08-12 Cary Coutant <ccoutant@google.com>
|
||
|
||
* elfcpp.h (enum SHT): Add SHT_GNU_INCREMENTAL_GOT_PLT.
|
||
|
||
2010-08-12 Cary Coutant <ccoutant@google.com>
|
||
|
||
* elfcpp.h (enum SHT): Add SHT_GNU_INCREMENTAL_SYMTAB,
|
||
SHT_GNU_INCREMENTAL_RELOCS.
|
||
|
||
2010-08-04 Ian Lance Taylor <iant@google.com>
|
||
|
||
* i386.h (R_386_IRELATIVE): Define.
|
||
* powerpc.h (R_POWERPC_IRELATIVE): Define.
|
||
(R_PPC_RELAX32, R_PPC_RELAX32PC): Don't define.
|
||
(R_PPC_RELAX32_PLT, R_PPC_RELAX32PC_PLT): Don't define.
|
||
* sparc.h (R_SPARC_IRELATIVE): Define.
|
||
* x86_64.h (R_X86_64_IRELATIVE): Define.
|
||
(R_X86_64_GNU_VTINHERIT): Rename from R_386_GNU_VTINHERIT.
|
||
(R_X86_64_GNU_VTENTRY): Rename from R_386_GNU_VTENTRY.
|
||
|
||
2010-05-12 Doug Kwan <dougkwan@google.com>
|
||
|
||
* arm.h (Tag_FP_arch, Tag_ABI_align_needed, Tag_ABI_align_preserved,
|
||
Tag_FP_HP_extension, Tag_MPextension_use_legacy): Rename from
|
||
existing tags.
|
||
(Tag_undefined40, Tag_undefined41, Tag_MPextension_use,
|
||
Tag_undefined43): New tags.
|
||
(Targ_VFP_arch, Tag_ABI_align8_needed, TAG_ABI_align8_preserved,
|
||
Tag_VFP_HP_extension): Define aliases for backward compatiblity.
|
||
|
||
2010-03-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
|
||
* elfcpp.h (VER_FLG_INFO): Define.
|
||
|
||
2010-01-21 Doug Kwan <dougkwan@google.com>
|
||
|
||
* arm.h (EXIDX_CANTUNWIND): New enum.
|
||
|
||
2010-01-19 Ian Lance Taylor <iant@google.com>
|
||
|
||
* elfcpp.h (PN_XNUM): Define.
|
||
|
||
2009-12-14 Ian Lance Taylor <iant@google.com>
|
||
|
||
* elfcpp_file.h: Revert last patch.
|
||
|
||
2009-12-11 Nick Clifton <nickc@redhat.com>
|
||
|
||
* elfcpp_file.h: Fix shadowed variable warnings.
|
||
|
||
2009-12-10 Doug Kwan <dougkwan@google.com>
|
||
|
||
* arm.h: New enums for EABI object attribute tags and values.
|
||
|
||
2009-12-05 Doug Kwan <dougkwan@google.com>
|
||
|
||
* arm.h: Define enums for Tag_CPU_arch EABI attribute.
|
||
|
||
2009-11-24 Rafael Avila de Espindola <espindola@google.com>
|
||
|
||
* elfcpp_file.h: Include elfcpp.h.
|
||
|
||
2009-11-03 Ian Lance Taylor <iant@google.com>
|
||
|
||
* elfcpp.h: Remove trailing commas from enum definitions.
|
||
|
||
2009-10-30 Doug Kwan <dougkwan@google.com>
|
||
|
||
* arm.h (EF_ARM_BE8, EF_ARM_EABIMASK, EF_ARM_EABI_UNKNOWN,
|
||
EF_ARM_EABI_VER1, EF_ARM_EABI_VER2, EF_ARM_EABI_VER3,
|
||
EF_ARM_EABI_VER4, EF_ARM_EABI_VER5): New enums for processor-specific
|
||
flags.
|
||
(arm_eabi_version): New inline function.
|
||
* elfcpp.h: Add a comment about DT_ENCODING.
|
||
|
||
2009-10-16 Doug Kwan <dougkwan@google.com>
|
||
|
||
* elfcpp/elfcpp.h (DT_PREINIT_ARRAY): Correct enum value.
|
||
|
||
2009-10-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
|
||
|
||
* elfcpp/elfcpp_file.h (Elf_file::section_name): Change shstr_size
|
||
to Elf_WXword.
|
||
|
||
2009-10-09 Mikolaj Zalewski <mikolajz@google.com>
|
||
|
||
* elf_file.h: (class Elf_strtab): New class.
|
||
|
||
2009-10-09 Mikolaj Zalewski <mikolajz@google.com>
|
||
|
||
* elfcpp_file.h: Fix header guard. Include <cstdio>.
|
||
(class Elf_recognizer): New class, code from gold/object.cc.
|
||
(Elf_file::find_section_by_type): New method.
|
||
|
||
2009-07-23 Ulrich Drepper <drepper@redhat.com>
|
||
|
||
* elfcpp.h (enum STB): Add STB_GNU_UNIQUE.
|
||
|
||
2009-06-21 Ian Lance Taylor <iant@google.com>
|
||
|
||
* elfcpp.h (SHN_X86_64_LCOMMON): Define enum constant.
|
||
(enum SHT): Add SHT_X86_64_UNWIND.
|
||
(enum SHF): Add SHT_X86_64_LARGE.
|
||
|
||
2009-05-27 Doug Kwan <dougkwan@google.com>
|
||
|
||
* arm.h: New file.
|
||
* elfcpp.h (enum SHT): Add ARM-specific special sections.
|
||
(enum PT): Add ARM-specific section types.
|
||
(enum SST): Add STT_ARM_TFUNC.
|
||
|
||
2009-04-30 Nick Clifton <nickc@redhat.com>
|
||
|
||
* elfcpp.h (enum STT): Add STT_GNU_IFUNC.
|
||
|
||
2009-03-20 Mikolaj Zalewski <mikolajz@google.com>
|
||
|
||
* elfcpp.h (SHT_GNU_INCREMENTAL_INPUTS): Define.
|
||
|
||
2009-03-01 Ian Lance Taylor <iant@google.com>
|
||
|
||
* elfcpp_swap.h: #include "config.h". Only #include <byteswap.h>
|
||
if HAVE_BYTESWAP_H is defined; if not, provide definitions for
|
||
bswap_{16,32,64}. For gcc 4.3 and later, use the builtin bswap
|
||
functions. Check WORDS_BIGENDIAN rather than __BYTE_ORDER.
|
||
|
||
2009-01-06 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* elfcpp.h (enum STT): Remove STT_IFUNC.
|
||
|
||
2008-12-03 Nick Clifton <nickc@redhat.com>
|
||
|
||
* elfcpp.h (enum STT): Add STT_IFUNC.
|
||
|
||
2008-06-12 David S. Miller <davem@davemloft.net>
|
||
|
||
* powerpc.h: New file.
|
||
* elfcpp.h (SHT_ORDERED): New enum constant.
|
||
(DT_PPC_GOT, DT_PPC64_GLINK, DT_PPC64_OPD, DT_PPC64_OPDSZ): Same.
|
||
|
||
2008-05-28 Caleb Howe <cshowe@google.com>
|
||
|
||
* dwarf.h (enum DW_FORM): Define.
|
||
|
||
2008-04-19 Ian Lance Taylor <iant@google.com>
|
||
|
||
* elfcpp_file.h (class Elf_file): Add large_shndx_offset_ field.
|
||
(Elf_file::large_shndx_offset): New function.
|
||
(Elf_file::construct): Initialize large_shndx_offset_.
|
||
(Elf_File::initialize_shnum): If necessary, adjust shstrndx_ and
|
||
set large_shndx_offset_.
|
||
|
||
2008-04-16 David S. Miller <davem@davemloft.net>
|
||
|
||
* elfcpp.h (DF_1_NOW, DF_1_GLOBAL, DF_1_GROUP,
|
||
DF_1_NODELETE, DF_1_LOADFLTR, DF_1_INITFIRST,
|
||
DF_1_NOOPEN, DF_1_ORIGIN, DF_1_DIRECT, DF_1_TRANS,
|
||
DF_1_INTERPOSE, DF_1_NODEFLIB, DF_1_NODUMP,
|
||
DF_1_CONLFAT): New enum constants.
|
||
|
||
2008-04-15 David S. Miller <davem@davemloft.net>
|
||
|
||
* sparc.h (EF_SPARC_EXT_MASK, EF_SPARC_32PLUS_MASK,
|
||
EF_SPARC_32PLUS, EF_SPARC_SUN_US1, EF_SPARC_HAL_R1,
|
||
EF_SPARC_SUN_US3, EF_SPARC_LEDATA, EF_SPARCV9_MM,
|
||
EF_SPARCV9_TSO, EF_SPARCV9_PSO, EF_SPARCV9_RMO):
|
||
Define as enum constants.
|
||
|
||
2008-04-11 David S. Miller <davem@davemloft.net>
|
||
|
||
* sparc.h: New file
|
||
* elfcpp.h (SHN_BEFORE, SHN_AFTER): New enum constants.
|
||
(SHT_SPARC_GOTDATA, SHF_ORDERED, SHF_EXCLUDE,
|
||
STT_SPARC_REGISTER, DT_SPARC_REGISTER): Likewise.
|
||
|
||
2008-04-03 Ian Lance Taylor <iant@google.com>
|
||
|
||
* elfcpp_swap.h (Swap_unaligned<64, true>::writeval): Correct
|
||
byte order.
|
||
|
||
2008-03-24 Ian Lance Taylor <iant@google.com>
|
||
|
||
* elfcpp.h (NT_VERSION, NT_ARCH): Define as enum constants.
|
||
(NT_GNU_ABI_TAG, NT_GNU_HWCAP): Likewise.
|
||
(NT_GNU_BUILD_ID, NT_GNU_GOLD_VERSION): Likewise.
|
||
(ELF_NOTE_OS_LINUX, ELF_NOTE_OS_GNU): Likewise.
|
||
(ELF_NOTE_OS_SOLARIS2, ELF_NOTE_OS_NETBSD): Likewise.
|
||
(ELF_NOTE_OS_SYLLABLE): Likewise.
|
||
|
||
2008-03-21 Ian Lance Taylor <iant@google.com>
|
||
|
||
* Added source code to GNU binutils.
|
||
|
||
Copyright (C) 2008-2014 Free Software Foundation, Inc.
|
||
|
||
Copying and distribution of this file, with or without modification,
|
||
are permitted in any medium without royalty provided the copyright
|
||
notice and this notice are preserved.
|
||
|
||
Local Variables:
|
||
mode: change-log
|
||
left-margin: 8
|
||
fill-column: 74
|
||
version-control: never
|
||
End:
|