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 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