]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - ld/testsuite/ld-shared/main.c
RISC-V: Support Zacas extension.
[thirdparty/binutils-gdb.git] / ld / testsuite / ld-shared / main.c
CommitLineData
252b5132
RH
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 ();
0cd9f5f0 20extern int shlib_shlibcall2 ();
252b5132
RH
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{
252b5132
RH
41 printf ("mainvar == %d\n", mainvar);
42 printf ("overriddenvar == %d\n", overriddenvar);
43 printf ("shlibvar1 == %d\n", shlibvar1);
74044dc8 44#ifndef SYMBOLIC_TEST
252b5132 45 printf ("shlib_mainvar () == %d\n", shlib_mainvar ());
74044dc8 46#ifndef XCOFF_TEST
252b5132 47 printf ("shlib_overriddenvar () == %d\n", shlib_overriddenvar ());
74044dc8 48#endif
252b5132
RH
49#endif
50 printf ("shlib_shlibvar1 () == %d\n", shlib_shlibvar1 ());
51 printf ("shlib_shlibvar2 () == %d\n", shlib_shlibvar2 ());
52 printf ("shlib_shlibcall () == %d\n", shlib_shlibcall ());
74044dc8 53#ifndef SYMBOLIC_TEST
252b5132
RH
54#ifndef XCOFF_TEST
55 printf ("shlib_shlibcall2 () == %d\n", shlib_shlibcall2 ());
74044dc8 56#endif
252b5132
RH
57 printf ("shlib_maincall () == %d\n", shlib_maincall ());
58#endif
59 printf ("main_called () == %d\n", main_called ());
66517a2f 60#ifndef SYMBOLIC_TEST
252b5132
RH
61 printf ("shlib_checkfunptr1 (shlib_shlibvar1) == %d\n",
62 shlib_checkfunptr1 (shlib_shlibvar1));
252b5132
RH
63 printf ("shlib_checkfunptr2 (main_called) == %d\n",
64 shlib_checkfunptr2 (main_called));
32649b97
JK
65 {
66 int (*p) ();
67
68 p = shlib_getfunptr1 ();
69 printf ("shlib_getfunptr1 () ");
70 if (p == shlib_shlibvar1)
71 printf ("==");
72 else
73 printf ("!=");
74 printf (" shlib_shlibvar1\n");
75 }
32649b97
JK
76 {
77 int (*p) ();
78
79 p = shlib_getfunptr2 ();
80 printf ("shlib_getfunptr2 () ");
81 if (p == main_called)
82 printf ("==");
83 else
84 printf ("!=");
85 printf (" main_called\n");
86 }
252b5132
RH
87#endif
88 printf ("shlib_check () == %d\n", shlib_check ());
89 return 0;
90}