binutils-gdb/ld/testsuite
Maciej W. Rozycki ebf0b03c70 LD: vfinfo: Make clever formatters consistent WRT function name reporting
Remove an inconsistency in linker error message processing causing that
it depends on the ability to infer the name of the originating source
file whether or not the name of the offending function is repeated by
clever formatters for each issue reported within the function.

Taking the `ld/testsuite/ld-powerpc/tocopt7.s' test case source as an
example and the `powerpc-linux' target we have:

$ as -gdwarf2 -o tocopt.o -a64 tocopt.s
$ ld -o tocopt -melf64ppc tocopt.o
tocopt.o: In function `_start':
tocopt.s:35:(.text+0x14): toc optimization is not supported for 0x3fa00000 instruction.
tocopt.s:49:(.text+0x34): toc optimization is not supported for 0x3fa00000 instruction.
$

vs:

$ as -o tocopt.o -a64 tocopt.s
$ ld -o tocopt -melf64ppc tocopt.o
tocopt.o: In function `_start':
(.text+0x14): toc optimization is not supported for 0x3fa00000 instruction.
tocopt.o: In function `_start':
(.text+0x34): toc optimization is not supported for 0x3fa00000 instruction.
$

Similarly with the `mips-linux' target and this source:

$ cat jal-global-multi-overflow.s
	.text
	.set	noreorder
	.space	0x2000

	.align	4
	.globl	foo
	.ent	foo
foo:
	jal	bar
	 nor	$0, $0
	jal	bar
	 nor	$0, $0
	.end	foo

	.space	0x1ff0

	.align	4
	.globl	bar
	.ent	bar
bar:
	jal	foo
	 nor	$0, $0
	jal	foo
	 nor	$0, $0
	.end	bar
$ as -o jal-global-multi-overflow.o jal-global-multi-overflow.s
$ ld -Ttext 0x1fffd000 -e foo -o jal-global-multi-overflow jal-global-multi-overflow.o
jal-global-multi-overflow.o: In function `foo':
(.text+0x2000): relocation truncated to fit: R_MIPS_26 against `bar'
jal-global-multi-overflow.o: In function `foo':
(.text+0x2008): relocation truncated to fit: R_MIPS_26 against `bar'
jal-global-multi-overflow.o: In function `bar':
(.text+0x4000): relocation truncated to fit: R_MIPS_26 against `foo'
jal-global-multi-overflow.o: In function `bar':
(.text+0x4008): relocation truncated to fit: R_MIPS_26 against `foo'
$

Not only this is inconsistent, but it causes output clutter as well with
redundant information.

The cause for this is a check in `vfinfo' the intent of which is to
print the function heading whenever (among others) the name of the
source file has changed, which however does not take into account a
situation where the name couldn't have been established both now and
previously.

Adjust the check then for this situation, yielding:

$ as -o tocopt.o -a64 tocopt.s
$ ld -o tocopt -melf64ppc tocopt.o
tocopt.o: In function `_start':
(.text+0x14): toc optimization is not supported for 0x3fa00000 instruction.
(.text+0x34): toc optimization is not supported for 0x3fa00000 instruction.
$

and:

$ as -o jal-global-multi-overflow.o jal-global-multi-overflow.s
$ ld -Ttext 0x1fffd000 -e foo -o jal-global-multi-overflow jal-global-multi-overflow.o
jal-global-multi-overflow.o: In function `foo':
(.text+0x2000): relocation truncated to fit: R_MIPS_26 against `bar'
(.text+0x2008): relocation truncated to fit: R_MIPS_26 against `bar'
jal-global-multi-overflow.o: In function `bar':
(.text+0x4000): relocation truncated to fit: R_MIPS_26 against `foo'
(.text+0x4008): relocation truncated to fit: R_MIPS_26 against `foo'
$

respectively instead.  Adjust the test suite accordingly.

	ld/
	* ldmisc.c (vfinfo): Don't print the function name again either
	if no source file name has been found both now and previously.
	* testsuite/ld-cris/tls-err-20x.d: Adjust accordingly.
	* testsuite/ld-mips-elf/mode-change-error-1.d: Likewise.
	* testsuite/ld-mips-elf/unaligned-branch.d: Likewise.
	* testsuite/ld-mips-elf/unaligned-branch-mips16.d: Likewise.
	* testsuite/ld-mips-elf/unaligned-branch-micromips.d: Likewise.
	* testsuite/ld-mips-elf/unaligned-branch-r6-1.d: Likewise.
	* testsuite/ld-mips-elf/unaligned-branch-2.d: Likewise.
	* testsuite/ld-mips-elf/unaligned-branch-r6-2.d: Likewise.
	* testsuite/ld-mips-elf/unaligned-branch-ignore-2.d: Likewise.
	* testsuite/ld-mips-elf/unaligned-branch-ignore-mips16.d:
	Likewise.
	* testsuite/ld-mips-elf/unaligned-branch-ignore-micromips.d:
	Likewise.
	* testsuite/ld-mips-elf/unaligned-branch-ignore-r6-1.d:
	Likewise.
	* testsuite/ld-mips-elf/unaligned-jalx-addend-1.d: Likewise.
	* testsuite/ld-mips-elf/unaligned-jalx-addend-mips16-1.d:
	Likewise.
	* testsuite/ld-mips-elf/unaligned-jalx-addend-micromips-1.d:
	Likewise.
	* testsuite/ld-mips-elf/unaligned-jalx-addend-3.d: Likewise.
	* testsuite/ld-mips-elf/unaligned-jump.d: Likewise.
	* testsuite/ld-mips-elf/unaligned-jump-mips16.d: Likewise.
	* testsuite/ld-mips-elf/unaligned-jump-micromips.d: Likewise.
	* testsuite/ld-mips-elf/unaligned-lwpc-1.d: Likewise.
	* testsuite/ld-mips-elf/unaligned-ldpc-1.d: Likewise.
	* testsuite/ld-powerpc/tocopt.out: Likewise.
	* testsuite/ld-powerpc/tocopt7.out: Likewise.
2017-02-15 13:41:51 +00:00
..
config Run more ld tests when not native 2017-01-02 23:48:08 +10:30
ld-aarch64 Fix AArch64 relocation handling in ILP32 mode. 2017-01-23 17:07:13 +00:00
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 LD: vfinfo: Make clever formatters consistent WRT function name reporting 2017-02-15 13:41:51 +00:00
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 [ld, testsuite] Don't print to stdout for "readelf -w" to avoid buffer overflow 2017-02-06 15:25:18 +00:00
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 LD: vfinfo: Make clever formatters consistent WRT function name reporting 2017-02-15 13:41:51 +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 [ld, testsuite] Always assemble those intermeidate .o files used later 2017-01-24 09:33:00 +00:00
ld-powerpc LD: vfinfo: Make clever formatters consistent WRT function name reporting 2017-02-15 13:41:51 +00:00
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 Use Windows style directory separators when running sysroot tests under MinGW and Cygwin. 2017-02-15 09:13:56 +00:00
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 [ld, testsuite] Append $board_cflags in one more place in ld-unique/unique.exp 2017-02-01 12:57:25 +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 LD/testsuite: ld-lib.exp: Fix a typo, s/regexp/regex/ 2017-02-02 22:30:55 +00:00
ChangeLog-2004
ChangeLog-2005
ChangeLog-2006
ChangeLog-2007
ChangeLog-2008
ChangeLog-2009
ChangeLog-2010
ChangeLog-2011
ChangeLog-2012
ChangeLog-2013
ChangeLog-2014
ChangeLog-2015
ChangeLog-9303