~ubuntu-branches/ubuntu/utopic/binutils-arm64-cross/utopic

« back to all changes in this revision

Viewing changes to binutils-2.23.52.20130611/gold/testsuite/exclude_libs_test.sh

  • Committer: Package Import Robot
  • Author(s): Matthias Klose
  • Date: 2013-06-20 17:38:09 UTC
  • Revision ID: package-import@ubuntu.com-20130620173809-app8lzgvymy5fg6c
Tags: 0.7
Build-depend on binutils-source (>= 2.23.52.20130620-1~).

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/bin/sh
 
2
 
 
3
# exclude_libs_test.sh -- test that library symbols are not exported.
 
4
 
 
5
# Copyright 2009 Free Software Foundation, Inc.
 
6
# Written by Doug Kwan <dougkwan@google.com>
 
7
 
 
8
# This file is part of gold.
 
9
 
 
10
# This program is free software; you can redistribute it and/or modify
 
11
# it under the terms of the GNU General Public License as published by
 
12
# the Free Software Foundation; either version 3 of the License, or
 
13
# (at your option) any later version.
 
14
 
 
15
# This program is distributed in the hope that it will be useful,
 
16
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 
17
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
18
# GNU General Public License for more details.
 
19
 
 
20
# You should have received a copy of the GNU General Public License
 
21
# along with this program; if not, write to the Free Software
 
22
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
 
23
# MA 02110-1301, USA.
 
24
 
 
25
# This file goes with exclude_libs_test.c, a C source file
 
26
# linked with option -Wl,--exclude-libs. We run readelf on
 
27
# the resulting executable and check that symbols from two test library
 
28
# archives are correctly hidden or left unmodified.
 
29
 
 
30
check()
 
31
{
 
32
    file=$1
 
33
    sym=$2
 
34
    vis=$3
 
35
 
 
36
    found=`grep " $sym\$" $file`
 
37
    if test -z "$found"; then
 
38
        echo "Symbol $sym not found."
 
39
        exit 1
 
40
    fi
 
41
 
 
42
    match_vis=`grep " $sym\$" $file | grep " $vis "`
 
43
    if test -z "$match_vis"; then
 
44
        echo "Expected symbol $sym to have visibility $vis but found"
 
45
        echo "$found"
 
46
        exit 1
 
47
    fi
 
48
}
 
49
 
 
50
check "exclude_libs_test.syms" "lib1_default" "HIDDEN"
 
51
check "exclude_libs_test.syms" "lib1_protected" "HIDDEN"
 
52
check "exclude_libs_test.syms" "lib1_internal" "INTERNAL"
 
53
check "exclude_libs_test.syms" "lib1_hidden" "HIDDEN"
 
54
check "exclude_libs_test.syms" "lib2_default" "DEFAULT"
 
55
check "exclude_libs_test.syms" "lib2_protected" "PROTECTED"
 
56
check "exclude_libs_test.syms" "lib2_internal" "INTERNAL"
 
57
check "exclude_libs_test.syms" "lib2_hidden" "HIDDEN"
 
58
check "exclude_libs_test.syms" "lib3_default" "HIDDEN"
 
59
check "exclude_libs_test.syms" "lib3_protected" "HIDDEN"
 
60
check "exclude_libs_test.syms" "lib3_internal" "INTERNAL"
 
61
check "exclude_libs_test.syms" "lib3_hidden" "HIDDEN"
 
62
 
 
63
exit 0