* Source text_setup with explicitly given current directory path component.

Apparently the source semantics has changed, as the that wasn't necessary
  in older OpenSuse versions.
* Replaced gcc invocations in the test scripts with with
  compile_{lib,program}[_dl]() shell functions defined in test_setup.
* Build libraries with -fPIC, so we don't get complaints for x86_64.

Apparently the runtime loader semantics has changed in OpenSuse 11.2 compared
to older versions. Some tests don't pass any longer (respectively even crash).
Would be interesting to know what happens on a current FreeBSD.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39308 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2010-11-05 16:38:44 +00:00
parent 7aff60b7de
commit 09bd92c5c0
22 changed files with 127 additions and 109 deletions
@@ -12,7 +12,7 @@
# libd.so # libd.so
. test_setup . ./test_setup
# create libd.so # create libd.so
@@ -21,7 +21,7 @@ int a() { return 1; }
EOI EOI
# build # build
gcc -shared -o libd.so libd.c compile_lib -o libd.so libd.c
# create libb.so # create libb.so
@@ -38,7 +38,7 @@ a()
EOI EOI
# build # build
gcc -shared -o libb.so libb.c -D_GNU_SOURCE ./libd.so $libdl compile_lib_dl -o libb.so libb.c ./libd.so
# create liba.so # create liba.so
@@ -54,7 +54,7 @@ a()
EOI EOI
# build # build
gcc -shared -o liba.so liba.c -D_GNU_SOURCE ./libb.so $libdl compile_lib_dl -o liba.so liba.c ./libb.so
# create libe.so # create libe.so
@@ -70,7 +70,7 @@ a()
EOI EOI
# build # build
gcc -shared -o libe.so libe.c -D_GNU_SOURCE $libdl compile_lib_dl -o libe.so libe.c
# create program # create program
@@ -111,7 +111,7 @@ main()
EOI EOI
# build # build
gcc -o program program.c -D_GNU_SOURCE $libdl -Wl,-rpath,.,--export-dynamic compile_program_dl -o program program.c
# run # run
test_run_ok ./program 31 test_run_ok ./program 31
@@ -11,7 +11,7 @@
# libb_dependency.so. # libb_dependency.so.
. test_setup . ./test_setup
# create liba.so # create liba.so
@@ -20,7 +20,7 @@ int a() { return 1; }
EOI EOI
# build # build
gcc -shared -o liba.so liba.c compile_lib -o liba.so liba.c
# create libb_dependency.so # create libb_dependency.so
@@ -29,7 +29,7 @@ int a() { return 2; }
EOI EOI
# build # build
gcc -shared -o libb_dependency.so libb_dependency.c compile_lib -o libb_dependency.so libb_dependency.c
# create libb.so # create libb.so
@@ -38,7 +38,7 @@ int b() { return 1; }
EOI EOI
# build # build
gcc -shared -o libb.so libb.c ./libb_dependency.so compile_lib -o libb.so libb.c ./libb_dependency.so
# create program # create program
@@ -83,7 +83,7 @@ main()
EOI EOI
# build # build
gcc -o program program.c $libdl -Wl,-rpath,.,--export-dynamic compile_program_dl -o program program.c
# run # run
test_run_ok ./program 1 test_run_ok ./program 1
@@ -11,7 +11,7 @@
# liba.so. # liba.so.
. test_setup . ./test_setup
# create liba.so # create liba.so
@@ -20,7 +20,7 @@ int a() { return 1; }
EOI EOI
# build # build
gcc -shared -o liba.so liba.c compile_lib -o liba.so liba.c
# create libb_dependency.so # create libb_dependency.so
@@ -29,7 +29,7 @@ int a() { return 2; }
EOI EOI
# build # build
gcc -shared -o libb_dependency.so libb_dependency.c compile_lib -o libb_dependency.so libb_dependency.c
# create libb.so # create libb.so
@@ -38,7 +38,7 @@ int b() { return 1; }
EOI EOI
# build # build
gcc -shared -o libb.so libb.c ./libb_dependency.so compile_lib -o libb.so libb.c ./libb_dependency.so
# create program # create program
@@ -83,7 +83,7 @@ main()
EOI EOI
# build # build
gcc -o program program.c $libdl -Wl,-rpath,.,--export-dynamic compile_program_dl -o program program.c
# run # run
test_run_ok ./program 2 test_run_ok ./program 2
@@ -12,7 +12,7 @@
# libb_dependency.so. # libb_dependency.so.
. test_setup . ./test_setup
# create libb_dependency.so # create libb_dependency.so
@@ -21,7 +21,7 @@ int a() { return 1; }
EOI EOI
# build # build
gcc -shared -o libb_dependency.so libb_dependency.c compile_lib -o libb_dependency.so libb_dependency.c
# create libb.so # create libb.so
@@ -30,7 +30,7 @@ int b() { return 1; }
EOI EOI
# build # build
gcc -shared -o libb.so libb.c ./libb_dependency.so compile_lib -o libb.so libb.c ./libb_dependency.so
# create liba.so # create liba.so
@@ -39,7 +39,7 @@ int a() { return 2; }
EOI EOI
# build # build
gcc -shared -o libd.so libd.c compile_lib -o libd.so libd.c
# create liba.so # create liba.so
@@ -48,7 +48,7 @@ int c() { return 1; }
EOI EOI
# build # build
gcc -shared -o liba.so liba.c ./libb.so ./libd.so compile_lib -o liba.so liba.c ./libb.so ./libd.so
# create program # create program
@@ -79,7 +79,7 @@ main()
EOI EOI
# build # build
gcc -o program program.c $libdl -Wl,-rpath,.,--export-dynamic compile_program_dl -o program program.c
# run # run
test_run_ok ./program 2 test_run_ok ./program 2
@@ -11,7 +11,7 @@
# symbol in liba.so, since libb.so is loaded RTLD_LOCAL. # symbol in liba.so, since libb.so is loaded RTLD_LOCAL.
. test_setup . ./test_setup
# create liba.so # create liba.so
@@ -20,7 +20,7 @@ int a() { return 1; }
EOI EOI
# build # build
gcc -shared -o liba.so liba.c compile_lib -o liba.so liba.c
# create libb_dependency.so # create libb_dependency.so
@@ -29,7 +29,7 @@ int a() { return 2; }
EOI EOI
# build # build
gcc -shared -o libb_dependency.so libb_dependency.c compile_lib -o libb_dependency.so libb_dependency.c
# create libb.so # create libb.so
@@ -38,7 +38,7 @@ int b() { return 1; }
EOI EOI
# build # build
gcc -shared -o libb.so libb.c ./libb_dependency.so compile_lib -o libb.so libb.c ./libb_dependency.so
# create program # create program
@@ -83,7 +83,7 @@ main()
EOI EOI
# build # build
gcc -o program program.c $libdl -Wl,-rpath,.,--export-dynamic compile_program_dl -o program program.c
# run # run
test_run_ok ./program 1 test_run_ok ./program 1
@@ -8,7 +8,7 @@
# Expected: Undefined symbol in liba.so resolve to symbol in program. # Expected: Undefined symbol in liba.so resolve to symbol in program.
. test_setup . ./test_setup
# create liba.so # create liba.so
@@ -18,7 +18,7 @@ int a() { return b(); }
EOI EOI
# build # build
gcc -shared -o liba.so liba.c compile_lib -o liba.so liba.c
# create program # create program
@@ -53,7 +53,7 @@ main()
EOI EOI
# build # build
gcc -o program program.c $libdl -Wl,-rpath,.,--export-dynamic compile_program_dl -o program program.c
# run # run
test_run_ok ./program 1 test_run_ok ./program 1
@@ -9,7 +9,7 @@
# Expected: Undefined symbol in liba.so resolves to symbol in libb.so. # Expected: Undefined symbol in liba.so resolves to symbol in libb.so.
. test_setup . ./test_setup
# create liba.so # create liba.so
@@ -19,7 +19,7 @@ int a() { return b(); }
EOI EOI
# build # build
gcc -shared -o liba.so liba.c compile_lib -o liba.so liba.c
# create libb.so # create libb.so
@@ -28,7 +28,7 @@ int b() { return 1; }
EOI EOI
# build # build
gcc -shared -o libb.so libb.c compile_lib -o libb.so libb.c
# create program # create program
@@ -60,7 +60,7 @@ main()
EOI EOI
# build # build
gcc -o program program.c ./libb.so $libdl -Wl,-rpath,.,--export-dynamic compile_program_dl -o program program.c ./libb.so
# run # run
test_run_ok ./program 1 test_run_ok ./program 1
@@ -11,7 +11,7 @@
# libb_dependency.so. # libb_dependency.so.
. test_setup . ./test_setup
# create libb_dependency.so # create libb_dependency.so
@@ -20,7 +20,7 @@ int c() { return 1; }
EOI EOI
# build # build
gcc -shared -o libb_dependency.so libb_dependency.c compile_lib -o libb_dependency.so libb_dependency.c
# create libb.so # create libb.so
@@ -29,7 +29,7 @@ int b() { return 1; }
EOI EOI
# build # build
gcc -shared -o libb.so libb.c ./libb_dependency.so compile_lib -o libb.so libb.c ./libb_dependency.so
# create liba.so # create liba.so
@@ -39,7 +39,7 @@ int a() { return c(); }
EOI EOI
# build # build
gcc -shared -o liba.so liba.c ./libb.so compile_lib -o liba.so liba.c ./libb.so
# create program # create program
@@ -70,7 +70,7 @@ main()
EOI EOI
# build # build
gcc -o program program.c $libdl -Wl,-rpath,.,--export-dynamic compile_program_dl -o program program.c
# run # run
test_run_ok ./program 1 test_run_ok ./program 1
@@ -10,7 +10,7 @@
# to symbol in libb.so. # to symbol in libb.so.
. test_setup . ./test_setup
# create liba.so # create liba.so
@@ -20,7 +20,7 @@ int a() { return b(); }
EOI EOI
# build # build
gcc -shared -o liba.so liba.c compile_lib -o liba.so liba.c
# create libb.so # create libb.so
@@ -29,7 +29,7 @@ int b() { return 2; }
EOI EOI
# build # build
gcc -shared -o libb.so libb.c compile_lib -o libb.so libb.c
# create program # create program
@@ -70,7 +70,7 @@ main()
EOI EOI
# build # build
gcc -o program program.c $libdl -Wl,-rpath,.,--export-dynamic compile_lib_dl -o program program.c
# run # run
test_run_ok ./program 1 test_run_ok ./program 1
@@ -12,7 +12,7 @@
# libd.so, not to symbol in libb_dependency.so. # libd.so, not to symbol in libb_dependency.so.
. test_setup . ./test_setup
# create libb_dependency.so # create libb_dependency.so
@@ -21,7 +21,7 @@ int c() { return 1; }
EOI EOI
# build # build
gcc -shared -o libb_dependency.so libb_dependency.c compile_lib -o libb_dependency.so libb_dependency.c
# create libb.so # create libb.so
@@ -30,7 +30,7 @@ int b() { return 1; }
EOI EOI
# build # build
gcc -shared -o libb.so libb.c ./libb_dependency.so compile_lib -o libb.so libb.c ./libb_dependency.so
# create libd.so # create libd.so
@@ -39,7 +39,7 @@ int c() { return 2; }
EOI EOI
# build # build
gcc -shared -o libd.so libd.c compile_lib -o libd.so libd.c
# create liba.so # create liba.so
@@ -49,7 +49,7 @@ int a() { return c(); }
EOI EOI
# build # build
gcc -shared -o liba.so liba.c ./libb.so ./libd.so compile_lib -o liba.so liba.c ./libb.so ./libd.so
# create program # create program
@@ -80,7 +80,7 @@ main()
EOI EOI
# build # build
gcc -o program program.c $libdl -Wl,-rpath,.,--export-dynamic compile_lib_dl -o program program.c
# run # run
test_run_ok ./program 2 test_run_ok ./program 2
@@ -11,7 +11,7 @@
# not to symbol in libb.so. # not to symbol in libb.so.
. test_setup . ./test_setup
# create libb.so # create libb.so
@@ -20,7 +20,7 @@ int b() { return 1; }
EOI EOI
# build # build
gcc -shared -o libb.so libb.c compile_lib -o libb.so libb.c
# create liba.so # create liba.so
@@ -30,7 +30,7 @@ int a() { return b(); }
EOI EOI
# build # build
gcc -shared -o liba.so liba.c ./libb.so compile_lib -o liba.so liba.c ./libb.so
# create libd.so # create libd.so
@@ -39,7 +39,7 @@ int b() { return 2; }
EOI EOI
# build # build
gcc -shared -o libd.so libd.c compile_lib -o libd.so libd.c
# create program # create program
@@ -76,8 +76,8 @@ main()
} }
EOI EOI
# build #build
gcc -o program program.c $libdl -Wl,-rpath,.,--export-dynamic compile_program_dl -o program program.c
# run # run
test_run_ok ./program 2 test_run_ok ./program 2
@@ -12,7 +12,7 @@
# not to symbol in libb_dependency.so. # not to symbol in libb_dependency.so.
. test_setup . ./test_setup
# create libb_dependency.so # create libb_dependency.so
@@ -21,7 +21,7 @@ int c() { return 1; }
EOI EOI
# build # build
gcc -shared -o libb_dependency.so libb_dependency.c compile_lib -o libb_dependency.so libb_dependency.c
# create libb.so # create libb.so
@@ -30,7 +30,7 @@ int b() { return 1; }
EOI EOI
# build # build
gcc -shared -o libb.so libb.c ./libb_dependency.so compile_lib -o libb.so libb.c ./libb_dependency.so
# create liba.so # create liba.so
@@ -40,7 +40,7 @@ int a() { return c(); }
EOI EOI
# build # build
gcc -shared -o liba.so liba.c ./libb.so compile_lib -o liba.so liba.c ./libb.so
# create libd.so # create libd.so
@@ -49,7 +49,7 @@ int c() { return 2; }
EOI EOI
# build # build
gcc -shared -o libd.so libd.c compile_lib -o libd.so libd.c
# create program # create program
@@ -87,7 +87,7 @@ main()
EOI EOI
# build # build
gcc -o program program.c $libdl -Wl,-rpath,.,--export-dynamic compile_lib_dl -o program program.c
# run # run
test_run_ok ./program 2 test_run_ok ./program 2
@@ -13,7 +13,7 @@
# libd.so, not to symbol in libb_dependency.so. # libd.so, not to symbol in libb_dependency.so.
. test_setup . ./test_setup
# create libb_dependency.so # create libb_dependency.so
@@ -22,7 +22,7 @@ int c() { return 1; }
EOI EOI
# build # build
gcc -shared -o libb_dependency.so libb_dependency.c compile_lib -o libb_dependency.so libb_dependency.c
# create libb.so # create libb.so
@@ -31,7 +31,7 @@ int b() { return 1; }
EOI EOI
# build # build
gcc -shared -o libb.so libb.c ./libb_dependency.so compile_lib -o libb.so libb.c ./libb_dependency.so
# create libd.so # create libd.so
@@ -40,7 +40,7 @@ int c() { return 2; }
EOI EOI
# build # build
gcc -shared -o libd.so libd.c compile_lib -o libd.so libd.c
# create liba.so # create liba.so
@@ -49,7 +49,7 @@ int e() { return 0; }
EOI EOI
# build # build
gcc -shared -o liba.so liba.c ./libb.so ./libd.so compile_lib -o liba.so liba.c ./libb.so ./libd.so
# create libe.so # create libe.so
@@ -59,7 +59,7 @@ int a() { return c(); }
EOI EOI
# build # build
gcc -shared -o libe.so libe.c compile_lib -o libe.so libe.c
# create program # create program
@@ -97,7 +97,7 @@ main()
EOI EOI
# build # build
gcc -o program program.c $libdl -Wl,-rpath,.,--export-dynamic compile_program_dl -o program program.c
# run # run
test_run_ok ./program 2 test_run_ok ./program 2
@@ -13,7 +13,7 @@
# libb_dependency.so, not to symbol in libd.so. # libb_dependency.so, not to symbol in libd.so.
. test_setup . ./test_setup
# create libb_dependency.so # create libb_dependency.so
@@ -22,7 +22,7 @@ int c() { return 1; }
EOI EOI
# build # build
gcc -shared -o libb_dependency.so libb_dependency.c compile_lib -o libb_dependency.so libb_dependency.c
# create libb.so # create libb.so
@@ -31,7 +31,7 @@ int b() { return 1; }
EOI EOI
# build # build
gcc -shared -o libb.so libb.c ./libb_dependency.so compile_lib -o libb.so libb.c ./libb_dependency.so
# create libd.so # create libd.so
@@ -40,7 +40,7 @@ int c() { return 2; }
EOI EOI
# build # build
gcc -shared -o libd.so libd.c compile_lib -o libd.so libd.c
# create liba.so # create liba.so
@@ -50,7 +50,7 @@ int e() { return 0; }
EOI EOI
# build # build
gcc -shared -o liba.so liba.c ./libb.so compile_lib -o liba.so liba.c ./libb.so
# create libe.so # create libe.so
@@ -60,7 +60,7 @@ int a() { return c(); }
EOI EOI
# build # build
gcc -shared -o libe.so libe.c compile_lib -o libe.so libe.c
# create program # create program
@@ -105,8 +105,7 @@ main()
EOI EOI
# build # build
gcc -o program program.c $libdl -Wl,-rpath,.,--export-dynamic compile_program_dl -o program program.c
# run # run
test_run_ok ./program 1 test_run_ok ./program 1
@@ -11,7 +11,7 @@
# not to symbol in libd.so, since it's loaded RTLD_LOCAL. # not to symbol in libd.so, since it's loaded RTLD_LOCAL.
. test_setup . ./test_setup
# create libb.so # create libb.so
@@ -20,7 +20,7 @@ int b() { return 1; }
EOI EOI
# build # build
gcc -shared -o libb.so libb.c compile_lib -o libb.so libb.c
# create liba.so # create liba.so
@@ -30,7 +30,7 @@ int a() { return b(); }
EOI EOI
# build # build
gcc -shared -o liba.so liba.c ./libb.so compile_lib -o liba.so liba.c ./libb.so
# create libd.so # create libd.so
@@ -39,7 +39,7 @@ int b() { return 2; }
EOI EOI
# build # build
gcc -shared -o libd.so libd.c compile_lib -o libd.so libd.c
# create program # create program
@@ -77,7 +77,7 @@ main()
EOI EOI
# build # build
gcc -o program program.c $libdl -Wl,-rpath,.,--export-dynamic compile_program_dl -o program program.c
# run # run
test_run_ok ./program 1 test_run_ok ./program 1
@@ -8,7 +8,7 @@
# Expected: dlsym(RTLD_NEXT) finds symbol in order liba.so, libb.so, libd.so # Expected: dlsym(RTLD_NEXT) finds symbol in order liba.so, libb.so, libd.so
. test_setup . ./test_setup
# create libd.so # create libd.so
@@ -17,7 +17,7 @@ int a() { return 1; }
EOI EOI
# build # build
gcc -shared -o libd.so libd.c compile_lib -o libd.so libd.c
# create libb.so # create libb.so
@@ -34,7 +34,7 @@ a()
EOI EOI
# build # build
gcc -shared -o libb.so libb.c -D_GNU_SOURCE ./libd.so $libdl compile_lib_dl -o libb.so libb.c ./libd.so
# create liba.so # create liba.so
@@ -50,7 +50,7 @@ a()
EOI EOI
# build # build
gcc -shared -o liba.so liba.c -D_GNU_SOURCE ./libb.so $libdl compile_lib_dl -o liba.so liba.c ./libb.so
# create program # create program
@@ -73,8 +73,7 @@ main()
EOI EOI
# build # build
gcc -o program program.c -D_GNU_SOURCE ./liba.so $libdl \ compile_program_dl -o program program.c ./liba.so
-Wl,-rpath,.,--export-dynamic
# run # run
test_run_ok ./program 15 test_run_ok ./program 15
@@ -6,7 +6,7 @@
# Expected: Undefined symbol in liba.so resolves to symbol in program. # Expected: Undefined symbol in liba.so resolves to symbol in program.
. test_setup . ./test_setup
# create liba.so # create liba.so
@@ -16,7 +16,7 @@ int a() { return b(); }
EOI EOI
# build # build
gcc -shared -o liba.so liba.c compile_lib -o liba.so liba.c
# create program # create program
@@ -37,7 +37,7 @@ main()
EOI EOI
# build # build
gcc -o program program.c ./liba.so -Wl,-rpath,.,--export-dynamic compile_program -o program program.c ./liba.so
# run # run
test_run_ok ./program 1 test_run_ok ./program 1
@@ -9,7 +9,7 @@
# not to symbol in libb_dependency.so. # not to symbol in libb_dependency.so.
. test_setup . ./test_setup
# create liba.so # create liba.so
@@ -18,7 +18,7 @@ int a() { return 1; }
EOI EOI
# build # build
gcc -shared -o liba.so liba.c compile_lib -o liba.so liba.c
# create libb_dependency.so # create libb_dependency.so
@@ -27,7 +27,7 @@ int a() { return 2; }
EOI EOI
# build # build
gcc -shared -o libb_dependency.so libb_dependency.c compile_lib -o libb_dependency.so libb_dependency.c
# create libb.so # create libb.so
@@ -36,7 +36,7 @@ int b() { return 1; }
EOI EOI
# build # build
gcc -shared -o libb.so libb.c ./libb_dependency.so compile_lib -o libb.so libb.c ./libb_dependency.so
# create program # create program
@@ -50,7 +50,7 @@ main()
EOI EOI
# build # build
gcc -o program program.c ./liba.so ./libb.so -Wl,-rpath,.,--export-dynamic compile_program -o program program.c ./liba.so ./libb.so
# run # run
test_run_ok ./program 1 test_run_ok ./program 1
@@ -9,7 +9,7 @@
# not to symbol in libb_dependency.so. # not to symbol in libb_dependency.so.
. test_setup . ./test_setup
# create liba.so # create liba.so
@@ -18,7 +18,7 @@ int a() { return 1; }
EOI EOI
# build # build
gcc -shared -o liba.so liba.c compile_lib -o liba.so liba.c
# create libb_dependency.so # create libb_dependency.so
@@ -27,7 +27,7 @@ int a() { return 2; }
EOI EOI
# build # build
gcc -shared -o libb_dependency.so libb_dependency.c compile_lib -o libb_dependency.so libb_dependency.c
# create libb.so # create libb.so
@@ -36,7 +36,7 @@ int b() { return 1; }
EOI EOI
# build # build
gcc -shared -o libb.so libb.c ./libb_dependency.so compile_lib -o libb.so libb.c ./libb_dependency.so
# create program # create program
@@ -50,7 +50,7 @@ main()
EOI EOI
# build # build
gcc -o program program.c ./libb.so ./liba.so -Wl,-rpath,.,--export-dynamic compile_program -o program program.c ./libb.so ./liba.so
# run # run
test_run_ok ./program 1 test_run_ok ./program 1
@@ -9,7 +9,7 @@
# not to symbol in libb_dependency.so. # not to symbol in libb_dependency.so.
. test_setup . ./test_setup
# create liba.so # create liba.so
@@ -18,7 +18,7 @@ int a() { return 1; }
EOI EOI
# build # build
gcc -shared -o liba.so liba.c compile_lib -o liba.so liba.c
# create libb_dependency.so # create libb_dependency.so
@@ -27,7 +27,7 @@ int a() { return 2; }
EOI EOI
# build # build
gcc -shared -o libb_dependency.so libb_dependency.c compile_lib -o libb_dependency.so libb_dependency.c
# create libb.so # create libb.so
@@ -37,7 +37,7 @@ int b() { return a(); }
EOI EOI
# build # build
gcc -shared -o libb.so libb.c ./libb_dependency.so compile_lib -o libb.so libb.c ./libb_dependency.so
# create program # create program
@@ -51,7 +51,7 @@ main()
EOI EOI
# build # build
gcc -o program program.c ./liba.so ./libb.so -Wl,-rpath,.,--export-dynamic compile_program -o program program.c ./liba.so ./libb.so
# run # run
test_run_ok ./program 1 test_run_ok ./program 1
@@ -8,7 +8,7 @@
# not to symbol in libb_dependency.so. # not to symbol in libb_dependency.so.
. test_setup . ./test_setup
# create libb_dependency.so # create libb_dependency.so
@@ -17,7 +17,7 @@ int a() { return 2; }
EOI EOI
# build # build
gcc -shared -o libb_dependency.so libb_dependency.c compile_lib -o libb_dependency.so libb_dependency.c
# create libb.so # create libb.so
@@ -27,7 +27,7 @@ int b() { return a(); }
EOI EOI
# build # build
gcc -shared -o libb.so libb.c ./libb_dependency.so compile_lib -o libb.so libb.c ./libb_dependency.so
# create program # create program
@@ -45,7 +45,7 @@ main()
EOI EOI
# build # build
gcc -o program program.c ./libb.so -Wl,-rpath,.,--export-dynamic compile_program -o program program.c ./libb.so
# run # run
test_run_ok ./program 1 test_run_ok ./program 1
@@ -30,3 +30,23 @@ test_run_ok()
exit 1 exit 1
fi fi
} }
compile_lib()
{
gcc -shared $@ -D_GNU_SOURCE -fPIC
}
compile_lib_dl()
{
compile_lib $@ $libdl
}
compile_program()
{
gcc $@ -D_GNU_SOURCE -Wl,-rpath,.,--export-dynamic
}
compile_program_dl()
{
compile_program $@ $libdl
}