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