Home | History | Annotate | Download | only in ld-scripts
      1 # Test for proper diagnosis of overflowed memory regions.
      2 # Copyright (C) 2007-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 if ![is_elf_format] {
     22     return
     23 }
     24 
     25 load_lib ld-lib.exp
     26 
     27 set old_ldflags $LDFLAGS
     28 if { [istarget spu*-*-*] } {
     29     set LDFLAGS "$LDFLAGS --no-overlays"
     30 }
     31 
     32 set test_list [lsort [glob -nocomplain $srcdir/$subdir/rgn-over*.d]]
     33 foreach test_file $test_list {
     34     set test_name [file rootname $test_file]
     35     set map_file "tmpdir/[file tail $test_name].map"
     36     verbose $test_name
     37     run_dump_test $test_name
     38 
     39     if { ! [regexp ".*-ok.d" $test_file] } {
     40 	set testname "[file tail $test_name] (map check)"
     41 	if [file exists $map_file] {
     42 	    # compare the map file to the expectations in the .d file
     43 	    # (run_dump_test can't do that).
     44 	    if [regexp_diff $map_file $test_file] {
     45 		fail $testname
     46 	    } else {
     47 		pass $testname
     48 	    }
     49 	} else {
     50 	    untested $testname
     51 	}
     52     }
     53 }
     54 set LDFLAGS $old_ldflags
     55