]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - ld/testsuite/ld-elf/exclude.exp
Update year range in copyright notice of binutils files
[thirdparty/binutils-gdb.git] / ld / testsuite / ld-elf / exclude.exp
index ffe6b028e7efcc5d93d01607cae5289e75d63395..8d383309b8faa4269f44cf4324fad3a8ba8b5b0e 100644 (file)
@@ -1,19 +1,22 @@
 # Expect script for --exclude-libs tests
-#   Copyright 2004 Free Software Foundation, Inc.
+#   Copyright (C) 2004-2021 Free Software Foundation, Inc.
 #
-# This file is free software; you can redistribute it and/or modify
+# 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 2 of the License, or
+# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+# MA 02110-1301, USA.
 
 # Make sure that ld can hide symbols from libraries when building a shared
 # library.
@@ -28,11 +31,13 @@ if { [istarget "mcore-*-*"] } {
     return
 }
 
-global ar
-global as
-global ld
-global nm
-global nm_output
+set as_opt ""
+
+# This target requires extra as options when building code for shared
+# libraries.
+if { [istarget "tic6x-*-*"] } {
+    set as_opt "-mpic -mpid=near"
+}
 
 set test1 "ld link shared library"
 set test2 "ld export symbols from archive"
@@ -44,14 +49,14 @@ set test7 "ld exclude symbols from archive - --exclude-libs foo:libexclude.a"
 set test8 "ld exclude symbols from archive - --exclude-libs foo,libexclude.a"
 set test9 "ld don't exclude symbols from archive - --exclude-libs foo:bar"
 
-if { ![ld_assemble $as $srcdir/$subdir/exclude1.s tmpdir/exclude1.o ]
-     || ![ld_assemble $as $srcdir/$subdir/exclude2.s tmpdir/exclude2.o] } {
+if { ![ld_assemble_flags $as $as_opt $srcdir/$subdir/exclude1.s tmpdir/exclude1.o ]
+     || ![ld_assemble_flags $as $as_opt $srcdir/$subdir/exclude2.s tmpdir/exclude2.o] } {
     unresolved $test1
     return
 }
 
-catch "exec rm -f tmpdir/libexclude.a" catch_output
-catch "exec $ar cq tmpdir/libexclude.a tmpdir/exclude2.o" catch_output
+remote_file host delete "tmpdir/libexclude.a"
+set catch_output [run_host_cmd "$ar" "cq tmpdir/libexclude.a tmpdir/exclude2.o"]
 if {![string match "" $catch_output]} {
     unresolved $test1
     return
@@ -59,7 +64,7 @@ if {![string match "" $catch_output]} {
 
 # Test that the symbol is normally exported.
 
-if { [ld_simple_link $ld tmpdir/exclude.so "--shared tmpdir/exclude1.o -Ltmpdir -lexclude"] } {
+if { [ld_link $ld tmpdir/exclude.so "--shared tmpdir/exclude1.o -Ltmpdir -lexclude"] } {
     pass $test1
 } else {
     if [string match "*shared not supported*" $link_output] {
@@ -70,9 +75,9 @@ if { [ld_simple_link $ld tmpdir/exclude.so "--shared tmpdir/exclude1.o -Ltmpdir
     return
 }
 
-if ![ld_nm $nm "-D" tmpdir/exclude.so] {
-    unresolved $test2
-} elseif { [info exists nm_output(exclude_sym)] } {
+if { [ld_nm $nm "-D" tmpdir/exclude.so]
+     && [info exists nm_output(exclude_common)]
+     && [info exists nm_output(exclude_sym)] } {
     pass $test2
 } else {
     fail $test2
@@ -80,15 +85,15 @@ if ![ld_nm $nm "-D" tmpdir/exclude.so] {
 
 # Test --exclude-libs libexclude
 
-if { [ld_simple_link $ld tmpdir/exclude.so "--exclude-libs libexclude --shared tmpdir/exclude1.o -Ltmpdir -lexclude"] } {
+if { [ld_link $ld tmpdir/exclude.so "--exclude-libs libexclude --shared tmpdir/exclude1.o -Ltmpdir -lexclude"] } {
     pass $test3
 } else {
     fail $test3
 }
 
-if ![ld_nm $nm "-D" tmpdir/exclude.so] {
-    unresolved $test4
-} elseif { ! [info exists nm_output(exclude_sym)] } {
+if { [ld_nm $nm "-D" tmpdir/exclude.so]
+     && ! [info exists nm_output(exclude_common)]
+     &&  ! [info exists nm_output(exclude_sym)] } {
     pass $test4
 } else {
     fail $test4
@@ -96,40 +101,45 @@ if ![ld_nm $nm "-D" tmpdir/exclude.so] {
 
 # Test alternate spellings of --exclude-libs
 
-if { [ld_simple_link $ld tmpdir/exclude.so "--exclude-libs libexclude.a --shared tmpdir/exclude1.o -Ltmpdir -lexclude"]
+if { [ld_link $ld tmpdir/exclude.so "--exclude-libs libexclude.a --shared tmpdir/exclude1.o -Ltmpdir -lexclude"]
      && [ld_nm $nm "-D" tmpdir/exclude.so]
+     && ! [info exists nm_output(exclude_common)]
      && ! [info exists nm_output(exclude_sym)] } {
     pass $test5
 } else {
     fail $test5
 }
 
-if { [ld_simple_link $ld tmpdir/exclude.so "--exclude-libs ALL --shared tmpdir/exclude1.o -Ltmpdir -lexclude"]
+if { [ld_link $ld tmpdir/exclude.so "--exclude-libs ALL --shared tmpdir/exclude1.o -Ltmpdir -lexclude"]
      && [ld_nm $nm "-D" tmpdir/exclude.so]
+     && ! [info exists nm_output(exclude_common)]
      && ! [info exists nm_output(exclude_sym)] } {
     pass $test6
 } else {
     fail $test6
 }
 
-if { [ld_simple_link $ld tmpdir/exclude.so "--exclude-libs foo:libexclude.a --shared tmpdir/exclude1.o -Ltmpdir -lexclude"]
+if { [ld_link $ld tmpdir/exclude.so "--exclude-libs foo:libexclude.a --shared tmpdir/exclude1.o -Ltmpdir -lexclude"]
      && [ld_nm $nm "-D" tmpdir/exclude.so]
+     && ! [info exists nm_output(exclude_common)]
      && ! [info exists nm_output(exclude_sym)] } {
     pass $test7
 } else {
     fail $test7
 }
 
-if { [ld_simple_link $ld tmpdir/exclude.so "--exclude-libs foo,libexclude.a --shared tmpdir/exclude1.o -Ltmpdir -lexclude"]
+if { [ld_link $ld tmpdir/exclude.so "--exclude-libs foo,libexclude.a --shared tmpdir/exclude1.o -Ltmpdir -lexclude"]
      && [ld_nm $nm "-D" tmpdir/exclude.so]
+     && ! [info exists nm_output(exclude_common)]
      && ! [info exists nm_output(exclude_sym)] } {
     pass $test8
 } else {
     fail $test8
 }
 
-if { [ld_simple_link $ld tmpdir/exclude.so "--exclude-libs foo:bar --shared tmpdir/exclude1.o -Ltmpdir -lexclude"]
+if { [ld_link $ld tmpdir/exclude.so "--exclude-libs foo:bar --shared tmpdir/exclude1.o -Ltmpdir -lexclude"]
      && [ld_nm $nm "-D" tmpdir/exclude.so]
+     && [info exists nm_output(exclude_common)]
      && [info exists nm_output(exclude_sym)] } {
     pass $test9
 } else {