Home | History | Annotate | Download | only in ld-shared
      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