* ld-shared: New directory, with new files to test generating ELF
[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 int
30 main ()
31 {
32   int (*p) ();
33
34   printf ("mainvar == %d\n", mainvar);
35   printf ("overriddenvar == %d\n", overriddenvar);
36   printf ("shlibvar1 == %d\n", shlibvar1);
37   printf ("shlib_mainvar () == %d\n", shlib_mainvar ());
38   printf ("shlib_overriddenvar () == %d\n", shlib_overriddenvar ());
39   printf ("shlib_shlibvar1 () == %d\n", shlib_shlibvar1 ());
40   printf ("shlib_shlibvar2 () == %d\n", shlib_shlibvar2 ());
41   printf ("shlib_shlibcall () == %d\n", shlib_shlibcall ());
42   printf ("shlib_maincall () == %d\n", shlib_maincall ());
43   printf ("shlib_checkfunptr1 (shlib_mainvar) == %d\n",
44           shlib_checkfunptr1 (shlib_mainvar));
45   printf ("shlib_checkfunptr2 (main_called) == %d\n",
46           shlib_checkfunptr2 (main_called));
47   p = shlib_getfunptr1 ();
48   printf ("shlib_getfunptr1 () ");
49   if (p == shlib_mainvar)
50     printf ("==");
51   else
52     printf ("!=");
53   printf (" shlib_mainvar\n");
54   p = shlib_getfunptr2 ();
55   printf ("shlib_getfunptr2 () ");
56   if (p == main_called)
57     printf ("==");
58   else
59     printf ("!=");
60   printf (" main_called\n");
61   printf ("shlib_check () == %d\n", shlib_check ());
62   return 0;
63 }