diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-06 00:45:20 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-06 00:45:20 +0000 |
commit | 9a08cbfcc1ef900a04580f35afe2a4592d7d6030 (patch) | |
tree | 004cc7027bca2f2c0bcb5806527c8e0c48df2d6e /scripts/t/Dpkg_Shlibs/spacesyms-c-gen.pl | |
parent | Initial commit. (diff) | |
download | dpkg-9a08cbfcc1ef900a04580f35afe2a4592d7d6030.tar.xz dpkg-9a08cbfcc1ef900a04580f35afe2a4592d7d6030.zip |
Adding upstream version 1.19.8.upstream/1.19.8upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'scripts/t/Dpkg_Shlibs/spacesyms-c-gen.pl')
-rwxr-xr-x | scripts/t/Dpkg_Shlibs/spacesyms-c-gen.pl | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/scripts/t/Dpkg_Shlibs/spacesyms-c-gen.pl b/scripts/t/Dpkg_Shlibs/spacesyms-c-gen.pl new file mode 100755 index 0000000..48434f4 --- /dev/null +++ b/scripts/t/Dpkg_Shlibs/spacesyms-c-gen.pl @@ -0,0 +1,37 @@ +#!/usr/bin/perl +# +# spacesyms-c-gen.pl +# +# Output a C file that contains symbols matching the shell glob +# sym{defaultver,longver,shortver}{nospace,SPACE}{default,hidden,protected,internal} +# with symbol visibility matching the final element and at least one relocation +# against each symbol. +# +# When used together with spacesyms-o-map.pl and spacesyms.map, makes a shared +# object that contains symbols that covers all cases of: +# +# 1) has a short, long or Base version, +# 2) has or does not have a space in the symbol name, +# 3) default, hidden, protected or internal visibility. + +use strict; +use warnings; + +my @symbols; + +foreach my $version (qw(defaultver longver shortver)) { + foreach my $space (qw(nospace SPACE)) { + foreach my $visibility (qw(default hidden protected internal)) { + my $symbol = "sym$version$space$visibility"; + push @symbols, $symbol; + print "void $symbol(void) __attribute__((visibility(\"$visibility\")));\n"; + print "void $symbol(void) {}\n"; + } + } +} + +print "void (*funcs[])(void) = {\n"; +foreach my $symbol (@symbols) { + print "$symbol,\n"; +} +print "};\n"; |