Initial revision
[binutils.git] / ld / testsuite / ld-shared / main.c
blob4fcfdaa1271df08017f6a12d8573e8c5776495d4
1 /* This is the main program for the shared library test. */
3 #include <stdio.h>
5 int mainvar = 1;
6 int overriddenvar = 2;
7 extern int shlibvar1;
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 ();
21 /* This function is called by the shared library. */
23 int
24 main_called ()
26 return 6;
29 /* This function overrides a function in the shared library. */
31 int
32 shlib_overriddencall2 ()
34 return 8;
37 int
38 main ()
40 int (*p) ();
42 printf ("mainvar == %d\n", mainvar);
43 printf ("overriddenvar == %d\n", overriddenvar);
44 printf ("shlibvar1 == %d\n", shlibvar1);
45 #ifndef XCOFF_TEST
46 printf ("shlib_mainvar () == %d\n", shlib_mainvar ());
47 printf ("shlib_overriddenvar () == %d\n", shlib_overriddenvar ());
48 #endif
49 printf ("shlib_shlibvar1 () == %d\n", shlib_shlibvar1 ());
50 printf ("shlib_shlibvar2 () == %d\n", shlib_shlibvar2 ());
51 printf ("shlib_shlibcall () == %d\n", shlib_shlibcall ());
52 #ifndef XCOFF_TEST
53 printf ("shlib_shlibcall2 () == %d\n", shlib_shlibcall2 ());
54 printf ("shlib_maincall () == %d\n", shlib_maincall ());
55 #endif
56 printf ("main_called () == %d\n", main_called ());
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 p = shlib_getfunptr1 ();
64 printf ("shlib_getfunptr1 () ");
65 if (p == shlib_shlibvar1)
66 printf ("==");
67 else
68 printf ("!=");
69 printf (" shlib_shlibvar1\n");
70 #ifndef XCOFF_TEST
71 p = shlib_getfunptr2 ();
72 printf ("shlib_getfunptr2 () ");
73 if (p == main_called)
74 printf ("==");
75 else
76 printf ("!=");
77 printf (" main_called\n");
78 #endif
79 printf ("shlib_check () == %d\n", shlib_check ());
80 return 0;