| /* This is the main program for the shared library test. */ | |
| #include <stdio.h> | |
| int mainvar = 1; | |
| int overriddenvar = 2; | |
| extern int shlibvar1; | |
| extern int shlib_mainvar (); | |
| extern int shlib_overriddenvar (); | |
| extern int shlib_shlibvar1 (); | |
| extern int shlib_shlibvar2 (); | |
| extern int shlib_shlibcall (); | |
| extern int shlib_maincall (); | |
| extern int shlib_checkfunptr1 (); | |
| extern int shlib_checkfunptr2 (); | |
| extern int (*shlib_getfunptr1 ()) (); | |
| extern int (*shlib_getfunptr2 ()) (); | |
| extern int shlib_check (); | |
| extern int shlib_shlibcall2 (); | |
| /* This function is called by the shared library. */ | |
| int | |
| main_called () | |
| { | |
| return 6; | |
| } | |
| /* This function overrides a function in the shared library. */ | |
| int | |
| shlib_overriddencall2 () | |
| { | |
| return 8; | |
| } | |
| int | |
| main () | |
| { | |
| printf ("mainvar == %d\n", mainvar); | |
| printf ("overriddenvar == %d\n", overriddenvar); | |
| printf ("shlibvar1 == %d\n", shlibvar1); | |
| #ifndef XCOFF_TEST | |
| printf ("shlib_mainvar () == %d\n", shlib_mainvar ()); | |
| printf ("shlib_overriddenvar () == %d\n", shlib_overriddenvar ()); | |
| #endif | |
| printf ("shlib_shlibvar1 () == %d\n", shlib_shlibvar1 ()); | |
| printf ("shlib_shlibvar2 () == %d\n", shlib_shlibvar2 ()); | |
| printf ("shlib_shlibcall () == %d\n", shlib_shlibcall ()); | |
| #ifndef XCOFF_TEST | |
| printf ("shlib_shlibcall2 () == %d\n", shlib_shlibcall2 ()); | |
| printf ("shlib_maincall () == %d\n", shlib_maincall ()); | |
| #endif | |
| printf ("main_called () == %d\n", main_called ()); | |
| #ifndef SYMBOLIC_TEST | |
| printf ("shlib_checkfunptr1 (shlib_shlibvar1) == %d\n", | |
| shlib_checkfunptr1 (shlib_shlibvar1)); | |
| #ifndef XCOFF_TEST | |
| printf ("shlib_checkfunptr2 (main_called) == %d\n", | |
| shlib_checkfunptr2 (main_called)); | |
| #endif | |
| { | |
| int (*p) (); | |
| p = shlib_getfunptr1 (); | |
| printf ("shlib_getfunptr1 () "); | |
| if (p == shlib_shlibvar1) | |
| printf ("=="); | |
| else | |
| printf ("!="); | |
| printf (" shlib_shlibvar1\n"); | |
| } | |
| #ifndef XCOFF_TEST | |
| { | |
| int (*p) (); | |
| p = shlib_getfunptr2 (); | |
| printf ("shlib_getfunptr2 () "); | |
| if (p == main_called) | |
| printf ("=="); | |
| else | |
| printf ("!="); | |
| printf (" main_called\n"); | |
| } | |
| #endif | |
| #endif | |
| printf ("shlib_check () == %d\n", shlib_check ()); | |
| return 0; | |
| } |