Home | History | Annotate | Download | only in ld-undefined
      1 # Expect script for ld --undefined and --require-defined testing.
      2 #   Copyright (C) 2015-2016 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 
     22 # Some of these tests use --gc-sections.  For now we don't attempt any
     23 # if --gc-sections is unavailable, as most major targets do support
     24 # this option.
     25 if ![check_gc_sections_available] {
     26     unsupported "require-defined testing"
     27     return
     28 }
     29 
     30 # The following targets all fail these tests for reasons that appear
     31 # to be unrelated to the test themselves (for example some of these
     32 # targets require more complex linker scripts).  Given the small
     33 # number of targets, I'm just skipping the tests in these cases.]
     34 if { [istarget "powerpcle-*-*"] \
     35      || [istarget "cris-axis-elf"] \
     36      || [istarget "ns32k-*-netbsd"] \
     37      || [istarget "*-*-coff"] \
     38      || [istarget "*-*-xcoff"] \
     39      || [istarget "*-*-*aout*"] \
     40      || [istarget "*-*-*aix*"] } {
     41     unsupported "require-defined testing"
     42     return
     43 }
     44 
     45 set build_tests {
     46   {"Build libfoo.a"
     47    "" "" ""
     48    {entry.s} {} "libfoo.a"}
     49 }
     50 
     51 run_ld_link_tests $build_tests
     52 
     53 set test_list [lsort [glob -nocomplain $srcdir/$subdir/require-defined*.d]]
     54 foreach t $test_list {
     55     # We need to strip the ".d", but can leave the dirname.
     56     verbose [file rootname $t]
     57     run_dump_test [file rootname $t]
     58 }
     59