1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-25 23:21:54 +03:00
samba-mirror/source3/script/mksyms.awk
Karolin Seeger 006515d889 Revert "build: add symbol versioning when we build with gnu ld"
This reverts commit cb5492978b.

For more information, please have a look at the discussion on
samba-technical starting with [1].

[1] http://lists.samba.org/archive/samba-technical/2008-June/059511.html

Karolin
(cherry picked from commit 1e5aeb96f9)
(This used to be commit d06baf0e74)
2008-06-27 13:46:26 +02:00

77 lines
1.2 KiB
Awk

#
# mksyms.awk
#
# Extract symbols to export from C-header files.
# output in version-script format for linking shared libraries.
#
# Copyright (C) 2008 Micheal Adam <obnox@samba.org>
#
BEGIN {
inheader=0;
current_file="";
print "#"
print "# This file is automatically generated with \"make symbols\". DO NOT EDIT "
print "#"
print "{"
print "\tglobal:"
}
END {
print""
print "\tlocal: *;"
print "};"
}
{
if (FILENAME!=current_file) {
print "\t\t# The following definitions come from",FILENAME
current_file=FILENAME
}
if (inheader) {
if (match($0,"[)][ \t]*[;][ \t]*$")) {
inheader = 0;
}
next;
}
}
/^static/ || /^[ \t]*typedef/ || !/^[a-zA-Z\_]/ {
next;
}
/^extern[ \t]+[^()]+[;][ \t]*$/ {
gsub(/[^ \t]+[ \t]+/, "");
sub(/[;][ \t]*$/, "");
printf "\t\t%s;\n", $0;
next;
}
# look for function headers:
{
gotstart = 0;
if ($0 ~ /^[A-Za-z_][A-Za-z0-9_]+/) {
gotstart = 1;
}
if(!gotstart) {
next;
}
}
/[_A-Za-z0-9]+[ \t]*[(].*[)][ \t]*;[ \t]*$/ {
sub(/[(].*$/, "");
gsub(/[^ \t]+[ \t]+/, "");
gsub(/^[*]/, "");
printf "\t\t%s;\n",$0;
next;
}
/[_A-Za-z0-9]+[ \t]*[(]/ {
inheader=1;
sub(/[(].*$/, "");
gsub(/[^ \t]+[ \t]+/, "");
gsub(/^[*]/, "");
printf "\t\t%s;\n",$0;
next;
}