diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2014-01-21 05:33:48 -0800 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2014-01-21 05:33:48 -0800 |
commit | 22ef172a21663abb477d72284b4d59c8eabcbb82 (patch) | |
tree | 9f629e3bc3316aa35877260d66617b3392423cc0 /ld/testsuite/ld-elf | |
parent | 48ded086b6d25529dd336d74b73788d3cf87cfda (diff) | |
download | gdb-22ef172a21663abb477d72284b4d59c8eabcbb82.zip gdb-22ef172a21663abb477d72284b4d59c8eabcbb82.tar.gz gdb-22ef172a21663abb477d72284b4d59c8eabcbb82.tar.bz2 |
Don't check shared/export_dynamic/ref_dynamic for type mismatch
There is nothing linker can do when a type mismatched default definition
are made dynamic by info->shared, info->export_dynamic or h->ref_dynamic.
But we do want to avoid exporting it when building PIE. Let's remove
those checks.
bfd/
PR ld/2404
* elflink.c (_bfd_elf_merge_symbol): Don't check info->shared,
info->export_dynamic, nor !h->ref_dynamic for type mismatch when
adding the default version.
ld/testsuite/
PR ld/2404
* ld-elf/shared.exp: Add a PIE test for PR ld/2404.
Diffstat (limited to 'ld/testsuite/ld-elf')
-rw-r--r-- | ld/testsuite/ld-elf/shared.exp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/ld/testsuite/ld-elf/shared.exp b/ld/testsuite/ld-elf/shared.exp index afc262c..bbfd464 100644 --- a/ld/testsuite/ld-elf/shared.exp +++ b/ld/testsuite/ld-elf/shared.exp @@ -453,3 +453,29 @@ set run_cxx_tests { run_cc_link_tests $build_cxx_tests run_ld_link_exec_tests [] $run_cxx_tests + +if { [istarget *-*-linux*] + || [istarget *-*-nacl*] + || [istarget *-*-gnu*] } { + run_cc_link_tests [list \ + [list \ + "Build libpr2404b.a with PIE" \ + "" \ + "-fPIE" \ + { pr2404b.c } \ + {} \ + "libpr2404b.a" \ + ] \ + ] + run_ld_link_exec_tests [] [list \ + [list \ + "Run pr2404 with PIE" \ + "-pie tmpdir/pr2404b.o tmpdir/libpr2404a.so" \ + "" \ + { dummy.c } \ + "pr2404pie" \ + "pr2404.out" \ + "-fPIE" \ + ] \ + ] +} |