OpenCores
URL https://opencores.org/ocsvn/open8_urisc/open8_urisc/trunk

Subversion Repositories open8_urisc

[/] [open8_urisc/] [trunk/] [gnu/] [binutils/] [ld/] [testsuite/] [ld-elfvers/] [vers1.c] - Blame information for rev 163

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 58 khays
/*
2
 * Basic test of versioning.  The idea with this is that we define
3
 * a bunch of definitions of the same symbol, and we can theoretically
4
 * then link applications against varying sets of these.
5
 */
6
#include "vers.h"
7
 
8
const char * show_bar1 = "asdf";
9
const char * show_bar2 = "asdf";
10
 
11
extern int new2_foo();
12
extern int bar33();
13
 
14
int
15
bar()
16
{
17
        return 3;
18
}
19
 
20
/*
21
 * The 'hide' prefix is something so that we can automatically search the
22
 * symbol table and verify that none of these symbols were actually exported.
23
 */
24
int
25
hide_original_foo()
26
{
27
        return 1+bar();
28
 
29
}
30
 
31
int
32
hide_old_foo()
33
{
34
        return 10+bar();
35
 
36
}
37
 
38
int
39
hide_old_foo1()
40
{
41
        return 100+bar();
42
 
43
}
44
 
45
int
46
hide_new_foo()
47
{
48
        return 1000+bar();
49
 
50
}
51
 
52
SYMVER(hide_original_foo, show_foo@);
53
SYMVER(hide_old_foo, show_foo@VERS_1.1);
54
SYMVER(hide_old_foo1, show_foo@VERS_1.2);
55
SYMVER(hide_new_foo, show_foo@@VERS_2.0);
56
 
57
 
58
 
59
#ifdef DO_TEST10
60
/* In test 10, we try and define a non-existant version node.  The linker
61
 * should catch this and complain. */
62
int
63
hide_new_bogus_foo()
64
{
65
        return 1000+bar();
66
 
67
}
68
SYMVER(hide_new_bogus_foo, show_foo@VERS_2.2);
69
#endif
70
 
71
 
72
 
73
 
74
#ifdef DO_TEST11
75
/*
76
 * This test is designed to catch a couple of syntactic errors.  The assembler
77
 * should complain about both of the directives below.
78
 */
79
void
80
xyzzz()
81
{
82
  new2_foo();
83
  bar33();
84
}
85
 
86
SYMVER(new2_foo, fooVERS_2.0);
87
SYMVER(bar33, bar@@VERS_2.0);
88
#endif
89
 
90
#ifdef DO_TEST12
91
/*
92
 * This test is designed to catch a couple of syntactic errors.  The assembler
93
 * should complain about both of the directives below.
94
 */
95
void
96
xyzzz()
97
{
98
  new2_foo();
99
  bar33();
100
}
101
 
102
SYMVER(bar33, bar@@VERS_2.0);
103
#endif

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.