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