binutils-gdb/ld/testsuite
Maciej W. Rozycki 9e009953a5 PR gas/20649: MIPS: Fix GOT16/LO16 reloc pairing with comdat sections
Correct a regression from commit 8614eeee67 ("Traditional MIPS
patches"), <https://sourceware.org/ml/binutils/2000-07/msg00018.html>,
which caused symbols in linkonce or what is these days known as comdat
sections to be treated as external for the purpose of PIC relocation
generation even if their binding remains STB_LOCAL.  This in turn
disabled GOT16/LO16 relocation pairing with references to such symbols,
as no complementing LO16 relocation is expected for external GOT16
references in the o32 ABI, which ultimately leads to link errors, e.g.:

ld: comdat-reloc.o: Can't find matching LO16 reloc against `foo' for R_MIPS_GOT16 at 0x24 in section `.text.bar[bar]'

as with the LD test case included with this change.

Revert the special case for symbols in comdat sections then, making code
actually match `adjust_reloc_syms' as indicated in its explanatory
comment, and adjust calling code accordingly.  Also bring back the
corresponding description of what now is `s_is_linkonce', lost with
commit 5f0fe04bc5 ("Improved MIPS16/MIPS32 code intermixing for
gas."), <https://www.sourceware.org/ml/binutils/2006-07/msg00039.html>.

	gas/
	PR gas/20649
	* config/tc-mips.c (pic_need_relax): Don't check for linkonce
	symbols, remove the `segtype' parameter.
	(mips_frob_file, md_estimate_size_before_relax): Adjust
	accordingly.
	(s_is_linkonce): Add an explanatory comment.
	* testsuite/gas/mips/comdat-reloc.d: New test.
	* testsuite/gas/mips/comdat-reloc.s: New test source.
	* testsuite/gas/mips/mips.exp: Run the new test.

	ld/
	PR gas/20649
	* testsuite/ld-mips-elf/mips-elf.exp: Add PIC comdat GOT16/LO16
	relocation pairing link test.
2017-01-18 18:24:08 +00:00
..
config Run more ld tests when not native 2017-01-02 23:48:08 +10:30
ld-aarch64 Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-alpha Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-arc [ARC] Add new linker emulation for nps 2017-01-10 10:55:13 +00:00
ld-arm Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-auto-import Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-avr Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-bootstrap Run more ld tests when not native 2017-01-02 23:48:08 +10:30
ld-cdtest Run more ld tests when not native 2017-01-02 23:48:08 +10:30
ld-checks Run more ld tests when not native 2017-01-02 23:48:08 +10:30
ld-cris Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-crx Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-cygwin Run more ld tests when not native 2017-01-02 23:48:08 +10:30
ld-d10v Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-discard Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-elf Check for shared lib support before running ld tests with -shared 2017-01-04 09:39:12 +10:30
ld-elfcomm Run more ld tests when not native 2017-01-02 23:48:08 +10:30
ld-elfvers Add -rpath-link to various tests 2017-01-03 12:36:02 +10:30
ld-elfvsb Run more ld tests when not native 2017-01-02 23:48:08 +10:30
ld-elfweak Add -rpath-link to various tests 2017-01-03 12:36:02 +10:30
ld-fastcall Run more ld tests when not native 2017-01-02 23:48:08 +10:30
ld-frv Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-gc Run more ld tests when not native 2017-01-02 23:48:08 +10:30
ld-h8300 Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-i386 i386/x86-64: Add unwind info for .plt.got section 2017-01-10 13:31:59 -08:00
ld-ia64 Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-ifunc Check for shared lib support before running ld tests with -shared 2017-01-04 09:39:12 +10:30
ld-libs Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-linkonce Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-m68hc11 Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-m68k Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-mep Run more ld tests when not native 2017-01-02 23:48:08 +10:30
ld-metag Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-mips-elf PR gas/20649: MIPS: Fix GOT16/LO16 reloc pairing with comdat sections 2017-01-18 18:24:08 +00:00
ld-misc Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-mmix Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-mn10300 Run more ld tests when not native 2017-01-02 23:48:08 +10:30
ld-nds32 Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-nios2 Run more ld tests when not native 2017-01-02 23:48:08 +10:30
ld-pe Run more ld tests when not native 2017-01-02 23:48:08 +10:30
ld-pie Don't run C tests in ld testsuite unless we have a C compiler 2017-01-03 11:47:47 +10:30
ld-plugin Check for shared lib support before running ld tests with -shared 2017-01-04 09:39:12 +10:30
ld-powerpc Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-pru PRU LD Port 2016-12-31 12:04:11 +10:30
ld-s390 Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-scripts Run more ld tests when not native 2017-01-02 23:48:08 +10:30
ld-selective Run more ld tests when not native 2017-01-02 23:48:08 +10:30
ld-sh Run more ld tests when not native 2017-01-02 23:48:08 +10:30
ld-shared Run more ld tests when not native 2017-01-02 23:48:08 +10:30
ld-size Run more ld tests when not native 2017-01-02 23:48:08 +10:30
ld-sparc Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-spu Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-srec Run more ld tests when not native 2017-01-02 23:48:08 +10:30
ld-tic6x Run more ld tests when not native 2017-01-02 23:48:08 +10:30
ld-tilegx Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-tilepro Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-undefined Run more ld tests when not native 2017-01-02 23:48:08 +10:30
ld-unique Skip linker tests for unique symbols in shared libraries if the target does not support building shared libraries. 2017-01-18 12:23:19 +00:00
ld-v850 Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-vax-elf Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-versados Run more ld tests when not native 2017-01-02 23:48:08 +10:30
ld-visium Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-vxworks Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-x86-64 x86-64: Also generate unwind info for .plt.bnd 2017-01-12 10:32:17 -08:00
ld-xc16x Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-xstormy16 Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-xtensa Run more ld tests when not native 2017-01-02 23:48:08 +10:30
ld-z8k Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
lib Check ld_compile return status 2017-01-03 23:04:48 +10:30
ChangeLog-2004
ChangeLog-2005
ChangeLog-2006
ChangeLog-2007
ChangeLog-2008
ChangeLog-2009
ChangeLog-2010
ChangeLog-2011
ChangeLog-2012
ChangeLog-2013
ChangeLog-2014
ChangeLog-2015 binutils ChangeLog rotation 2016-01-01 22:59:17 +10:30
ChangeLog-9303