| # Expect script for ld --export-dynamic-symbol tests |
| # Copyright (C) 2020-2021 Free Software Foundation, Inc. |
| # |
| # This file is part of the GNU Binutils. |
| # |
| # 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. |
| # |
| |
| if ![is_elf_format] { |
| return |
| } |
| |
| # Skip targets where -shared or -pie is not supported |
| if { ![check_shared_lib_support] || ![check_pie_support] } { |
| return |
| } |
| |
| # Skip targets that have poor PIE support, resulting in failures due to |
| # PHDR segment not covered by LOAD segment errors. |
| if { ([istarget "bfin-*-*"] && ![istarget "bfin-*-linux*"]) |
| || [istarget "mn10300-*-*"] |
| || [istarget "score-*-*"] } { |
| return |
| } |
| |
| set old_ASFLAGS $ASFLAGS |
| |
| # These targets require extra GAS options when building code for shared |
| # libraries. |
| if [istarget "nds32*-*"] { |
| append ASFLAGS " -mpic" |
| } |
| if [istarget "tic6x-*-*"] { |
| append ASFLAGS " -mpic -mpid=near" |
| } |
| if [istarget "sparc*-*-*"] { |
| append ASFLAGS " -K PIC -Av9" |
| } |
| |
| set old_LDFLAGS $LDFLAGS |
| |
| # These targets require a non-default emulation for successful shared |
| # library/executable builds. |
| if [istarget "tic6x-*-*"] { |
| append LDFLAGS " -melf32_tic6x_le" |
| } |
| |
| set build_tests { |
| {"Build libpr25910.a" |
| "" "" "" |
| {foo.s} {} "libpr25910.a"} |
| } |
| |
| run_ld_link_tests $build_tests |
| |
| set test_list [lsort [glob -nocomplain $srcdir/$subdir/export-dynamic-symbol-*.d]] |
| foreach test_file $test_list { |
| set test_name [file rootname $test_file] |
| verbose $test_name |
| run_dump_test $test_name |
| } |
| |
| set ASFLAGS $old_ASFLAGS |
| set LDFLAGS $old_LDFLAGS |