1 #!/bin/sh 2 # 3 # Copyright (c) International Business Machines Corp., 2000 4 # 06/01 Robbie Williamson (robbiew (at] us.ibm.com) 5 # Copyright (c) 2016 Cyril Hrubis <chrubis (at] suse.cz> 6 # 7 # This program is free software; you can redistribute it and/or modify 8 # it under the terms of the GNU General Public License as published by 9 # the Free Software Foundation; either version 2 of the License, or 10 # (at your option) any later version. 11 # 12 # This program is distributed in the hope that it will be useful, 13 # but WITHOUT ANY WARRANTY; without even the implied warranty of 14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 15 # the GNU General Public License for more details. 16 # 17 # You should have received a copy of the GNU General Public License 18 # along with this program; if not, write to the Free Software 19 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20 #--------------------------------------------------------------------------- 21 # 22 # Test the basic functionality of the `ld` command. 23 # 24 25 CC=${CC:=gcc} 26 LD=${LD:=ld} 27 28 TST_ID="ld01" 29 TST_CNT=5 30 TST_TESTFUNC=test 31 TST_SETUP=setup 32 TST_NEEDS_TMPDIR=1 33 TST_NEEDS_CMDS="$CC $LD" 34 . tst_test.sh 35 36 setup() 37 { 38 for i in rf1 f1 rd1 d1 main; do 39 ROD $CC -fPIC -c -o ${i}.o $TST_DATAROOT/${i}.c 40 done 41 } 42 43 test1() 44 { 45 EXPECT_FAIL $LD x.o y.o 2\> ld.out 46 47 if grep -q "$LD:.*[xy]\.o.*No such file or directory" ld.out; then 48 tst_res TPASS "Missing files were reported" 49 else 50 tst_res TFAIL "Missing files were not reported" 51 cat ld.out 52 fi 53 } 54 55 test2() 56 { 57 EXPECT_FAIL $CC x.o y.o 2\> cc.out 58 59 if grep -q "$CC:.*[xy]\.o.*No such file or directory" cc.out; then 60 tst_res TPASS "Missing files were reported" 61 else 62 tst_res TFAIL "Missing files were not reported" 63 cat cc.out 64 fi 65 } 66 67 test3() 68 { 69 EXPECT_PASS $LD -shared f1.o d1.o -o test.so 70 71 if file test.so |grep -q shared; then 72 tst_res TPASS "Shared library could be build" 73 else 74 tst_res TFAIL "Failed to build shared library" 75 fi 76 } 77 78 test4() 79 { 80 EXPECT_PASS $LD -Bdynamic -shared f1.o d1.o -o test.so 81 EXPECT_FAIL $LD -Bstatic -L. main.o rd1.o test.so -o a.out 82 } 83 84 test5() 85 { 86 EXPECT_PASS $LD -Bdynamic -shared main.o f1.o rf1.o -o test.so -L/usr/lib/ 87 EXPECT_FAIL $LD -Bstatic -r main.o f1.o rf1.o test.so -L/usr/lib/ 2\> ld.out 88 cat ld.out 89 90 if grep -q "$LD: attempted static link of dynamic object" ld.out; then 91 tst_res TPASS "Got expected error message" 92 else 93 tst_res TFAIL "Unexpected error message" 94 cat ld.out 95 fi 96 } 97 98 tst_run 99