1# Expect script for ld --export-dynamic-symbol tests 2# Copyright (C) 2020 Free Software Foundation, Inc. 3# 4# This file is part of the GNU Binutils. 5# 6# This program is free software; you can redistribute it and/or modify 7# it under the terms of the GNU General Public License as published by 8# the Free Software Foundation; either version 3 of the License, or 9# (at your option) any later version. 10# 11# This program is distributed in the hope that it will be useful, 12# but WITHOUT ANY WARRANTY; without even the implied warranty of 13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14# GNU General Public License for more details. 15# 16# You should have received a copy of the GNU General Public License 17# along with this program; if not, write to the Free Software 18# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, 19# MA 02110-1301, USA. 20# 21 22if ![is_elf_format] { 23 return 24} 25 26# Skip targets where -shared or -pie is not supported 27if { ![check_shared_lib_support] || ![check_pie_support] } { 28 return 29} 30 31# Skip targets that have poor PIE support, resulting in failures due to 32# PHDR segment not covered by LOAD segment errors. 33if { ([istarget "bfin-*-*"] && ![istarget "bfin-*-linux*"]) 34 || [istarget "mn10300-*-*"] 35 || [istarget "score-*-*"] } { 36 return 37} 38 39set old_ASFLAGS $ASFLAGS 40 41# These targets require extra GAS options when building code for shared 42# libraries. 43if [istarget "nds32*-*"] { 44 append ASFLAGS " -mpic" 45} 46if [istarget "tic6x-*-*"] { 47 append ASFLAGS " -mpic -mpid=near" 48} 49if [istarget "sparc*-*-*"] { 50 append ASFLAGS " -K PIC -Av9" 51} 52 53set old_LDFLAGS $LDFLAGS 54 55# These targets require a non-default emulation for successful shared 56# library/executable builds. 57if [istarget "tic6x-*-*"] { 58 append LDFLAGS " -melf32_tic6x_le" 59} 60 61set build_tests { 62 {"Build libpr25910.a" 63 "" "" "" 64 {foo.s} {} "libpr25910.a"} 65} 66 67run_ld_link_tests $build_tests 68 69set test_list [lsort [glob -nocomplain $srcdir/$subdir/export-dynamic-symbol-*.d]] 70foreach test_file $test_list { 71 set test_name [file rootname $test_file] 72 verbose $test_name 73 run_dump_test $test_name 74} 75 76set ASFLAGS $old_ASFLAGS 77set LDFLAGS $old_LDFLAGS 78