1. Have a look at libtest.c & test.c
   - What are the two functions?
   - What output do you expect?

2. Run test binary (linked against "normal" library)

3. Run testsym binary (linked against -Bsymbolic library)

4. Look at override.c.  What function will it override?

5. Use LD_PRELOAD to preload liboverride.so against both
   - What happens with normal library?
   - What happens with library built with -Bsymbolic?

6. Have a look at the Version script
   - What symbol is made global
   - What symbol is made local
   - What output do you expect
   - Run against testver binary (linked against version scripted library)
     with and without liboverride.so

7. Use nm on libtest.so and libtestver.so
   - What is different?

[1]
 main() -> test_foo() -> foo()
 output
 ------
 libtest foo called
 
[2]
 $ LD_LIBRARY_PATH=. ./test

[3]
 $ LD_LIBRARY_PATH=. ./testsym

[4]
 $ LD_PRELOAD=liboverride.so LD_LIBRARY_PATH=. ./test

[5]

[6]
 - test_foo
 - *

[7]
 T/t on symbol status