1 /* This is the main program for the shared library test. */ 2 3 #include <stdio.h> 4 5 int mainvar = 1; 6 int overriddenvar = 2; 7 extern int shlibvar1; 8 9 extern int shlib_mainvar (); 10 extern int shlib_overriddenvar (); 11 extern int shlib_shlibvar1 (); 12 extern int shlib_shlibvar2 (); 13 extern int shlib_shlibcall (); 14 extern int shlib_maincall (); 15 extern int shlib_checkfunptr1 (); 16 extern int shlib_checkfunptr2 (); 17 extern int (*shlib_getfunptr1 ()) (); 18 extern int (*shlib_getfunptr2 ()) (); 19 extern int shlib_check (); 20 extern int shlib_shlibcall2 (); 21 22 /* This function is called by the shared library. */ 23 24 int 25 main_called () 26 { 27 return 6; 28 } 29 30 /* This function overrides a function in the shared library. */ 31 32 int 33 shlib_overriddencall2 () 34 { 35 return 8; 36 } 37 38 int 39 main () 40 { 41 printf ("mainvar == %d\n", mainvar); 42 printf ("overriddenvar == %d\n", overriddenvar); 43 printf ("shlibvar1 == %d\n", shlibvar1); 44 #ifndef XCOFF_TEST 45 printf ("shlib_mainvar () == %d\n", shlib_mainvar ()); 46 printf ("shlib_overriddenvar () == %d\n", shlib_overriddenvar ()); 47 #endif 48 printf ("shlib_shlibvar1 () == %d\n", shlib_shlibvar1 ()); 49 printf ("shlib_shlibvar2 () == %d\n", shlib_shlibvar2 ()); 50 printf ("shlib_shlibcall () == %d\n", shlib_shlibcall ()); 51 #ifndef XCOFF_TEST 52 printf ("shlib_shlibcall2 () == %d\n", shlib_shlibcall2 ()); 53 printf ("shlib_maincall () == %d\n", shlib_maincall ()); 54 #endif 55 printf ("main_called () == %d\n", main_called ()); 56 #ifndef SYMBOLIC_TEST 57 printf ("shlib_checkfunptr1 (shlib_shlibvar1) == %d\n", 58 shlib_checkfunptr1 (shlib_shlibvar1)); 59 #ifndef XCOFF_TEST 60 printf ("shlib_checkfunptr2 (main_called) == %d\n", 61 shlib_checkfunptr2 (main_called)); 62 #endif 63 { 64 int (*p) (); 65 66 p = shlib_getfunptr1 (); 67 printf ("shlib_getfunptr1 () "); 68 if (p == shlib_shlibvar1) 69 printf ("=="); 70 else 71 printf ("!="); 72 printf (" shlib_shlibvar1\n"); 73 } 74 #ifndef XCOFF_TEST 75 { 76 int (*p) (); 77 78 p = shlib_getfunptr2 (); 79 printf ("shlib_getfunptr2 () "); 80 if (p == main_called) 81 printf ("=="); 82 else 83 printf ("!="); 84 printf (" main_called\n"); 85 } 86 #endif 87 #endif 88 printf ("shlib_check () == %d\n", shlib_check ()); 89 return 0; 90 } 91