Home | History | Annotate | Download | only in ld-fastcall
      1 # Test that the linker can handle fastcall symbols correctly.
      2 # Copyright (C) 2002-2014 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 set testname "ld (fastcall symbols)"
     22 
     23 if {![istarget "i*86-*-*"] && ![istarget "x86_64-*-mingw*"] } {
     24     return
     25 }
     26 
     27 if {  !([istarget "i*86-*-*pe*"] && ![istarget "i*86-*-opensd*"]) \
     28     && ![istarget "i*86-*-cygwin*"] \
     29     && ![istarget "x86_64-*-mingw*"] \
     30     && ![istarget "i*86-*-mingw*"] } {
     31     return
     32 }
     33 
     34 set ldflags ""
     35 
     36 if ![ld_assemble $as $srcdir/$subdir/export.s tmpdir/export.o] {
     37     verbose "Unable to assemble test file!" 1
     38     unresolved $testname
     39     return
     40 }
     41 
     42 if ![ld_assemble $as $srcdir/$subdir/import.s tmpdir/import.o] {
     43     verbose "Unable to assemble test file!" 1
     44     unresolved $testname
     45     return
     46 }
     47 
     48 if ![ld_simple_link $ld tmpdir/extern.x "$ldflags tmpdir/export.o tmpdir/import.o"] {
     49     fail $testname
     50 } else {
     51     pass $testname
     52 }
     53