binutils-gdb/ld/testsuite/ld-ifunc
Sandra Loosemore 44ed80923a Use better test for usable compiler in ld testsuite.
The ld testsuite includes numerous tests that depend on being able to
compile and link programs with the C compiler.  Some of these tests
use [which $CC] to check for the presence of the compiler before
proceeding with the test, but run_ld_link_exec_tests and run_cc_link_tests
give ERRORs if compilation fails.  Also, even if $CC is defined and present,
it may not be usable due to missing libraries, etc.

This patch adds a new procedure check_compiler_available that attempts
to build an empty program and caches the result.  Uses of [which $CC]
are replaced with calls to this procedure, and run_ld_link_exec_tests
and run_cc_link_tests now also guard attempts to use $CC.

2019-04-24  Sandra Loosemore  <sandra@codesourcery.com>

	ld/
	* testsuite/config/default.exp: Use [check_compiler_available]
	instead of [which $CC].
	* testsuite/ld-auto-import/auto-import.exp: Likewise.
	* testsuite/ld-cygwin/exe-export.exp: Likewise.
	* testsuite/ld-elf/audit.exp: Likewise.
	* testsuite/ld-elf/compress.exp: Likewise.
	* testsuite/ld-elf/dwarf.exp: Likewise.
	* testsuite/ld-elf/elf.exp: Likewise.
	* testsuite/ld-elf/indirect.exp: Likewise.
	* testsuite/ld-elf/linux-x86.exp: Likewise.
	* testsuite/ld-elf/shared.exp: Likewise.
	* testsuite/ld-elf/tls.exp: Likewise.
	* testsuite/ld-elf/wrap.exp: Likewise.
	* testsuite/ld-elfcomm/elfcomm.exp: Likewise.
	* testsuite/ld-elfvers/vers.exp: Likewise.
	* testsuite/ld-elfvsb/elfvsb.exp: Likewise.
	* testsuite/ld-elfweak/elfweak.exp: Likewise.
	* testsuite/ld-gc/gc.exp: Likewise.
	* testsuite/ld-i386/i386.exp: Likewise.
	* testsuite/ld-i386/no-plt.exp: Likewise.
	* testsuite/ld-i386/tls.exp: Likewise.
	* testsuite/ld-ifunc/ifunc.exp: Likewise.
	* testsuite/ld-mn10300/mn10300.exp: Likewise.
	* testsuite/ld-pe/pe-compile.exp: Likewise.
	* testsuite/ld-pe/pe-run.exp: Likewise.
	* testsuite/ld-pe/pe-run2.exp: Likewise.
	* testsuite/ld-pie/pie.exp: Likewise.
	* testsuite/ld-plugin/lto.exp: Likewise.
	* testsuite/ld-plugin/plugin.exp: Likewise.
	* testsuite/ld-scripts/crossref.exp: Likewise.
	* testsuite/ld-sh/sh.exp: Likewise.
	* testsuite/ld-shared/shared.exp: Likewise.
	* testsuite/ld-size/size.exp: Likewise.
	* testsuite/ld-srec/srec.exp: Likewise.
	* testsuite/ld-undefined/undefined.exp: Likewise.
	* testsuite/ld-unique/unique.exp: Likewise.
	* testsuite/ld-x86-64/mpx.exp: Likewise.
	* testsuite/ld-x86-64/no-plt.exp: Likewise.
	* testsuite/ld-x86-64/tls.exp: Likewise.
	* testsuite/ld-x86-64/x86-64.exp: Likewise.
	* testsuite/lib/ld-lib.exp (run_ld_link_exec_tests): Call
	check_compiler_available before trying to use the compiler.
	(run_cc_link_tests): Likewise.
	(check_compiler_available): New.  Use it instead of [which $CC].
2019-04-24 12:14:56 -07:00
..
binutils.exp Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
dummy.c
ifunc-1-local-x86.d i386: Update IFUNC tests for PLT address 2018-02-16 09:32:56 -08:00
ifunc-1-local-x86.map x86: Dump local IFUNC functions in the map file 2017-06-08 03:53:43 -07:00
ifunc-1-local-x86.s
ifunc-1-x86.d i386: Update IFUNC tests for PLT address 2018-02-16 09:32:56 -08:00
ifunc-1-x86.map x86: Dump local IFUNC functions in the map file 2017-06-08 03:53:43 -07:00
ifunc-1-x86.s
ifunc-2-i386-now.d Define various symbols conditionally in shared libraries 2018-06-08 20:17:34 +09:30
ifunc-2-i386.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-2-i386.s i386: Issue an error on non-PIC call to IFUNC in PIC object 2016-08-29 08:14:45 -07:00
ifunc-2-local-i386-now.d Define various symbols conditionally in shared libraries 2018-06-08 20:17:34 +09:30
ifunc-2-local-i386.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-2-local-i386.s i386: Issue an error on non-PIC call to IFUNC in PIC object 2016-08-29 08:14:45 -07:00
ifunc-2-local-x86-64-now.d Define various symbols conditionally in shared libraries 2018-06-08 20:17:34 +09:30
ifunc-2-local-x86-64.d Define various symbols conditionally in shared libraries 2018-06-08 20:17:34 +09:30
ifunc-2-local-x86-64.s
ifunc-2-x86-64-now.d Define various symbols conditionally in shared libraries 2018-06-08 20:17:34 +09:30
ifunc-2-x86-64.d Define various symbols conditionally in shared libraries 2018-06-08 20:17:34 +09:30
ifunc-2-x86-64.s
ifunc-3-x86.s
ifunc-3a-x86.d i386: Update IFUNC tests for PLT address 2018-02-16 09:32:56 -08:00
ifunc-3b-x86.d
ifunc-4-local-x86.d
ifunc-4-local-x86.s
ifunc-4-x86.d
ifunc-4-x86.s
ifunc-4a-x86.d
ifunc-5-i386.s
ifunc-5-local-i386.s
ifunc-5-local-x86-64.s
ifunc-5-x86-64.s
ifunc-5a-i386.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-5a-local-i386.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-5a-local-x86-64.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-5a-x86-64.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-5b-i386.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-5b-local-i386.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-5b-local-x86-64.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-5b-x86-64.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-5r-local-i386.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-5r-local-x86-64.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-6-i386.s
ifunc-6-x86-64.s
ifunc-6a-i386.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-6a-x86-64.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-6b-i386.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-6b-x86-64.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-7-i386.s
ifunc-7-x86-64.s
ifunc-7a-i386.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-7a-x86-64.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-7b-i386.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-7b-x86-64.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-8-i386.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-8-x86-64.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-8a-i386.s
ifunc-8a-x86-64.s
ifunc-8b-i386.s
ifunc-8b-x86-64.s
ifunc-9-i386.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-9-x86-64.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-9-x86.s
ifunc-10-i386.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-10-i386.s
ifunc-10-x86-64.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-10-x86-64.s
ifunc-11-i386.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-11-i386.s
ifunc-11-x86-64.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-11-x86-64.s
ifunc-12-i386.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-12-i386.s
ifunc-12-x86-64.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-12-x86-64.s
ifunc-13-i386.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-13-x86-64.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-13a-i386.s
ifunc-13a-x86-64.s
ifunc-13b-i386.s
ifunc-13b-x86-64.s
ifunc-14a-i386.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-14a-x86-64.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-14a.s i386: Issue an error on non-PIC call to IFUNC in PIC object 2016-08-29 08:14:45 -07:00
ifunc-14b-i386.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-14b-x86-64.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-14b.s
ifunc-14c-i386.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-14c-x86-64.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-14c.s i386: Issue an error on non-PIC call to IFUNC in PIC object 2016-08-29 08:14:45 -07:00
ifunc-14d-i386.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-14d-x86-64.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-14e-i386.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-14e-x86-64.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-14f-i386.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-14f-x86-64.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-15-i386.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-15-i386.s
ifunc-15-x86-64.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-15-x86-64.s
ifunc-16-i386-now.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-16-i386.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-16-x86-64-now.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-16-x86-64.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-16-x86.s
ifunc-17a-i386.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-17a-x86-64.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-17a.s
ifunc-17b-i386.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-17b-x86-64.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-17b.s
ifunc-18a-i386.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-18a-x86-64.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-18a.s Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
ifunc-18b-i386.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-18b-x86-64.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-18b.s
ifunc-19a-i386.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-19a-x86-64.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-19a.s
ifunc-19b-i386.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-19b-x86-64.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-19b.s
ifunc-20-i386.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-20-x86-64.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-20.s
ifunc-21-i386.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-21-i386.s Add ifunc tests for call, jmp, add, test 2015-09-03 04:03:13 -07:00
ifunc-21-x86-64.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-21-x86-64.s Add ifunc tests for call, jmp, add, test 2015-09-03 04:03:13 -07:00
ifunc-22-i386.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-22-i386.s Add ifunc tests for call, jmp, add, test 2015-09-03 04:03:13 -07:00
ifunc-22-x86-64.d ld: Skip some x86 IFUNC tests for NaCl targets 2018-05-28 08:12:50 -07:00
ifunc-22-x86-64.s Add ifunc tests for call, jmp, add, test 2015-09-03 04:03:13 -07:00
ifunc-23-x86.s Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
ifunc-23a-x86.d readelf ngettext fixes 2017-11-07 17:01:16 +10:30
ifunc-23b-x86.d readelf ngettext fixes 2017-11-07 17:01:16 +10:30
ifunc-23c-x86.d readelf ngettext fixes 2017-11-07 17:01:16 +10:30
ifunc-24-x86.s Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
ifunc-24a-x86.d readelf ngettext fixes 2017-11-07 17:01:16 +10:30
ifunc-24b-x86.d readelf ngettext fixes 2017-11-07 17:01:16 +10:30
ifunc-24c-x86.d readelf ngettext fixes 2017-11-07 17:01:16 +10:30
ifunc-25-x86.s Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
ifunc-25a-x86.d readelf ngettext fixes 2017-11-07 17:01:16 +10:30
ifunc-25b-x86.d readelf ngettext fixes 2017-11-07 17:01:16 +10:30
ifunc-25c-x86.d readelf ngettext fixes 2017-11-07 17:01:16 +10:30
ifunc-26.d ld: Unify STT_GNU_IFUNC handling 2018-05-28 08:15:21 -07:00
ifunc-26.s ld: Unify STT_GNU_IFUNC handling 2018-05-28 08:15:21 -07:00
ifunc-common-1.out
ifunc-common-1a.c
ifunc-common-1b.c
ifunc-lib.c Add ifunc-main IFUNC tests 2014-11-20 10:49:46 -08:00
ifunc-main.c Always load function pointer into a stack variable 2014-11-20 11:29:45 -08:00
ifunc-main.out Add ifunc-main IFUNC tests 2014-11-20 10:49:46 -08:00
ifunc.exp Use better test for usable compiler in ld testsuite. 2019-04-24 12:14:56 -07:00
ifuncmod5.d Fix Sparc, s390 and AArch64 targets so that they can handle relocs against ifunc symbols found in note sections. 2018-03-09 14:37:36 +00:00
ifuncmod5.s Fix Sparc, s390 and AArch64 targets so that they can handle relocs against ifunc symbols found in note sections. 2018-03-09 14:37:36 +00:00
lib.c
pass.out Handle local IFUNC symbols in shared object 2016-03-08 09:42:16 -08:00
pr16467.out
pr16467a.c
pr16467a.map
pr16467b.c PowerPC64 dot-sym testsuite fixes 2016-12-03 20:59:43 +10:30
pr16467b.map
pr16467c.c
pr17154-i386-now.d Define various symbols conditionally in shared libraries 2018-06-08 20:17:34 +09:30
pr17154-i386.d Define various symbols conditionally in shared libraries 2018-06-08 20:17:34 +09:30
pr17154-x86-64-now.d ld testsuite use of notarget 2018-07-10 23:58:29 +09:30
pr17154-x86-64.d Define various symbols conditionally in shared libraries 2018-06-08 20:17:34 +09:30
pr17154-x86.s
pr18808.out Skip IFUNC relocations in debug sections 2015-08-11 12:59:11 -07:00
pr18808a.c Skip IFUNC relocations in debug sections 2015-08-11 12:59:11 -07:00
pr18808b.c Fix compile time warning message in linker testsuite test. 2017-02-21 11:00:21 +00:00
pr18841.out Return reloc_class_ifunc for reloc against IFUNC 2015-08-18 09:50:08 -07:00
pr18841a.c Return reloc_class_ifunc for reloc against IFUNC 2015-08-18 09:50:08 -07:00
pr18841b.c Return reloc_class_ifunc for reloc against IFUNC 2015-08-18 09:50:08 -07:00
pr18841c.c Add another test for PR ld/18841 2015-08-18 10:43:47 -07:00
pr23169a.c x86; Allow IFUNC pointer defined in PDE 2018-05-14 03:55:50 -07:00
pr23169a.rd Build ifunc tests when non-native 2018-06-18 22:00:32 +09:30
pr23169b.c x86; Allow IFUNC pointer defined in PDE 2018-05-14 03:55:50 -07:00
pr23169b.rd Build ifunc tests when non-native 2018-06-18 22:00:32 +09:30
pr23169c.c x86; Allow IFUNC pointer defined in PDE 2018-05-14 03:55:50 -07:00
pr23169c.rd Build ifunc tests when non-native 2018-06-18 22:00:32 +09:30
prog.c
test-1.c
test-2.c