mirror of
https://github.com/samba-team/samba.git
synced 2025-06-17 15:17:09 +03:00
There's --enable-symbol-versioning=no to disable it. metze (cherry picked from commit cb5492978b6b157f529806afb2f5fc6202888129)
70 lines
1.4 KiB
Bash
Executable File
70 lines
1.4 KiB
Bash
Executable File
#! /bin/sh
|
|
|
|
#
|
|
# mksyms.sh
|
|
#
|
|
# Extract symbols to export from C-header files.
|
|
# output in version-script format for linking shared libraries.
|
|
#
|
|
# This is the shell warpper for the mksyms.awk core script.
|
|
#
|
|
# Copyright (C) 2008 Micheal Adam <obnox@samba.org>
|
|
#
|
|
|
|
LANG=C; export LANG
|
|
LC_ALL=C; export LC_ALL
|
|
LC_COLLATE=C; export LC_COLLATE
|
|
|
|
if [ $# -lt 3 ]
|
|
then
|
|
echo "Usage: $0 awk versionfile output_file header_files"
|
|
exit 1
|
|
fi
|
|
|
|
awk="$1"
|
|
shift
|
|
|
|
versionfile="$1"
|
|
shift
|
|
|
|
symsfile="$1"
|
|
shift
|
|
symsfile_tmp="$symsfile.$$.tmp~"
|
|
|
|
libname=`basename $symsfile | cut -d '.' -f1`
|
|
verline=`grep $libname $versionfile`
|
|
majver=`echo -n "$verline" | cut -d ':' -f2`
|
|
minver=`echo -n "$verline" | cut -d ':' -f3`
|
|
upname=`echo -n "$libname" | sed -e 's/^lib//' | tr '[a-z]' '[A-Z]'`
|
|
symver="${upname}_${majver}.${minver}"
|
|
|
|
symsext=`basename $symsfile | cut -d '.' -f2-`
|
|
|
|
if test x"$symsext" = x"version.syms"; then
|
|
echo "creating $symsfile for $symver"
|
|
else
|
|
echo "creating $symsfile"
|
|
symver="# no symbol versioning"
|
|
fi
|
|
|
|
proto_src="`echo $@ | tr ' ' '\n' | sort | uniq `"
|
|
|
|
mkdir -p `dirname $symsfile`
|
|
|
|
cat > $symsfile_tmp <<_ACEOF
|
|
#
|
|
# This file is automatically generated with "$0". DO NOT EDIT
|
|
#
|
|
$symver
|
|
_ACEOF
|
|
|
|
${awk} -f `dirname $0`/mksyms.awk $proto_src >> $symsfile_tmp
|
|
|
|
if cmp -s $symsfile $symsfile_tmp 2>/dev/null
|
|
then
|
|
echo "$symsfile unchanged"
|
|
rm $symsfile_tmp
|
|
else
|
|
mv $symsfile_tmp $symsfile
|
|
fi
|