This commit was generated by cvs2svn to track changes on a CVS vendor
[external/binutils.git] / ld / testsuite / ld-shared / main.c
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
21 /* This function is called by the shared library.  */
22
23 int
24 main_called ()
25 {
26   return 6;
27 }
28
29 /* This function overrides a function in the shared library.  */
30
31 int
32 shlib_overriddencall2 ()
33 {
34   return 8;
35 }
36
37 int
38 main ()
39 {
40   int (*p) ();
41
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;
81 }