mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-25 19:14:52 +08:00
From Cary Coutant: Fix a case in which code takes the address of a
function and also calls it directly.
This commit is contained in:
parent
59a016f09f
commit
03e8f2b225
@ -1089,7 +1089,7 @@ Target_i386::Scan::global(const General_options& options,
|
||||
// taking the address of a function. In that case we need to
|
||||
// set the entry in the dynamic symbol table to the address of
|
||||
// the PLT entry.
|
||||
if (gsym->is_from_dynobj())
|
||||
if (gsym->is_from_dynobj() && !parameters->output_is_shared())
|
||||
gsym->set_needs_dynsym_value();
|
||||
}
|
||||
// Make a dynamic relocation if necessary.
|
||||
|
@ -118,6 +118,7 @@ check_PROGRAMS += two_file_static_test
|
||||
check_PROGRAMS += two_file_pic_test
|
||||
two_file_test_SOURCES = \
|
||||
two_file_test_1.cc \
|
||||
two_file_test_1b.cc \
|
||||
two_file_test_2.cc \
|
||||
two_file_test_main.cc \
|
||||
two_file_test.h
|
||||
@ -130,9 +131,9 @@ two_file_static_test_LDFLAGS = $(two_file_test_LDFLAGS) -static
|
||||
|
||||
two_file_pic_test_SOURCES = two_file_test_main.cc
|
||||
two_file_pic_test_DEPENDENCIES = \
|
||||
gcctestdir/ld two_file_test_1_pic.o two_file_test_2_pic.o
|
||||
gcctestdir/ld two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2_pic.o
|
||||
two_file_pic_test_LDFLAGS = -Bgcctestdir/
|
||||
two_file_pic_test_LDADD = two_file_test_1_pic.o two_file_test_2_pic.o
|
||||
two_file_pic_test_LDADD = two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2_pic.o
|
||||
|
||||
|
||||
check_PROGRAMS += two_file_shared_1_test
|
||||
@ -140,37 +141,36 @@ check_PROGRAMS += two_file_shared_2_test
|
||||
check_PROGRAMS += two_file_shared_1_pic_2_test
|
||||
check_PROGRAMS += two_file_shared_2_pic_1_test
|
||||
check_PROGRAMS += two_file_same_shared_test
|
||||
check_PROGRAMS += two_file_mixed_shared_test
|
||||
check_PROGRAMS += two_file_separate_shared_12_test
|
||||
check_PROGRAMS += two_file_separate_shared_21_test
|
||||
two_file_test_1_pic.o: two_file_test_1.cc
|
||||
$(CXXCOMPILE) -c -fpic -o $@ $<
|
||||
two_file_test_1b_pic.o: two_file_test_1b.cc
|
||||
$(CXXCOMPILE) -c -fpic -o $@ $<
|
||||
two_file_test_2_pic.o: two_file_test_2.cc
|
||||
$(CXXCOMPILE) -c -fpic -o $@ $<
|
||||
two_file_shared_1.so: two_file_test_1_pic.o gcctestdir/ld
|
||||
$(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o
|
||||
two_file_shared_1.so: two_file_test_1_pic.o two_file_test_1b_pic.o gcctestdir/ld
|
||||
$(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o two_file_test_1b_pic.o
|
||||
two_file_shared_2.so: two_file_test_2_pic.o gcctestdir/ld
|
||||
$(CXXLINK) -Bgcctestdir/ -shared two_file_test_2_pic.o
|
||||
two_file_shared.so: two_file_test_1_pic.o two_file_test_2_pic.o gcctestdir/ld
|
||||
$(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o two_file_test_2_pic.o
|
||||
two_file_shared_mixed.so: two_file_test_1_pic.o two_file_test_2.o gcctestdir/ld
|
||||
$(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o two_file_test_2.o
|
||||
two_file_shared.so: two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2_pic.o gcctestdir/ld
|
||||
$(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2_pic.o
|
||||
|
||||
two_file_shared_1_test_SOURCES = two_file_test_2.cc two_file_test_main.cc
|
||||
two_file_shared_1_test_DEPENDENCIES = gcctestdir/ld two_file_shared_1.so
|
||||
two_file_shared_1_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
|
||||
two_file_shared_1_test_LDADD = two_file_shared_1.so
|
||||
|
||||
two_file_shared_2_test_SOURCES = two_file_test_1.cc two_file_test_main.cc
|
||||
two_file_shared_2_test_SOURCES = two_file_test_1.cc two_file_test_1b.cc two_file_test_main.cc
|
||||
two_file_shared_2_test_DEPENDENCIES = gcctestdir/ld two_file_shared_2.so
|
||||
two_file_shared_2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
|
||||
two_file_shared_2_test_LDADD = two_file_shared_2.so
|
||||
|
||||
two_file_shared_1_pic_2_test_SOURCES = two_file_test_main.cc
|
||||
two_file_shared_1_pic_2_test_DEPENDENCIES = \
|
||||
gcctestdir/ld two_file_shared_1.so two_file_test_1_pic.o
|
||||
gcctestdir/ld two_file_shared_1.so two_file_test_1_pic.o two_file_test_1b_pic.o
|
||||
two_file_shared_1_pic_2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
|
||||
two_file_shared_1_pic_2_test_LDADD = two_file_test_1_pic.o two_file_shared_2.so
|
||||
two_file_shared_1_pic_2_test_LDADD = two_file_test_1_pic.o two_file_test_1b_pic.o two_file_shared_2.so
|
||||
|
||||
two_file_shared_2_pic_1_test_SOURCES = two_file_test_main.cc
|
||||
two_file_shared_2_pic_1_test_DEPENDENCIES = \
|
||||
@ -183,11 +183,6 @@ two_file_same_shared_test_DEPENDENCIES = gcctestdir/ld two_file_shared.so
|
||||
two_file_same_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
|
||||
two_file_same_shared_test_LDADD = two_file_shared.so
|
||||
|
||||
two_file_mixed_shared_test_SOURCES = two_file_test_main.cc
|
||||
two_file_mixed_shared_test_DEPENDENCIES = gcctestdir/ld two_file_shared_mixed.so
|
||||
two_file_mixed_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
|
||||
two_file_mixed_shared_test_LDADD = two_file_shared_mixed.so
|
||||
|
||||
two_file_separate_shared_12_test_SOURCES = two_file_test_main.cc
|
||||
two_file_separate_shared_12_test_DEPENDENCIES = \
|
||||
gcctestdir/ld two_file_shared_1.so two_file_shared_2.so
|
||||
@ -211,12 +206,18 @@ check_PROGRAMS += two_file_shared_2_nonpic_test
|
||||
check_PROGRAMS += two_file_same_shared_nonpic_test
|
||||
check_PROGRAMS += two_file_separate_shared_12_nonpic_test
|
||||
check_PROGRAMS += two_file_separate_shared_21_nonpic_test
|
||||
check_PROGRAMS += two_file_mixed_shared_test
|
||||
check_PROGRAMS += two_file_mixed_2_shared_test
|
||||
two_file_shared_1_nonpic.so: two_file_test_1.o gcctestdir/ld
|
||||
$(CXXLINK) -Bgcctestdir/ -shared two_file_test_1.o
|
||||
$(CXXLINK) -Bgcctestdir/ -shared two_file_test_1.o two_file_test_1b.o
|
||||
two_file_shared_2_nonpic.so: two_file_test_2.o gcctestdir/ld
|
||||
$(CXXLINK) -Bgcctestdir/ -shared two_file_test_2.o
|
||||
two_file_shared_nonpic.so: two_file_test_1.o two_file_test_2.o gcctestdir/ld
|
||||
$(CXXLINK) -Bgcctestdir/ -shared two_file_test_1.o two_file_test_2.o
|
||||
two_file_shared_nonpic.so: two_file_test_1.o two_file_test_1b.o two_file_test_2.o gcctestdir/ld
|
||||
$(CXXLINK) -Bgcctestdir/ -shared two_file_test_1.o two_file_test_1b.o two_file_test_2.o
|
||||
two_file_shared_mixed.so: two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2.o gcctestdir/ld
|
||||
$(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2.o
|
||||
two_file_shared_mixed_1.so: two_file_test_1.o two_file_test_1b_pic.o two_file_shared_2.so gcctestdir/ld
|
||||
$(CXXLINK) -Bgcctestdir/ -shared two_file_test_1.o two_file_test_1b_pic.o two_file_shared_2.so
|
||||
|
||||
two_file_shared_1_nonpic_test_SOURCES = \
|
||||
two_file_test_2.cc two_file_test_main.cc
|
||||
@ -226,7 +227,7 @@ two_file_shared_1_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
|
||||
two_file_shared_1_nonpic_test_LDADD = two_file_shared_1_nonpic.so
|
||||
|
||||
two_file_shared_2_nonpic_test_SOURCES = \
|
||||
two_file_test_1.cc two_file_test_main.cc
|
||||
two_file_test_1.cc two_file_test_1b.cc two_file_test_main.cc
|
||||
two_file_shared_2_nonpic_test_DEPENDENCIES = \
|
||||
gcctestdir/ld two_file_shared_2_nonpic.so
|
||||
two_file_shared_2_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
|
||||
@ -252,6 +253,16 @@ two_file_separate_shared_21_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
|
||||
two_file_separate_shared_21_nonpic_test_LDADD = \
|
||||
two_file_shared_2_nonpic.so two_file_shared_1_nonpic.so
|
||||
|
||||
two_file_mixed_shared_test_SOURCES = two_file_test_main.cc
|
||||
two_file_mixed_shared_test_DEPENDENCIES = gcctestdir/ld two_file_shared_mixed.so
|
||||
two_file_mixed_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
|
||||
two_file_mixed_shared_test_LDADD = two_file_shared_mixed.so
|
||||
|
||||
two_file_mixed_2_shared_test_SOURCES = two_file_test_main.cc
|
||||
two_file_mixed_2_shared_test_DEPENDENCIES = gcctestdir/ld two_file_shared_mixed_1.so two_file_shared_2.so
|
||||
two_file_mixed_2_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
|
||||
two_file_mixed_2_shared_test_LDADD = two_file_shared_mixed_1.so two_file_shared_2.so
|
||||
|
||||
endif FN_PTRS_IN_SO_WITHOUT_PIC
|
||||
|
||||
|
||||
|
@ -58,7 +58,6 @@ check_PROGRAMS = object_unittest$(EXEEXT) $(am__EXEEXT_1) \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_shared_1_pic_2_test \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_shared_2_pic_1_test \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_same_shared_test \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_mixed_shared_test \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_separate_shared_12_test \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_separate_shared_21_test
|
||||
@GCC_FALSE@constructor_test_DEPENDENCIES = libgoldtest.a ../libgold.a \
|
||||
@ -98,7 +97,9 @@ check_PROGRAMS = object_unittest$(EXEEXT) $(am__EXEEXT_1) \
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_shared_2_nonpic_test \
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_same_shared_nonpic_test \
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_separate_shared_12_nonpic_test \
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_separate_shared_21_nonpic_test
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_separate_shared_21_nonpic_test \
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_mixed_shared_test \
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_mixed_2_shared_test
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_3 = exception_test \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ exception_static_test \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ exception_shared_1_test \
|
||||
@ -218,14 +219,15 @@ libgoldtest_a_OBJECTS = $(am_libgoldtest_a_OBJECTS)
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_shared_1_pic_2_test$(EXEEXT) \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_shared_2_pic_1_test$(EXEEXT) \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_same_shared_test$(EXEEXT) \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_mixed_shared_test$(EXEEXT) \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_separate_shared_12_test$(EXEEXT) \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_separate_shared_21_test$(EXEEXT)
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@am__EXEEXT_2 = two_file_shared_1_nonpic_test$(EXEEXT) \
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_shared_2_nonpic_test$(EXEEXT) \
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_same_shared_nonpic_test$(EXEEXT) \
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_separate_shared_12_nonpic_test$(EXEEXT) \
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_separate_shared_21_nonpic_test$(EXEEXT)
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_separate_shared_21_nonpic_test$(EXEEXT) \
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_mixed_shared_test$(EXEEXT) \
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_mixed_2_shared_test$(EXEEXT)
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@am__EXEEXT_3 = exception_test$(EXEEXT) \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ exception_static_test$(EXEEXT) \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ exception_shared_1_test$(EXEEXT) \
|
||||
@ -401,9 +403,12 @@ am__tls_test_SOURCES_DIST = tls_test.cc tls_test_file2.cc \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@ tls_test_file2.$(OBJEXT) \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@ tls_test_main.$(OBJEXT)
|
||||
tls_test_OBJECTS = $(am_tls_test_OBJECTS)
|
||||
am__two_file_mixed_2_shared_test_SOURCES_DIST = two_file_test_main.cc
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@am_two_file_mixed_2_shared_test_OBJECTS = two_file_test_main.$(OBJEXT)
|
||||
two_file_mixed_2_shared_test_OBJECTS = \
|
||||
$(am_two_file_mixed_2_shared_test_OBJECTS)
|
||||
am__two_file_mixed_shared_test_SOURCES_DIST = two_file_test_main.cc
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@am_two_file_mixed_shared_test_OBJECTS = \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_test_main.$(OBJEXT)
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@am_two_file_mixed_shared_test_OBJECTS = two_file_test_main.$(OBJEXT)
|
||||
two_file_mixed_shared_test_OBJECTS = \
|
||||
$(am_two_file_mixed_shared_test_OBJECTS)
|
||||
am__two_file_pic_test_SOURCES_DIST = two_file_test_main.cc
|
||||
@ -460,8 +465,9 @@ am__two_file_shared_1_test_SOURCES_DIST = two_file_test_2.cc \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_test_main.$(OBJEXT)
|
||||
two_file_shared_1_test_OBJECTS = $(am_two_file_shared_1_test_OBJECTS)
|
||||
am__two_file_shared_2_nonpic_test_SOURCES_DIST = two_file_test_1.cc \
|
||||
two_file_test_main.cc
|
||||
two_file_test_1b.cc two_file_test_main.cc
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@am_two_file_shared_2_nonpic_test_OBJECTS = two_file_test_1.$(OBJEXT) \
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_test_1b.$(OBJEXT) \
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_test_main.$(OBJEXT)
|
||||
two_file_shared_2_nonpic_test_OBJECTS = \
|
||||
$(am_two_file_shared_2_nonpic_test_OBJECTS)
|
||||
@ -471,25 +477,30 @@ am__two_file_shared_2_pic_1_test_SOURCES_DIST = two_file_test_main.cc
|
||||
two_file_shared_2_pic_1_test_OBJECTS = \
|
||||
$(am_two_file_shared_2_pic_1_test_OBJECTS)
|
||||
am__two_file_shared_2_test_SOURCES_DIST = two_file_test_1.cc \
|
||||
two_file_test_main.cc
|
||||
two_file_test_1b.cc two_file_test_main.cc
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@am_two_file_shared_2_test_OBJECTS = \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_test_1.$(OBJEXT) \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_test_1b.$(OBJEXT) \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_test_main.$(OBJEXT)
|
||||
two_file_shared_2_test_OBJECTS = $(am_two_file_shared_2_test_OBJECTS)
|
||||
am__two_file_static_test_SOURCES_DIST = two_file_test_1.cc \
|
||||
two_file_test_2.cc two_file_test_main.cc two_file_test.h
|
||||
two_file_test_1b.cc two_file_test_2.cc two_file_test_main.cc \
|
||||
two_file_test.h
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@am__objects_5 = \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_test_1.$(OBJEXT) \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_test_1b.$(OBJEXT) \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_test_2.$(OBJEXT) \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_test_main.$(OBJEXT)
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@am_two_file_static_test_OBJECTS = \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(am__objects_5)
|
||||
two_file_static_test_OBJECTS = $(am_two_file_static_test_OBJECTS)
|
||||
two_file_static_test_LDADD = $(LDADD)
|
||||
am__two_file_test_SOURCES_DIST = two_file_test_1.cc two_file_test_2.cc \
|
||||
two_file_test_main.cc two_file_test.h
|
||||
am__two_file_test_SOURCES_DIST = two_file_test_1.cc \
|
||||
two_file_test_1b.cc two_file_test_2.cc two_file_test_main.cc \
|
||||
two_file_test.h
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@am_two_file_test_OBJECTS = \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_test_1.$(OBJEXT) \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_test_1b.$(OBJEXT) \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_test_2.$(OBJEXT) \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_test_main.$(OBJEXT)
|
||||
two_file_test_OBJECTS = $(am_two_file_test_OBJECTS)
|
||||
@ -530,7 +541,8 @@ SOURCES = $(libgoldtest_a_SOURCES) basic_pic_test.c \
|
||||
$(tls_pic_test_SOURCES) $(tls_shared_ie_test_SOURCES) \
|
||||
$(tls_shared_nonpic_test_SOURCES) $(tls_shared_test_SOURCES) \
|
||||
$(tls_static_pic_test_SOURCES) $(tls_static_test_SOURCES) \
|
||||
$(tls_test_SOURCES) $(two_file_mixed_shared_test_SOURCES) \
|
||||
$(tls_test_SOURCES) $(two_file_mixed_2_shared_test_SOURCES) \
|
||||
$(two_file_mixed_shared_test_SOURCES) \
|
||||
$(two_file_pic_test_SOURCES) \
|
||||
$(two_file_same_shared_nonpic_test_SOURCES) \
|
||||
$(two_file_same_shared_test_SOURCES) \
|
||||
@ -567,6 +579,7 @@ DIST_SOURCES = $(libgoldtest_a_SOURCES) basic_pic_test.c \
|
||||
$(am__tls_static_pic_test_SOURCES_DIST) \
|
||||
$(am__tls_static_test_SOURCES_DIST) \
|
||||
$(am__tls_test_SOURCES_DIST) \
|
||||
$(am__two_file_mixed_2_shared_test_SOURCES_DIST) \
|
||||
$(am__two_file_mixed_shared_test_SOURCES_DIST) \
|
||||
$(am__two_file_pic_test_SOURCES_DIST) \
|
||||
$(am__two_file_same_shared_nonpic_test_SOURCES_DIST) \
|
||||
@ -766,6 +779,7 @@ object_unittest_SOURCES = object_unittest.cc
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@constructor_static_test_LDFLAGS = $(constructor_test_LDFLAGS) -static
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_test_SOURCES = \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_test_1.cc \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_test_1b.cc \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_test_2.cc \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_test_main.cc \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_test.h
|
||||
@ -777,24 +791,24 @@ object_unittest_SOURCES = object_unittest.cc
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_static_test_LDFLAGS = $(two_file_test_LDFLAGS) -static
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_pic_test_SOURCES = two_file_test_main.cc
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_pic_test_DEPENDENCIES = \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ gcctestdir/ld two_file_test_1_pic.o two_file_test_2_pic.o
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ gcctestdir/ld two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2_pic.o
|
||||
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_pic_test_LDFLAGS = -Bgcctestdir/
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_pic_test_LDADD = two_file_test_1_pic.o two_file_test_2_pic.o
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_pic_test_LDADD = two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2_pic.o
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_1_test_SOURCES = two_file_test_2.cc two_file_test_main.cc
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_1_test_DEPENDENCIES = gcctestdir/ld two_file_shared_1.so
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_1_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_1_test_LDADD = two_file_shared_1.so
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_2_test_SOURCES = two_file_test_1.cc two_file_test_main.cc
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_2_test_SOURCES = two_file_test_1.cc two_file_test_1b.cc two_file_test_main.cc
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_2_test_DEPENDENCIES = gcctestdir/ld two_file_shared_2.so
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_2_test_LDADD = two_file_shared_2.so
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_1_pic_2_test_SOURCES = two_file_test_main.cc
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_1_pic_2_test_DEPENDENCIES = \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ gcctestdir/ld two_file_shared_1.so two_file_test_1_pic.o
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ gcctestdir/ld two_file_shared_1.so two_file_test_1_pic.o two_file_test_1b_pic.o
|
||||
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_1_pic_2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_1_pic_2_test_LDADD = two_file_test_1_pic.o two_file_shared_2.so
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_1_pic_2_test_LDADD = two_file_test_1_pic.o two_file_test_1b_pic.o two_file_shared_2.so
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_2_pic_1_test_SOURCES = two_file_test_main.cc
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_2_pic_1_test_DEPENDENCIES = \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ gcctestdir/ld two_file_shared_2.so two_file_test_2_pic.o
|
||||
@ -805,10 +819,6 @@ object_unittest_SOURCES = object_unittest.cc
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_same_shared_test_DEPENDENCIES = gcctestdir/ld two_file_shared.so
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_same_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_same_shared_test_LDADD = two_file_shared.so
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_mixed_shared_test_SOURCES = two_file_test_main.cc
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_mixed_shared_test_DEPENDENCIES = gcctestdir/ld two_file_shared_mixed.so
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_mixed_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_mixed_shared_test_LDADD = two_file_shared_mixed.so
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_separate_shared_12_test_SOURCES = two_file_test_main.cc
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_separate_shared_12_test_DEPENDENCIES = \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ gcctestdir/ld two_file_shared_1.so two_file_shared_2.so
|
||||
@ -834,7 +844,7 @@ object_unittest_SOURCES = object_unittest.cc
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_1_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_1_nonpic_test_LDADD = two_file_shared_1_nonpic.so
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_2_nonpic_test_SOURCES = \
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_test_1.cc two_file_test_main.cc
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_test_1.cc two_file_test_1b.cc two_file_test_main.cc
|
||||
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_2_nonpic_test_DEPENDENCIES = \
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ gcctestdir/ld two_file_shared_2_nonpic.so
|
||||
@ -863,6 +873,14 @@ object_unittest_SOURCES = object_unittest.cc
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_separate_shared_21_nonpic_test_LDADD = \
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ two_file_shared_2_nonpic.so two_file_shared_1_nonpic.so
|
||||
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_mixed_shared_test_SOURCES = two_file_test_main.cc
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_mixed_shared_test_DEPENDENCIES = gcctestdir/ld two_file_shared_mixed.so
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_mixed_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_mixed_shared_test_LDADD = two_file_shared_mixed.so
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_mixed_2_shared_test_SOURCES = two_file_test_main.cc
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_mixed_2_shared_test_DEPENDENCIES = gcctestdir/ld two_file_shared_mixed_1.so two_file_shared_2.so
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_mixed_2_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_mixed_2_shared_test_LDADD = two_file_shared_mixed_1.so two_file_shared_2.so
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_test_SOURCES = \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ exception_test_main.cc \
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ exception_test_1.cc \
|
||||
@ -1079,6 +1097,9 @@ tls_static_test$(EXEEXT): $(tls_static_test_OBJECTS) $(tls_static_test_DEPENDENC
|
||||
tls_test$(EXEEXT): $(tls_test_OBJECTS) $(tls_test_DEPENDENCIES)
|
||||
@rm -f tls_test$(EXEEXT)
|
||||
$(CXXLINK) $(tls_test_LDFLAGS) $(tls_test_OBJECTS) $(tls_test_LDADD) $(LIBS)
|
||||
two_file_mixed_2_shared_test$(EXEEXT): $(two_file_mixed_2_shared_test_OBJECTS) $(two_file_mixed_2_shared_test_DEPENDENCIES)
|
||||
@rm -f two_file_mixed_2_shared_test$(EXEEXT)
|
||||
$(CXXLINK) $(two_file_mixed_2_shared_test_LDFLAGS) $(two_file_mixed_2_shared_test_OBJECTS) $(two_file_mixed_2_shared_test_LDADD) $(LIBS)
|
||||
two_file_mixed_shared_test$(EXEEXT): $(two_file_mixed_shared_test_OBJECTS) $(two_file_mixed_shared_test_DEPENDENCIES)
|
||||
@rm -f two_file_mixed_shared_test$(EXEEXT)
|
||||
$(CXXLINK) $(two_file_mixed_shared_test_LDFLAGS) $(two_file_mixed_shared_test_OBJECTS) $(two_file_mixed_shared_test_LDADD) $(LIBS)
|
||||
@ -1160,6 +1181,7 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tls_test_file2.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tls_test_main.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/two_file_test_1.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/two_file_test_1b.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/two_file_test_2.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/two_file_test_main.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ver_test_main.Po@am__quote@
|
||||
@ -1475,22 +1497,26 @@ uninstall-am: uninstall-info-am
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXLINK) -Bgcctestdir/ -static basic_pic_test.o
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_test_1_pic.o: two_file_test_1.cc
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXCOMPILE) -c -fpic -o $@ $<
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_test_1b_pic.o: two_file_test_1b.cc
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXCOMPILE) -c -fpic -o $@ $<
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_test_2_pic.o: two_file_test_2.cc
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXCOMPILE) -c -fpic -o $@ $<
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_1.so: two_file_test_1_pic.o gcctestdir/ld
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_1.so: two_file_test_1_pic.o two_file_test_1b_pic.o gcctestdir/ld
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o two_file_test_1b_pic.o
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_2.so: two_file_test_2_pic.o gcctestdir/ld
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXLINK) -Bgcctestdir/ -shared two_file_test_2_pic.o
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared.so: two_file_test_1_pic.o two_file_test_2_pic.o gcctestdir/ld
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o two_file_test_2_pic.o
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_mixed.so: two_file_test_1_pic.o two_file_test_2.o gcctestdir/ld
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o two_file_test_2.o
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared.so: two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2_pic.o gcctestdir/ld
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2_pic.o
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_1_nonpic.so: two_file_test_1.o gcctestdir/ld
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1.o
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1.o two_file_test_1b.o
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_2_nonpic.so: two_file_test_2.o gcctestdir/ld
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXLINK) -Bgcctestdir/ -shared two_file_test_2.o
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_nonpic.so: two_file_test_1.o two_file_test_2.o gcctestdir/ld
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1.o two_file_test_2.o
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_nonpic.so: two_file_test_1.o two_file_test_1b.o two_file_test_2.o gcctestdir/ld
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1.o two_file_test_1b.o two_file_test_2.o
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_mixed.so: two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2.o gcctestdir/ld
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2.o
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_mixed_1.so: two_file_test_1.o two_file_test_1b_pic.o two_file_shared_2.so gcctestdir/ld
|
||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1.o two_file_test_1b_pic.o two_file_shared_2.so
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_test_1_pic.o: exception_test_1.cc
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXCOMPILE) -c -fpic -o $@ $<
|
||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_test_2_pic.o: exception_test_2.cc
|
||||
|
@ -66,3 +66,6 @@ extern const char* f14();
|
||||
|
||||
#define TEST_WIDE_STRING_CONSTANT L"test wide string constant"
|
||||
extern const wchar_t* f15();
|
||||
|
||||
extern bool t16();
|
||||
extern bool t16a();
|
||||
|
@ -45,6 +45,8 @@
|
||||
// 12 Compare address of function for equality in both files.
|
||||
// 13 Compare address of inline function for equality in both files.
|
||||
// 14 Compare string constants in file 1 and file 2.
|
||||
// 15 Compare wide string constants in file 1 and file 2.
|
||||
// 16 Call a function directly after its address has been taken.
|
||||
|
||||
#include "two_file_test.h"
|
||||
|
||||
@ -193,3 +195,11 @@ t15()
|
||||
return false;
|
||||
return *s2 == '\0';
|
||||
}
|
||||
|
||||
// 16 Call a function directly after its address has been taken.
|
||||
|
||||
bool
|
||||
t16()
|
||||
{
|
||||
return f10() == 135;
|
||||
}
|
||||
|
41
gold/testsuite/two_file_test_1b.cc
Normal file
41
gold/testsuite/two_file_test_1b.cc
Normal file
@ -0,0 +1,41 @@
|
||||
// two_file_test_1b.cc -- supplementary file for a three-file test case
|
||||
// for gold.
|
||||
|
||||
// Copyright 2008 Free Software Foundation, Inc.
|
||||
// Written by Cary Coutant <ccoutant@google.com>.
|
||||
|
||||
// This file is part of gold.
|
||||
|
||||
// This program is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation; either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
|
||||
// MA 02110-1301, USA.
|
||||
|
||||
// This file is used as part of a mixed PIC/non-PIC test.
|
||||
// Files 1 and 1b are linked together in a shared library.
|
||||
// File 1 is compiled non-PIC, and file 1a is compiled PIC.
|
||||
// File 2 is compiled PIC and linked in a second shared library.
|
||||
// This tests that a non-PIC call does not accidentally get
|
||||
// bound to a PIC PLT entry.
|
||||
|
||||
// We test the following cases.
|
||||
|
||||
#include "two_file_test.h"
|
||||
|
||||
// 16 Call a function directly after its address has been taken.
|
||||
|
||||
bool
|
||||
t16a()
|
||||
{
|
||||
return f10() == 135;
|
||||
}
|
@ -49,5 +49,7 @@ main()
|
||||
assert(t11());
|
||||
assert(t12());
|
||||
assert(t13());
|
||||
assert(t16());
|
||||
assert(t16a());
|
||||
return 0;
|
||||
}
|
||||
|
@ -1028,7 +1028,7 @@ Target_x86_64::Scan::global(const General_options& options,
|
||||
// taking the address of a function. In that case we need to
|
||||
// set the entry in the dynamic symbol table to the address of
|
||||
// the PLT entry.
|
||||
if (gsym->is_from_dynobj())
|
||||
if (gsym->is_from_dynobj() && !parameters->output_is_shared())
|
||||
gsym->set_needs_dynsym_value();
|
||||
}
|
||||
// Make a dynamic relocation if necessary.
|
||||
|
Loading…
Reference in New Issue
Block a user