5 # Output a C file that contains symbols matching the shell glob
6 # sym{defaultver,longver,shortver}{nospace,SPACE}{default,hidden,protected,internal}
7 # with symbol visibility matching the final element and at least one relocation
10 # When used together with spacesyms-o-map.pl and spacesyms.map, makes a shared
11 # object that contains symbols that covers all cases of:
13 # 1) has a short, long or Base version,
14 # 2) has or does not have a space in the symbol name,
15 # 3) default, hidden, protected or internal visibility.
22 foreach my $version (qw(defaultver longver shortver)) {
23 foreach my $space (qw(nospace SPACE)) {
24 foreach my $visibility (qw(default hidden protected internal)) {
25 my $symbol = "sym$version$space$visibility";
26 push @symbols, $symbol;
27 print "void $symbol(void) __attribute__((visibility(\"$visibility\")));\n";
28 print "void $symbol(void) {}\n";
33 print "void (*funcs[])(void) = {\n";
34 foreach my $symbol (@symbols) {