Upload Tizen:Base source
[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 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 }