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