diff options
author | Alan Modra <amodra@gmail.com> | 2018-11-26 22:07:17 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2018-11-26 22:07:46 +1030 |
commit | 9b4e3a5e23b37b3e9ff188043630d190e9c2e55f (patch) | |
tree | ac1d41ec19886f3db86eece991ef66e1f06cf959 /gold | |
parent | [GOLD] support objdump -T display of st_other (diff) | |
download | binutils-gdb-9b4e3a5e23b37b3e9ff188043630d190e9c2e55f.tar.gz binutils-gdb-9b4e3a5e23b37b3e9ff188043630d190e9c2e55f.tar.bz2 binutils-gdb-9b4e3a5e23b37b3e9ff188043630d190e9c2e55f.zip |
[GOLD] justsyms_exec test fail on powerpc64
This test fails on powerpc64le due to the justsyms_lib being built
with exported_data at 0x2010000, apparently due to the powerpc target
code generating an empty relro .branch_lt section. Since the test
relies on the library having exported_data at 0x2000000, avoid the
problem by linking with -z norelro. Also, the test doesn't need to
avoid checking the function symbol on powerpc elfv2.
* testsuite/Makefile.am (justsyms_lib): Link with -z norelro.
* testsuite/Makefile.in: Regenerate.
* testsuite/justsyms_exec.c (main): Do check exported_func
on PowerPC64 ELFv2.
Diffstat (limited to 'gold')
-rw-r--r-- | gold/ChangeLog | 7 | ||||
-rw-r--r-- | gold/testsuite/Makefile.am | 2 | ||||
-rw-r--r-- | gold/testsuite/Makefile.in | 2 | ||||
-rw-r--r-- | gold/testsuite/justsyms_exec.c | 4 |
4 files changed, 11 insertions, 4 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog index 3bcf6a7d96f..9d10dc83eea 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,5 +1,12 @@ 2018-11-26 Alan Modra <amodra@gmail.com> + * testsuite/Makefile.am (justsyms_lib): Link with -z norelro. + * testsuite/Makefile.in: Regenerate. + * testsuite/justsyms_exec.c (main): Do check exported_func + on PowerPC64 ELFv2. + +2018-11-26 Alan Modra <amodra@gmail.com> + * testsuite/ver_test_14.sh: Accept objdump -T display of st_other bits on powerpc64le. diff --git a/gold/testsuite/Makefile.am b/gold/testsuite/Makefile.am index b70a7d5a9f7..135790b30d7 100644 --- a/gold/testsuite/Makefile.am +++ b/gold/testsuite/Makefile.am @@ -2013,7 +2013,7 @@ MOSTLYCLEANFILES += justsyms_lib justsyms_lib.o: justsyms_lib.c $(COMPILE) -c -o $@ $< justsyms_lib: justsyms_lib.o gcctestdir/ld - gcctestdir/ld -o $@ -Ttext=0x1000200 -Tdata=0x2000000 -e exported_func justsyms_lib.o + gcctestdir/ld -o $@ -z norelro -Ttext=0x1000200 -Tdata=0x2000000 -e exported_func justsyms_lib.o check_PROGRAMS += binary_test MOSTLYCLEANFILES += binary.txt diff --git a/gold/testsuite/Makefile.in b/gold/testsuite/Makefile.in index 61ea65374d6..db923943fb5 100644 --- a/gold/testsuite/Makefile.in +++ b/gold/testsuite/Makefile.in @@ -8766,7 +8766,7 @@ uninstall-am: @GCC_TRUE@@NATIVE_LINKER_TRUE@justsyms_lib.o: justsyms_lib.c @GCC_TRUE@@NATIVE_LINKER_TRUE@ $(COMPILE) -c -o $@ $< @GCC_TRUE@@NATIVE_LINKER_TRUE@justsyms_lib: justsyms_lib.o gcctestdir/ld -@GCC_TRUE@@NATIVE_LINKER_TRUE@ gcctestdir/ld -o $@ -Ttext=0x1000200 -Tdata=0x2000000 -e exported_func justsyms_lib.o +@GCC_TRUE@@NATIVE_LINKER_TRUE@ gcctestdir/ld -o $@ -z norelro -Ttext=0x1000200 -Tdata=0x2000000 -e exported_func justsyms_lib.o # Copy the file to the build directory to avoid worrying about the # full pathname in the generated symbols. @GCC_TRUE@@NATIVE_LINKER_TRUE@binary.txt: $(srcdir)/binary.in diff --git a/gold/testsuite/justsyms_exec.c b/gold/testsuite/justsyms_exec.c index 49c0b55d19e..c0281e79b3b 100644 --- a/gold/testsuite/justsyms_exec.c +++ b/gold/testsuite/justsyms_exec.c @@ -47,8 +47,8 @@ check(void *sym, long v, const char *name) int main(void) { -#ifndef __powerpc64__ - /* PowerPC64 uses function descriptors. */ +#if !defined (__powerpc64__) || (defined (_CALL_ELF) && _CALL_ELF == 2) + /* PowerPC64 ELFv1 uses function descriptors. */ check(exported_func, 0x1000200, "exported_func"); #endif check(&exported_data, 0x2000000, "exported_data"); |