[SCM] Samba Shared Repository - branch v3-3-test updated - release-3-2-0pre2-2578-g36ba31e

Stefan Metzmacher metze at samba.org
Fri May 23 15:25:31 GMT 2008


The branch, v3-3-test has been updated
       via  36ba31e39b28e5495b0aeb8638df3a10ce6c51e6 (commit)
       via  196d9017627220786d8b726dc0d02e16e96c4c05 (commit)
       via  e7dcbf56aef836e1b4be70b21064f65338221b5a (commit)
       via  a739652d94300881479262648592223536fc8eec (commit)
       via  17ce13775423efffd8ddfb967e1e09b2f41849af (commit)
       via  dc0a4f7dc502cb285bce9de2ef72a722f91c43b9 (commit)
       via  3bf5a047e3d478b3356df7aa5c4f4a9d0b763639 (commit)
      from  6106d48a5c94e7c1f3a7234807e43aca0a51fa62 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-3-test


- Log -----------------------------------------------------------------
commit 36ba31e39b28e5495b0aeb8638df3a10ce6c51e6
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri May 23 17:16:12 2008 +0200

    build: make sure LIBWBCLIENT_*_TARGET is never empty
    
    This should fix the build with non gnu make
    
    metze
    (cherry picked from commit 401a0c84fe5f60e57e95331805da6b53dd1d7c2e)

commit 196d9017627220786d8b726dc0d02e16e96c4c05
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri May 23 14:18:42 2008 +0200

    libwbclient: add wbcLibraryDetails()
    
    metze
    (cherry picked from commit b68916328e935e61840cb03560ebeeee15bb2c6f)

commit e7dcbf56aef836e1b4be70b21064f65338221b5a
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri May 23 13:59:53 2008 +0200

    libwbclient: rename MAXSUBAUTHS => WBC_MAXSUBAUTHS
    
    metze
    (cherry picked from commit 04d465c622c614bec29f24793ae897a73bcb51f4)

commit a739652d94300881479262648592223536fc8eec
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri May 23 11:52:31 2008 +0200

    build: add symbol versioning when we build with gnu ld
    
    There's --enable-symbol-versioning=no to disable it.
    
    metze
    (cherry picked from commit cb5492978b6b157f529806afb2f5fc6202888129)

commit 17ce13775423efffd8ddfb967e1e09b2f41849af
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri May 23 12:45:37 2008 +0200

    build: autogenerate exports/libwbclient.syms
    
    metze
    (cherry picked from commit 8e0fcd583a643a8f4240698efcbb177463534a82)

commit dc0a4f7dc502cb285bce9de2ef72a722f91c43b9
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri May 23 12:04:21 2008 +0200

    build: autogenerate exports/libtalloc.syms
    
    metze
    (cherry picked from commit ce9d8ea9818d91bd91f95149f3b0a7ed4f2dae3b)

commit 3bf5a047e3d478b3356df7aa5c4f4a9d0b763639
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri May 23 11:39:23 2008 +0200

    build: pass .syms extention via @SYMSEXT@ from configure
    
    metze
    (cherry picked from commit efb23fdce72db48b4c149fb3dd4a6f4aa3eebbbe)

-----------------------------------------------------------------------

Summary of changes:
 source/Makefile.in                           |   43 +++++++++++++++++---------
 source/configure.in                          |   29 ++++++++++++++++-
 source/exports/libsmbclient.version.syms     |    8 +++++
 source/exports/libsmbsharemodes.version.syms |    7 ++++
 source/exports/libtalloc.syms                |    6 ---
 source/exports/libwbclient.syms              |    4 --
 source/nsswitch/libwbclient/wbc_pam.c        |    2 +-
 source/nsswitch/libwbclient/wbc_sid.c        |    2 +-
 source/nsswitch/libwbclient/wbclient.c       |   23 ++++++++++++++
 source/nsswitch/libwbclient/wbclient.h       |   21 +++++++++++--
 source/script/mksyms.awk                     |    3 --
 source/script/mksyms.sh                      |   34 +++++++++++++++++---
 12 files changed, 142 insertions(+), 40 deletions(-)
 create mode 100644 source/exports/libsmbclient.version.syms
 create mode 100644 source/exports/libsmbsharemodes.version.syms
 delete mode 100644 source/exports/libtalloc.syms
 delete mode 100644 source/exports/libwbclient.syms


Changeset truncated at 500 lines:

diff --git a/source/Makefile.in b/source/Makefile.in
index 530ccb1..f9d0753 100644
--- a/source/Makefile.in
+++ b/source/Makefile.in
@@ -25,7 +25,7 @@ SHLD=@SHLD@
 LIB_PATH_VAR=@LIB_PATH_VAR@
 
 ## Dynamic shared libraries build settings
-DSO_EXPORTS_CMD=-Wl,--version-script,$(srcdir)/exports/`basename $@ | sed 's/@SHLIBEXT@$$/syms/'`
+DSO_EXPORTS_CMD=-Wl,--version-script,$(srcdir)/exports/`basename $@ | sed 's/@SHLIBEXT@$$/@SYMSEXT@/'`
 DSO_EXPORTS=@DSO_EXPORTS@
 SONAME_VER=`grep \^$@ $(builddir)/library-versions | cut -d: -f2`
 SHLD_DSO = $(SHLD) $(LDSHFLAGS) $(DSO_EXPORTS) -o $@
@@ -146,22 +146,29 @@ PIDDIR = @piddir@
 LIBTALLOC_SHARED_TARGET=@LIBTALLOC_SHARED_TARGET@
 LIBTALLOC_STATIC_TARGET=@LIBTALLOC_STATIC_TARGET@
 LIBTALLOC=$(LIBTALLOC_STATIC_TARGET) @LIBTALLOC_SHARED@
+LIBTALLOC_SYMS=$(srcdir)/exports/libtalloc. at SYMSEXT@
+LIBTALLOC_HEADERS=$(srcdir)/@tallocdir@/talloc.h
 
 LIBTDB_SHARED_TARGET=@LIBTDB_SHARED_TARGET@
 LIBTDB_STATIC_TARGET=@LIBTDB_STATIC_TARGET@
 LIBTDB=$(LIBTDB_STATIC_TARGET) @LIBTDB_SHARED@
-LIBTDB_SYMS=$(srcdir)/exports/libtdb.syms
+LIBTDB_SYMS=$(srcdir)/exports/libtdb. at SYMSEXT@
 LIBTDB_HEADERS=$(srcdir)/@tdbdir@/include/tdb.h
 
 LIBSMBCLIENT=bin/libsmbclient.a @LIBSMBCLIENT_SHARED@
 LIBSMBSHAREMODES=bin/libsmbsharemodes.a @LIBSMBSHAREMODES_SHARED@
 LIBADDNS=bin/libaddns.a @LIBADDNS_SHARED@
-LIBWBCLIENT=@LIBWBCLIENT_SHARED@
+
+LIBWBCLIENT_SHARED_TARGET=@LIBWBCLIENT_SHARED_TARGET@
+LIBWBCLIENT_STATIC_TARGET=@LIBWBCLIENT_STATIC_TARGET@
+LIBWBCLIENT=@LIBWBCLIENT_STATIC@ @LIBWBCLIENT_SHARED@
+LIBWBCLIENT_SYMS=$(srcdir)/exports/libwbclient. at SYMSEXT@
+LIBWBCLIENT_HEADERS=$(srcdir)/nsswitch/libwbclient/wbclient.h
 
 LIBNETAPI_SHARED_TARGET=@LIBNETAPI_SHARED_TARGET@
 LIBNETAPI_STATIC_TARGET=@LIBNETAPI_STATIC_TARGET@
 LIBNETAPI=$(LIBNETAPI_STATIC_TARGET) @LIBNETAPI_SHARED@
-LIBNETAPI_SYMS=$(srcdir)/exports/libnetapi.syms
+LIBNETAPI_SYMS=$(srcdir)/exports/libnetapi. at SYMSEXT@
 LIBNETAPI_HEADERS=$(srcdir)/lib/netapi/netapi.h
 
 FLAGS1 = $(CFLAGS) @FLAGS1@ @SAMBA_CPPFLAGS@ $(CPPFLAGS)
@@ -1604,7 +1611,12 @@ bin/ldbdel: $(BINARY_PREREQS) $(LDBDEL_OBJ) @BUILD_POPT@ @LIBTALLOC_SHARED@ @LIB
 		$(PASSDB_LIBS) $(TERMLDFLAGS) $(TERMLIBS) $(NSCD_LIBS) \
 		@LIBTALLOC_LIBS@ @LIBTDB_LIBS@ @WINBIND_LIBS@
 
-$(LIBTALLOC_SHARED_TARGET): $(BINARY_PREREQS) $(LIBTALLOC_OBJ)
+MKSYMS_SH = $(srcdir)/script/mksyms.sh
+
+$(LIBTALLOC_SYMS): $(LIBTALLOC_HEADERS) $(builddir)/library-versions
+	@$(MKSYMS_SH) $(AWK) $(builddir)/library-versions $@ $(LIBTALLOC_HEADERS)
+
+$(LIBTALLOC_SHARED_TARGET): $(BINARY_PREREQS) $(LIBTALLOC_OBJ) $(LIBTALLOC_SYMS)
 	@echo Linking shared library $@
 	@$(SHLD_DSO) $(LIBTALLOC_OBJ) \
 		@SONAMEFLAG@`basename $@`.$(SONAME_VER)
@@ -1614,10 +1626,8 @@ $(LIBTALLOC_STATIC_TARGET): $(BINARY_PREREQS) $(LIBTALLOC_OBJ0)
 	@echo Linking non-shared library $@
 	@-$(AR) -rc $@ $(LIBTALLOC_OBJ0)
 
-MKSYMS_SH = $(srcdir)/script/mksyms.sh
-
-$(LIBTDB_SYMS): $(LIBTDB_HEADERS)
-	@$(MKSYMS_SH) $(AWK) $@ $(LIBTDB_HEADERS)
+$(LIBTDB_SYMS): $(LIBTDB_HEADERS) $(builddir)/library-versions
+	@$(MKSYMS_SH) $(AWK) $(builddir)/library-versions $@ $(LIBTDB_HEADERS)
 
 $(LIBTDB_SHARED_TARGET): $(BINARY_PREREQS) $(LIBTDB_OBJ) $(LIBTDB_SYMS)
 	@echo Linking shared library $@
@@ -1629,13 +1639,16 @@ $(LIBTDB_STATIC_TARGET): $(BINARY_PREREQS) $(LIBTDB_OBJ0)
 	@echo Linking non-shared library $@
 	@-$(AR) -rc $@ $(LIBTDB_OBJ0)
 
-bin/libwbclient. at SHLIBEXT@: $(BINARY_PREREQS) $(LIBWBCLIENT_OBJ) @LIBTALLOC_SHARED@
+$(LIBWBCLIENT_SYMS): $(LIBWBCLIENT_HEADERS) $(builddir)/library-versions
+	@$(MKSYMS_SH) $(AWK) $(builddir)/library-versions $@ $(LIBWBCLIENT_HEADERS)
+
+$(LIBWBCLIENT_SHARED_TARGET): $(BINARY_PREREQS) $(LIBWBCLIENT_OBJ) $(LIBWBCLIENT_SYMS) @LIBTALLOC_SHARED@
 	@echo Linking shared library $@
 	@$(SHLD_DSO) @LIBTALLOC_LIBS@ $(LIBWBCLIENT_OBJ) \
 		@SONAMEFLAG@`basename $@`.$(SONAME_VER)
 	@ln -s -f `basename $@` $@.$(SONAME_VER)
 
-bin/libwbclient.a: $(BINARY_PREREQS) $(LIBWBCLIENT_OBJ0) $(WBCOMMON_OBJ)
+$(LIBWBCLIENT_STATIC_TARGET): $(BINARY_PREREQS) $(LIBWBCLIENT_OBJ0) $(WBCOMMON_OBJ)
 	@echo Linking non-shared library $@
 	@-$(AR) -rc $@ $(LIBWBCLIENT_OBJ0) $(WBCOMMON_OBJ)
 
@@ -1649,8 +1662,8 @@ bin/libaddns.a: $(BINARY_PREREQS) $(LIBADDNS_OBJ)
 	@echo Linking non-shared library $@
 	@-$(AR) -rc $@ $(LIBADDNS_OBJ)
 
-$(LIBNETAPI_SYMS): $(LIBNETAPI_HEADERS)
-	@$(MKSYMS_SH) $(AWK) $@ $(LIBNETAPI_HEADERS)
+$(LIBNETAPI_SYMS): $(LIBNETAPI_HEADERS) $(builddir)/library-versions
+	@$(MKSYMS_SH) $(AWK) $(builddir)/library-versions $@ $(LIBNETAPI_HEADERS)
 
 $(LIBNETAPI_SHARED_TARGET): $(BINARY_PREREQS) $(LIBNETAPI_OBJ) $(LIBNETAPI_SYMS) @LIBTALLOC_SHARED@ @LIBTDB_SHARED@ @LIBWBCLIENT_SHARED@
 	@echo Linking shared library $@
@@ -2178,7 +2191,7 @@ installlibtalloc:: installdirs libtalloc
 	-$(INSTALLLIBCMD_SH) $(LIBTALLOC_SHARED_TARGET) $(DESTDIR)$(LIBDIR)
 	-$(INSTALLLIBCMD_A) $(LIBTALLOC_STATIC_TARGET) $(DESTDIR)$(LIBDIR)
 	@$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS_BIN) $(DESTDIR) ${prefix}/include
-	-$(INSTALLCMD) -m $(INSTALLPERMS_DATA) $(srcdir)/@tallocdir@/talloc.h $(DESTDIR)${prefix}/include
+	-$(INSTALLCMD) -m $(INSTALLPERMS_DATA) $(LIBTALLOC_HEADERS) $(DESTDIR)${prefix}/include
 
 installlibtdb:: installdirs libtdb
 	@$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(LIBDIR)
@@ -2322,7 +2335,7 @@ clean::
 		$(LIBSMBSHAREMODES) $(EVERYTHING_PROGS) $(LIBNETAPI) \
 		bin/libwbclient.so.0 bin/timelimit \
 		.headers.stamp */src/*.o \
-		$(LIBTDB_SYMS)
+		$(LIBTALLOC_SYMS) $(LIBWBCLIENT_SYMS) $(LIBTDB_SYMS) $(LIBNETAPI_SYMS)
 	-rm -rf t_dir
 
 include/build_env.h: script/build_env.sh
diff --git a/source/configure.in b/source/configure.in
index d63ef61..5176dc1 100644
--- a/source/configure.in
+++ b/source/configure.in
@@ -86,7 +86,9 @@ AC_SUBST(LIBADDNS)
 
 AC_SUBST(INSTALL_LIBWBCLIENT)
 AC_SUBST(UNINSTALL_LIBWBCLIENT)
+AC_SUBST(LIBWBCLIENT_SHARED_TARGET)
 AC_SUBST(LIBWBCLIENT_SHARED)
+AC_SUBST(LIBWBCLIENT_STATIC_TARGET)
 AC_SUBST(LIBWBCLIENT_STATIC)
 AC_SUBST(LIBWBCLIENT)
 AC_SUBST(WINBIND_LIBS)
@@ -1500,6 +1502,27 @@ EOF
 	fi
 fi
 
+# Set defaults
+SYMSEXT="syms"
+AC_SUBST(SYMSEXT)
+use_symbol_versioning=no
+if test x"$ac_cv_gnu_ld_version_script" = x"yes"; then
+	use_symbol_versioning=yes
+fi
+AC_ARG_ENABLE(symbol-versioning,[
+	AS_HELP_STRING([--enable-symbol-versioning],
+		[Turn on symbol versioning support if available (default=auto)])
+])
+if test x"$enable_symbol_versioning" = x"no"; then
+	use_symbol_versioning=no
+fi
+
+AC_MSG_CHECKING([symbol versioning])
+if test "x$use_symbol_versioning" = x"yes"; then
+	SYMSEXT="version.syms"
+fi
+AC_MSG_RESULT($use_symbol_versioning)
+
 # Assume non-shared by default and override below
 BLDSHARED="false"
 
@@ -5718,17 +5741,19 @@ else
 	BUILD_LIBWBCLIENT_SHARED=yes
 fi
 
+LIBWBCLIENT_SHARED_TARGET=bin/libwbclient.$SHLIBEXT
+LIBWBCLIENT_STATIC_TARGET=bin/libwbclient.a
 if test $BLDSHARED = true -a x"$HAVE_WINBIND" = x"yes" -a x"$BUILD_LIBWBCLIENT_SHARED" = x"yes"; then
 	NSS_MODULES="${WINBIND_NSS} ${WINBIND_WINS_NSS}"
 	## Only worry about libwbclient if we have shared library support
 	## and winbindd
-        LIBWBCLIENT_SHARED=bin/libwbclient.$SHLIBEXT
+        LIBWBCLIENT_SHARED=$LIBWBCLIENT_SHARED_TARGET
         LIBWBCLIENT=libwbclient
 	INSTALL_LIBWBCLIENT=installlibwbclient
 	UNINSTALL_LIBWBCLIENT=uninstalllibwbclient
 	WINBIND_LIBS="-lwbclient"
 else
-	LIBWBCLIENT_STATIC=bin/libwbclient.a
+	LIBWBCLIENT_STATIC=$LIBWBCLIENT_STATIC_TARGET
 fi
 
 if test x"$HAVE_WINBIND" = x"yes"; then
diff --git a/source/exports/libsmbclient.version.syms b/source/exports/libsmbclient.version.syms
new file mode 100644
index 0000000..6afdbcb
--- /dev/null
+++ b/source/exports/libsmbclient.version.syms
@@ -0,0 +1,8 @@
+#
+# we use no version symbols for libsmbclient
+# to be compatible with 3.0.x
+#
+{
+	global: smbc_*;
+	local: *;
+};
diff --git a/source/exports/libsmbsharemodes.version.syms b/source/exports/libsmbsharemodes.version.syms
new file mode 100644
index 0000000..cf3f033
--- /dev/null
+++ b/source/exports/libsmbsharemodes.version.syms
@@ -0,0 +1,7 @@
+#
+# we use no version symbols for libsmbsharemodes
+# to be compatible with 3.0.x
+#
+{
+	global: *;
+};
diff --git a/source/exports/libtalloc.syms b/source/exports/libtalloc.syms
deleted file mode 100644
index 87f1c5c..0000000
--- a/source/exports/libtalloc.syms
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-	global:
-		talloc_*;
-		_talloc_*;
-	local: *;
-};
diff --git a/source/exports/libwbclient.syms b/source/exports/libwbclient.syms
deleted file mode 100644
index f1e68b4..0000000
--- a/source/exports/libwbclient.syms
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-	global: wbc*;
-	local: *;
-};
diff --git a/source/nsswitch/libwbclient/wbc_pam.c b/source/nsswitch/libwbclient/wbc_pam.c
index 0c1a32d..6385094 100644
--- a/source/nsswitch/libwbclient/wbc_pam.c
+++ b/source/nsswitch/libwbclient/wbc_pam.c
@@ -117,7 +117,7 @@ static wbcErr wbc_create_auth_info(TALLOC_CTX *mem_ctx,
 
 #define _SID_COMPOSE(s, d, r, a) { \
 	(s).sid = d; \
-	if ((s).sid.num_auths < MAXSUBAUTHS) { \
+	if ((s).sid.num_auths < WBC_MAXSUBAUTHS) { \
 		(s).sid.sub_auths[(s).sid.num_auths++] = r; \
 	} else { \
 		wbc_status = WBC_ERR_INVALID_SID; \
diff --git a/source/nsswitch/libwbclient/wbc_sid.c b/source/nsswitch/libwbclient/wbc_sid.c
index de9b028..deec8e5 100644
--- a/source/nsswitch/libwbclient/wbc_sid.c
+++ b/source/nsswitch/libwbclient/wbc_sid.c
@@ -139,7 +139,7 @@ wbcErr wbcStringToSid(const char *str,
 
 	p = q +1;
 	sid->num_auths = 0;
-	while (sid->num_auths < MAXSUBAUTHS) {
+	while (sid->num_auths < WBC_MAXSUBAUTHS) {
 		if ((x=(uint32_t)strtoul(p, &q, 10)) == 0)
 			break;
 		sid->sub_auths[sid->num_auths++] = x;
diff --git a/source/nsswitch/libwbclient/wbclient.c b/source/nsswitch/libwbclient/wbclient.c
index 6403c15..82decc2 100644
--- a/source/nsswitch/libwbclient/wbclient.c
+++ b/source/nsswitch/libwbclient/wbclient.c
@@ -136,5 +136,28 @@ void wbcFreeMemory(void *p)
 	return;
 }
 
+wbcErr wbcLibraryDetails(struct wbcLibraryDetails **_details)
+{
+	wbcErr wbc_status = WBC_ERR_UNKNOWN_FAILURE;
+	struct wbcLibraryDetails *info;
+
+	info = talloc(NULL, struct wbcLibraryDetails);
+	BAIL_ON_PTR_ERROR(info, wbc_status);
+
+	info->major_version = WBCLIENT_MAJOR_VERSION;
+	info->minor_version = WBCLIENT_MINOR_VERSION;
+	info->vendor_version = talloc_strdup(info,
+					     WBCLIENT_VENDOR_VERSION);
+	BAIL_ON_PTR_ERROR(info->vendor_version, wbc_status);
+
+	*_details = info;
+	info = NULL;
+
+	wbc_status = WBC_ERR_SUCCESS;
+
+done:
+	talloc_free(info);
+	return wbc_status;
+}
 
 
diff --git a/source/nsswitch/libwbclient/wbclient.h b/source/nsswitch/libwbclient/wbclient.h
index da466b4..2fefe0c 100644
--- a/source/nsswitch/libwbclient/wbclient.h
+++ b/source/nsswitch/libwbclient/wbclient.h
@@ -54,6 +54,19 @@ typedef enum _wbcErrType wbcErr;
 const char *wbcErrorString(wbcErr error);
 
 /**
+ *  @brief Some useful details about the wbclient library
+ *
+ **/
+#define WBCLIENT_MAJOR_VERSION 0
+#define WBCLIENT_MINOR_VERSION 1
+#define WBCLIENT_VENDOR_VERSION "Samba libwbclient"
+struct wbcLibraryDetails {
+	uint16_t major_version;
+	uint16_t minor_version;
+	const char *vendor_version;
+};
+
+/**
  *  @brief Some useful details about the running winbindd
  *
  **/
@@ -70,8 +83,8 @@ struct wbcInterfaceDetails {
  * Data types used by the Winbind Client API
  */
 
-#ifndef MAXSUBAUTHS
-#define MAXSUBAUTHS 15 /* max sub authorities in a SID */
+#ifndef WBC_MAXSUBAUTHS
+#define WBC_MAXSUBAUTHS 15 /* max sub authorities in a SID */
 #endif
 
 /**
@@ -83,7 +96,7 @@ struct wbcDomainSid {
 	uint8_t   sid_rev_num;
 	uint8_t   num_auths;
 	uint8_t   id_auth[6];
-	uint32_t  sub_auths[MAXSUBAUTHS];
+	uint32_t  sub_auths[WBC_MAXSUBAUTHS];
 };
 
 /**
@@ -319,6 +332,8 @@ wbcErr wbcStringToSid(const char *sid_string,
 
 wbcErr wbcPing(void);
 
+wbcErr wbcLibraryDetails(struct wbcLibraryDetails **details);
+
 wbcErr wbcInterfaceDetails(struct wbcInterfaceDetails **details);
 
 /*
diff --git a/source/script/mksyms.awk b/source/script/mksyms.awk
index a30bea4..dfe51db 100644
--- a/source/script/mksyms.awk
+++ b/source/script/mksyms.awk
@@ -9,9 +9,6 @@
 BEGIN {
 	inheader=0;
 	current_file="";
-	print "#"
-	print "# This file is automatically generated with \"make symbols\". DO NOT EDIT "
-	print "#"
 	print "{"
 	print "\tglobal:"
 }
diff --git a/source/script/mksyms.sh b/source/script/mksyms.sh
index 51d3fbd..673c77a 100755
--- a/source/script/mksyms.sh
+++ b/source/script/mksyms.sh
@@ -15,26 +15,50 @@ LANG=C; export LANG
 LC_ALL=C; export LC_ALL
 LC_COLLATE=C; export LC_COLLATE
 
-if [ $# -lt 2 ]
+if [ $# -lt 3 ]
 then
-  echo "Usage: $0 awk output_file header_files"
+  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~"
 
-proto_src="`echo $@ | tr ' ' '\n' | sort | uniq `"
+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}"
 
-echo creating $symsfile
+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`
 
-${awk} -f `dirname $0`/mksyms.awk $proto_src > $symsfile_tmp
+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


-- 
Samba Shared Repository


More information about the samba-cvs mailing list