1#!/bin/sh 2 3# program 4# <- liba.so 5# <- libb.so 6# <- libb_dependency.so 7# 8# Expected: Undefined symbol in libb.so resolves to symbol in liba.so, 9# not to symbol in libb_dependency.so. 10 11 12. ./test_setup 13 14 15# create liba.so 16cat > liba.c << EOI 17int a() { return 1; } 18EOI 19 20# build 21compile_lib -o liba.so liba.c 22 23 24# create libb_dependency.so 25cat > libb_dependency.c << EOI 26int a() { return 2; } 27EOI 28 29# build 30compile_lib -o libb_dependency.so libb_dependency.c 31 32 33# create libb.so 34cat > libb.c << EOI 35extern int a(); 36int b() { return a(); } 37EOI 38 39# build 40compile_lib -o libb.so libb.c ./libb_dependency.so 41 42 43# create program 44cat > program.c << EOI 45extern int b(); 46int 47main() 48{ 49 return b(); 50} 51EOI 52 53# build 54compile_program -o program program.c ./liba.so ./libb.so 55 56# run 57test_run_ok ./program 1 58 59