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