OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [trunk/] [gnu-src/] [binutils-2.18.50/] [ld/] [testsuite/] [ld-elf/] [exclude.exp] - Diff between revs 38 and 156

Only display areas with differences | Details | Blame | View Log

Rev 38 Rev 156
# Expect script for --exclude-libs tests
# Expect script for --exclude-libs tests
#   Copyright 2004, 2007 Free Software Foundation, Inc.
#   Copyright 2004, 2007 Free Software Foundation, Inc.
#
#
# This file is part of the GNU Binutils.
# This file is part of the GNU Binutils.
#
#
# This program is free software; you can redistribute it and/or modify
# 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
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
# (at your option) any later version.
#
#
# This program is distributed in the hope that it will be useful,
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# GNU General Public License for more details.
#
#
# You should have received a copy of the GNU General Public License
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
# MA 02110-1301, USA.
# MA 02110-1301, USA.
# Make sure that ld can hide symbols from libraries when building a shared
# Make sure that ld can hide symbols from libraries when building a shared
# library.
# library.
# This test can only be run on ELF platforms.
# This test can only be run on ELF platforms.
if ![is_elf_format] {
if ![is_elf_format] {
    return
    return
}
}
# No shared lib support on this target.
# No shared lib support on this target.
if { [istarget "mcore-*-*"] } {
if { [istarget "mcore-*-*"] } {
    return
    return
}
}
global ar
global ar
global as
global as
global ld
global ld
global nm
global nm
global nm_output
global nm_output
set test1 "ld link shared library"
set test1 "ld link shared library"
set test2 "ld export symbols from archive"
set test2 "ld export symbols from archive"
set test3 "ld link shared library with --exclude-libs"
set test3 "ld link shared library with --exclude-libs"
set test4 "ld exclude symbols from archive - --exclude-libs libexclude"
set test4 "ld exclude symbols from archive - --exclude-libs libexclude"
set test5 "ld exclude symbols from archive - --exclude-libs libexclude.a"
set test5 "ld exclude symbols from archive - --exclude-libs libexclude.a"
set test6 "ld exclude symbols from archive - --exclude-libs ALL"
set test6 "ld exclude symbols from archive - --exclude-libs ALL"
set test7 "ld exclude symbols from archive - --exclude-libs foo:libexclude.a"
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 test8 "ld exclude symbols from archive - --exclude-libs foo,libexclude.a"
set test9 "ld don't exclude symbols from archive - --exclude-libs foo:bar"
set test9 "ld don't exclude symbols from archive - --exclude-libs foo:bar"
if { ![ld_assemble $as $srcdir/$subdir/exclude1.s tmpdir/exclude1.o ]
if { ![ld_assemble $as $srcdir/$subdir/exclude1.s tmpdir/exclude1.o ]
     || ![ld_assemble $as $srcdir/$subdir/exclude2.s tmpdir/exclude2.o] } {
     || ![ld_assemble $as $srcdir/$subdir/exclude2.s tmpdir/exclude2.o] } {
    unresolved $test1
    unresolved $test1
    return
    return
}
}
remote_file host delete "tmpdir/libexclude.a"
remote_file host delete "tmpdir/libexclude.a"
set catch_output [run_host_cmd "$ar" "cq tmpdir/libexclude.a tmpdir/exclude2.o"]
set catch_output [run_host_cmd "$ar" "cq tmpdir/libexclude.a tmpdir/exclude2.o"]
if {![string match "" $catch_output]} {
if {![string match "" $catch_output]} {
    unresolved $test1
    unresolved $test1
    return
    return
}
}
# Test that the symbol is normally exported.
# Test that the symbol is normally exported.
if { [ld_simple_link $ld tmpdir/exclude.so "--shared tmpdir/exclude1.o -Ltmpdir -lexclude"] } {
if { [ld_simple_link $ld tmpdir/exclude.so "--shared tmpdir/exclude1.o -Ltmpdir -lexclude"] } {
    pass $test1
    pass $test1
} else {
} else {
    if [string match "*shared not supported*" $link_output] {
    if [string match "*shared not supported*" $link_output] {
        unsupported "$test1 - -shared is not supported by this target"
        unsupported "$test1 - -shared is not supported by this target"
    } else {
    } else {
        fail $test1
        fail $test1
    }
    }
    return
    return
}
}
if ![ld_nm $nm "-D" tmpdir/exclude.so] {
if ![ld_nm $nm "-D" tmpdir/exclude.so] {
    unresolved $test2
    unresolved $test2
} elseif { [info exists nm_output(exclude_sym)] } {
} elseif { [info exists nm_output(exclude_sym)] } {
    pass $test2
    pass $test2
} else {
} else {
    fail $test2
    fail $test2
}
}
# Test --exclude-libs libexclude
# Test --exclude-libs libexclude
if { [ld_simple_link $ld tmpdir/exclude.so "--exclude-libs libexclude --shared tmpdir/exclude1.o -Ltmpdir -lexclude"] } {
if { [ld_simple_link $ld tmpdir/exclude.so "--exclude-libs libexclude --shared tmpdir/exclude1.o -Ltmpdir -lexclude"] } {
    pass $test3
    pass $test3
} else {
} else {
    fail $test3
    fail $test3
}
}
if ![ld_nm $nm "-D" tmpdir/exclude.so] {
if ![ld_nm $nm "-D" tmpdir/exclude.so] {
    unresolved $test4
    unresolved $test4
} elseif { ! [info exists nm_output(exclude_sym)] } {
} elseif { ! [info exists nm_output(exclude_sym)] } {
    pass $test4
    pass $test4
} else {
} else {
    fail $test4
    fail $test4
}
}
# Test alternate spellings of --exclude-libs
# 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_simple_link $ld tmpdir/exclude.so "--exclude-libs libexclude.a --shared tmpdir/exclude1.o -Ltmpdir -lexclude"]
     && [ld_nm $nm "-D" tmpdir/exclude.so]
     && [ld_nm $nm "-D" tmpdir/exclude.so]
     && ! [info exists nm_output(exclude_sym)] } {
     && ! [info exists nm_output(exclude_sym)] } {
    pass $test5
    pass $test5
} else {
} else {
    fail $test5
    fail $test5
}
}
if { [ld_simple_link $ld tmpdir/exclude.so "--exclude-libs ALL --shared tmpdir/exclude1.o -Ltmpdir -lexclude"]
if { [ld_simple_link $ld tmpdir/exclude.so "--exclude-libs ALL --shared tmpdir/exclude1.o -Ltmpdir -lexclude"]
     && [ld_nm $nm "-D" tmpdir/exclude.so]
     && [ld_nm $nm "-D" tmpdir/exclude.so]
     && ! [info exists nm_output(exclude_sym)] } {
     && ! [info exists nm_output(exclude_sym)] } {
    pass $test6
    pass $test6
} else {
} else {
    fail $test6
    fail $test6
}
}
if { [ld_simple_link $ld tmpdir/exclude.so "--exclude-libs foo:libexclude.a --shared tmpdir/exclude1.o -Ltmpdir -lexclude"]
if { [ld_simple_link $ld tmpdir/exclude.so "--exclude-libs foo:libexclude.a --shared tmpdir/exclude1.o -Ltmpdir -lexclude"]
     && [ld_nm $nm "-D" tmpdir/exclude.so]
     && [ld_nm $nm "-D" tmpdir/exclude.so]
     && ! [info exists nm_output(exclude_sym)] } {
     && ! [info exists nm_output(exclude_sym)] } {
    pass $test7
    pass $test7
} else {
} else {
    fail $test7
    fail $test7
}
}
if { [ld_simple_link $ld tmpdir/exclude.so "--exclude-libs foo,libexclude.a --shared tmpdir/exclude1.o -Ltmpdir -lexclude"]
if { [ld_simple_link $ld tmpdir/exclude.so "--exclude-libs foo,libexclude.a --shared tmpdir/exclude1.o -Ltmpdir -lexclude"]
     && [ld_nm $nm "-D" tmpdir/exclude.so]
     && [ld_nm $nm "-D" tmpdir/exclude.so]
     && ! [info exists nm_output(exclude_sym)] } {
     && ! [info exists nm_output(exclude_sym)] } {
    pass $test8
    pass $test8
} else {
} else {
    fail $test8
    fail $test8
}
}
if { [ld_simple_link $ld tmpdir/exclude.so "--exclude-libs foo:bar --shared tmpdir/exclude1.o -Ltmpdir -lexclude"]
if { [ld_simple_link $ld tmpdir/exclude.so "--exclude-libs foo:bar --shared tmpdir/exclude1.o -Ltmpdir -lexclude"]
     && [ld_nm $nm "-D" tmpdir/exclude.so]
     && [ld_nm $nm "-D" tmpdir/exclude.so]
     && [info exists nm_output(exclude_sym)] } {
     && [info exists nm_output(exclude_sym)] } {
    pass $test9
    pass $test9
} else {
} else {
    fail $test9
    fail $test9
}
}
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.