diff options
Diffstat (limited to 'binutils-2.25/gold/testsuite/Makefile.am')
-rw-r--r-- | binutils-2.25/gold/testsuite/Makefile.am | 141 |
1 files changed, 137 insertions, 4 deletions
diff --git a/binutils-2.25/gold/testsuite/Makefile.am b/binutils-2.25/gold/testsuite/Makefile.am index 0d40e3ff..35cd0139 100644 --- a/binutils-2.25/gold/testsuite/Makefile.am +++ b/binutils-2.25/gold/testsuite/Makefile.am @@ -19,18 +19,25 @@ AM_CPPFLAGS = \ -DLOCALEDIR="\"$(datadir)/locale\"" \ @INCINTL@ +# Some versions of GCC now automatically enable linker plugins, +# but we want to run our tests without GCC's plugins. +if HAVE_NO_USE_LINKER_PLUGIN +OPT_NO_PLUGINS = -fno-use-linker-plugin +endif + # COMPILE1, LINK1, CXXCOMPILE1, CXXLINK1 are renamed from COMPILE, LINK, # CXXCOMPILE and CXXLINK generated by automake 1.11.1. FIXME: they should # be updated if they are different from automake used by gold. COMPILE1 = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LINK1 = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +LINK1 = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(OPT_NO_PLUGINS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ CXXCOMPILE1 = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -CXXLINK1 = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ - -o $@ +CXXLINK1 = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(OPT_NO_PLUGINS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ -# Strip out -Wp,-D_FORTIFY_SOURCE=, which is rrelevant for the gold +# Strip out -Wp,-D_FORTIFY_SOURCE=, which is irrelevant for the gold # testsuite and incompatible with -O0 used in gold tests, from # COMPILE, LINK, CXXCOMPILE and CXXLINK. COMPILE = `echo $(COMPILE1) | sed -e 's/-Wp,-D_FORTIFY_SOURCE=[0-9[0-9]]*//'` @@ -203,6 +210,16 @@ pr14265: pr14265.o pr14265.stdout: pr14265 $(TEST_NM) --format=bsd --numeric-sort $< > $@ +check_SCRIPTS += gc_dynamic_list_test.sh +check_DATA += gc_dynamic_list_test.stdout +MOSTLYCLEANFILES += gc_dynamic_list_test +gc_dynamic_list_test.o: gc_dynamic_list_test.c + $(COMPILE) -c -ffunction-sections -o $@ $< +gc_dynamic_list_test: gc_dynamic_list_test.o gcctestdir/ld $(srcdir)/gc_dynamic_list_test.t + $(LINK) -Bgcctestdir/ -Wl,--gc-sections -Wl,--dynamic-list,$(srcdir)/gc_dynamic_list_test.t gc_dynamic_list_test.o +gc_dynamic_list_test.stdout: gc_dynamic_list_test + $(TEST_NM) gc_dynamic_list_test > $@ + check_SCRIPTS += icf_test.sh check_DATA += icf_test.map MOSTLYCLEANFILES += icf_test icf_test.map @@ -500,6 +517,16 @@ two_file_pie_test: two_file_test_1_pie.o two_file_test_1b_pie.o \ two_file_test_2_pie.o two_file_test_main_pie.o gcctestdir/ld $(CXXLINK) -Bgcctestdir/ -pie two_file_test_1_pie.o two_file_test_1b_pie.o two_file_test_2_pie.o two_file_test_main_pie.o +check_PROGRAMS += pie_copyrelocs_test +pie_copyrelocs_test_SOURCES = pie_copyrelocs_test.cc +pie_copyrelocs_test_DEPENDENCIES = gcctestdir/ld pie_copyrelocs_shared_test.so +pie_copyrelocs_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,. -pie +pie_copyrelocs_test_LDADD = pie_copyrelocs_shared_test.so +pie_copyrelocs_shared_test.o: pie_copyrelocs_shared_test.cc + $(CXXCOMPILE) -O2 -fpic -c -o $@ $< +pie_copyrelocs_shared_test.so: pie_copyrelocs_shared_test.o gcctestdir/ld + $(CXXLINK) -Bgcctestdir/ -shared pie_copyrelocs_shared_test.o + check_SCRIPTS += two_file_shared.sh check_DATA += two_file_shared.dbg MOSTLYCLEANFILES += two_file_shared.dbg @@ -700,6 +727,18 @@ alt/weak_undef_lib.so: weak_undef_file2.o test -d alt || mkdir -p alt $(CXXLINK) -Bgcctestdir/ -shared weak_undef_file2.o +check_PROGRAMS += weak_undef_test_2 +weak_undef_test_2_SOURCES = weak_undef_test_2.cc +weak_undef_test_2_DEPENDENCIES = gcctestdir/ld libweak_undef_2.a +weak_undef_test_2_LDFLAGS = -Bgcctestdir/ -u weak_undef_2 +weak_undef_test_2_LDADD = -L . -lweak_undef_2 +libweak_undef_2.a: weak_undef_file3.o weak_undef_file4.o + $(TEST_AR) rc $@ $^ +weak_undef_file3.o: weak_undef_file3.cc + $(CXXCOMPILE) -c -o $@ $< +weak_undef_file4.o: weak_undef_file4.cc + $(CXXCOMPILE) -c -o $@ $< + if FN_PTRS_IN_SO_WITHOUT_PIC check_PROGRAMS += weak_undef_nonpic_test MOSTLYCLEANFILES += alt/weak_undef_lib_nonpic.so @@ -1465,6 +1504,22 @@ dynamic_list: basic_test.o gcctestdir/ld $(srcdir)/dynamic_list.t dynamic_list.stdout: dynamic_list $(TEST_READELF) -W --dyn-syms dynamic_list > dynamic_list.stdout +check_PROGRAMS += dynamic_list_2 +dynamic_list_2_SOURCES = dynamic_list_2.cc +dynamic_list_2_DEPENDENCIES = gcctestdir/ld dynamic_list_lib1.so dynamic_list_lib2.so +dynamic_list_2_LDFLAGS = -Bgcctestdir/ -L. -Wl,-R,. -Wl,--no-as-needed +dynamic_list_2_LDADD = dynamic_list_lib1.so dynamic_list_lib2.so + +dynamic_list_lib1.so: gcctestdir/ld dynamic_list_lib1.o + $(CXXLINK) -Bgcctestdir/ -shared dynamic_list_lib1.o +dynamic_list_lib1.o: dynamic_list_lib1.cc + $(CXXCOMPILE) -c -fpic -o $@ $< + +dynamic_list_lib2.so: gcctestdir/ld dynamic_list_lib2.o $(srcdir)/dynamic_list_2.t + $(CXXLINK) -Bgcctestdir/ -shared -Wl,--dynamic-list,$(srcdir)/dynamic_list_2.t dynamic_list_lib2.o +dynamic_list_lib2.o: dynamic_list_lib2.cc + $(CXXCOMPILE) -c -fpic -o $@ $< + check_PROGRAMS += thin_archive_test_1 MOSTLYCLEANFILES += libthin1.a libthin3.a libthinall.a \ alt/thin_archive_test_2.o alt/thin_archive_test_4.o \ @@ -1602,6 +1657,17 @@ MOSTLYCLEANFILES += two_file_test_1c.o two_file_test_1c.o: two_file_test_1.o cp two_file_test_1.o $@ +check_PROGRAMS += plugin_test_10 +check_SCRIPTS += plugin_test_10.sh +check_DATA += plugin_test_10.sections +MOSTLYCLEANFILES += plugin_test_10.sections +plugin_test_10: plugin_common_test_1.syms plugin_common_test_2.o gcctestdir/ld plugin_test.so + $(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle,--plugin,"./plugin_test.so" plugin_common_test_1.syms plugin_common_test_2.o +plugin_test_10.sections: plugin_test_10 + $(TEST_READELF) -SW $< >$@ 2>/dev/null + + + plugin_test.so: plugin_test.o $(LINK) -Bgcctestdir/ -shared plugin_test.o plugin_test.o: plugin_test.c @@ -2154,6 +2220,61 @@ gdb_index_test_4.stdout: gdb_index_test_4 endif HAVE_PUBNAMES +# Test that __ehdr_start is defined correctly. +check_PROGRAMS += ehdr_start_test_1 +ehdr_start_test_1_SOURCES = ehdr_start_test.cc +ehdr_start_test_1_DEPENDENCIES = gcctestdir/ld +ehdr_start_test_1_CXXFLAGS = +ehdr_start_test_1_LDFLAGS = -Bgcctestdir/ +ehdr_start_test_1_LDADD = + +# Test that __ehdr_start is defined correctly with a weak reference. +check_PROGRAMS += ehdr_start_test_2 +ehdr_start_test_2_SOURCES = ehdr_start_test.cc +ehdr_start_test_2_DEPENDENCIES = gcctestdir/ld +ehdr_start_test_2_CXXFLAGS = -DEHDR_START_WEAK +ehdr_start_test_2_LDFLAGS = -Bgcctestdir/ +ehdr_start_test_2_LDADD = + +# Test that __ehdr_start is defined correctly when used with a linker script. +check_PROGRAMS += ehdr_start_test_3 +ehdr_start_test_3_SOURCES = ehdr_start_test.cc +ehdr_start_test_3_DEPENDENCIES = gcctestdir/ld $(srcdir)/ehdr_start_test.t +ehdr_start_test_3_CXXFLAGS = -DEHDR_START_WEAK +ehdr_start_test_3_LDFLAGS = -Bgcctestdir/ -Wl,-T,$(srcdir)/ehdr_start_test.t +ehdr_start_test_3_LDADD = + +# Test that __ehdr_start is left undefined when the text segment is not +# appropriately aligned. +check_SCRIPTS += ehdr_start_test_4.sh +check_DATA += ehdr_start_test_4.syms +MOSTLYCLEANFILES += ehdr_start_test_4 +ehdr_start_test_4.syms: ehdr_start_test_4 + $(TEST_NM) ehdr_start_test_4 > $@ +ehdr_start_test_4: ehdr_start_test_4.o gcctestdir/ld + $(CXXLINK) -Bgcctestdir/ -Wl,-Ttext=0x100100 $< +ehdr_start_test_4.o: ehdr_start_test.cc + $(CXXCOMPILE) -c -DEHDR_START_WEAK -o $@ $< + +# Test that __ehdr_start is not overridden when supplied by the user. +check_PROGRAMS += ehdr_start_test_5 +ehdr_start_test_5_SOURCES = ehdr_start_test.cc ehdr_start_def.cc +ehdr_start_test_5_DEPENDENCIES = gcctestdir/ld +ehdr_start_test_5_CXXFLAGS = -DEHDR_START_USER_DEF +ehdr_start_test_5_LDFLAGS = -Bgcctestdir/ +ehdr_start_test_5_LDADD = + +# Test that the --defsym option copies the symbol type and visibility. +check_SCRIPTS += defsym_test.sh +check_DATA += defsym_test.syms +MOSTLYCLEANFILES += defsym_test.syms +defsym_test.syms: defsym_test + $(TEST_READELF) -sW $< > $@ +defsym_test: defsym_test.o gcctestdir/ld + $(LINK) -Bgcctestdir/ -Wl,--defsym=bar=foo defsym_test.o +defsym_test.o: defsym_test.c + $(COMPILE) -c -o $@ $< + # End-to-end incremental linking tests. # Incremental linking is currently supported only on the x86_64 target. @@ -2256,6 +2377,18 @@ incremental_comdat_test_1: incr_comdat_test_1.o incr_comdat_test_2_v1.o incr_com endif DEFAULT_TARGET_X86_64 +if DEFAULT_TARGET_X86_64 +check_PROGRAMS += exception_x86_64_bnd_test +exception_x86_64_bnd_test_SOURCES = exception_test_main.cc +exception_x86_64_bnd_test_DEPENDENCIES = gcctestdir/ld exception_x86_64_bnd_1.o exception_x86_64_bnd_2.o +exception_x86_64_bnd_test_LDFLAGS = $(exception_test_LDFLAGS) +exception_x86_64_bnd_test_LDADD = exception_x86_64_bnd_1.o exception_x86_64_bnd_2.o +exception_x86_64_bnd_1.o: exception_test_1.cc gcctestdir/as + $(CXXCOMPILE) -c -fpic -Bgcctestdir/ -Wa,-madd-bnd-prefix -o $@ $< +exception_x86_64_bnd_2.o: exception_test_2.cc gcctestdir/as + $(CXXCOMPILE) -c -Bgcctestdir/ -Wa,-madd-bnd-prefix -o $@ $< +endif DEFAULT_TARGET_X86_64 + endif GCC endif NATIVE_LINKER |