Module Name: src Committed By: joerg Date: Mon Jul 17 19:50:23 UTC 2017
Modified Files: src/external/gpl3/binutils/dist/bfd: elfxx-mips.c src/external/gpl3/binutils/dist/gas/config: tc-mips.h Log Message: Create references as absolute pointers internally for .cfi*. Do not warn for anonymous relocations in read-only .eh_frame, they will be turned into relative entries afterwards. To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 src/external/gpl3/binutils/dist/bfd/elfxx-mips.c cvs rdiff -u -r1.6 -r1.7 src/external/gpl3/binutils/dist/gas/config/tc-mips.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/external/gpl3/binutils/dist/bfd/elfxx-mips.c diff -u src/external/gpl3/binutils/dist/bfd/elfxx-mips.c:1.10 src/external/gpl3/binutils/dist/bfd/elfxx-mips.c:1.11 --- src/external/gpl3/binutils/dist/bfd/elfxx-mips.c:1.10 Wed Oct 26 18:42:52 2016 +++ src/external/gpl3/binutils/dist/bfd/elfxx-mips.c Mon Jul 17 19:50:23 2017 @@ -8596,12 +8596,18 @@ _bfd_mips_elf_check_relocs (bfd *abfd, s /* In the N32 and 64-bit ABIs there may be multiple consecutive relocations for the same offset. If we have a R_MIPS_GPREL32 followed by a R_MIPS_64 then that - relocation is complete and needs no futher adjustment. */ + relocation is complete and needs no futher adjustment. + + Silently ignore absolute relocations in the .eh_frame + section, they will be dropped latter. + */ if ((rel == relocs || rel[-1].r_offset != rel->r_offset || r_type != R_MIPS_64 || ELF_R_TYPE(abfd, rel[-1].r_info) != R_MIPS_GPREL32) - && MIPS_ELF_READONLY_SECTION (sec)) + && MIPS_ELF_READONLY_SECTION (sec) + && !((r_type == R_MIPS_32 || r_type == R_MIPS_64) + && strcmp(sec->name, ".eh_frame") == 0)) { /* We tell the dynamic linker that there are relocations against the text segment. */ Index: src/external/gpl3/binutils/dist/gas/config/tc-mips.h diff -u src/external/gpl3/binutils/dist/gas/config/tc-mips.h:1.6 src/external/gpl3/binutils/dist/gas/config/tc-mips.h:1.7 --- src/external/gpl3/binutils/dist/gas/config/tc-mips.h:1.6 Wed Oct 26 18:42:55 2016 +++ src/external/gpl3/binutils/dist/gas/config/tc-mips.h Mon Jul 17 19:50:23 2017 @@ -178,7 +178,7 @@ extern int mips_dwarf2_addr_size (void); #define DWARF2_ADDR_SIZE(bfd) mips_dwarf2_addr_size () #define DWARF2_FDE_RELOC_SIZE (compact_eh ? 4 : mips_dwarf2_addr_size ()) #define DWARF2_FDE_RELOC_ENCODING(enc) \ - (enc | (compact_eh ? DW_EH_PE_pcrel : 0)) + (compact_eh ? (enc)|DW_EH_PE_pcrel : DW_EH_PE_absptr) #define TARGET_USE_CFIPOP 1