hi Daniel, here is my proposed patch to allow, at configure, time the production of shared library with versioned symbols. i used it to build curl 7.14.1-1 debian package now in experimental.
i'd be very glad to see it applied to your source tree. feel free to modify any part of it but please let me know the final tag name in lib/libcurl.vers.in in order to match it in the next upload to debian unstable. cheers domenico Index: configure.ac =================================================================== RCS file: /cvsroot/pkg-curl/debian/curl/configure.ac,v retrieving revision 1.1.1.20 retrieving revision 1.2 diff -d -u -p -r1.1.1.20 -r1.2 --- configure.ac 1 Sep 2005 20:29:20 -0000 1.1.1.20 +++ configure.ac 15 Sep 2005 21:51:06 -0000 1.2 @@ -1105,9 +1105,50 @@ fi dnl only done if some kind of SSL was AM_CONDITIONAL(CABUNDLE, test x$ca != xno) +dnl ********************************************************************** +dnl Check for linker switch for versioned symbols +dnl ********************************************************************** + +AC_MSG_CHECKING([if libraries can be versioned]) +GLD=`$LD --help < /dev/null 2>/dev/null | grep version-script` +if test -z "$GLD"; then + versioned_symbols_flavour= + AC_MSG_RESULT(no) + AC_MSG_WARN(*** +*** You may want to rerun configure using --with-gnu-ld to enable versioned symbols. +) +else + AC_MSG_RESULT(yes) +AC_MSG_CHECKING([whether versioned symbols are wanted]) +versioned_symbols_flavour= + +AC_ARG_ENABLE(versioned-symbols, +AC_HELP_STRING([--enable-versioned-symbols], [Enable versioned symbols in shared library]) +AC_HELP_STRING([--disable-versioned-symbols], [Disable versioned symbols in shared library]), +[ case "$enableval" in + yes) AC_MSG_RESULT(yes) + if test "$OPENSSL_ENABLED" = "1"; then + versioned_symbols_flavour="OPENSSL_" + else + if test "$OPT_GNUTLS" != "no"; then + versioned_symbols_flavour="GNUTLS_" + fi + fi + ;; + + *) AC_MSG_RESULT(no) + ;; + esac +], [ +AC_MSG_RESULT(no) +] +) +fi + +AC_SUBST(VERSIONED_FLAVOUR, ["$versioned_symbols_flavour"]) +AM_CONDITIONAL(VERSIONED_SYMBOLS, test "$versioned_symbols_flavour" != "") - dnl ********************************************************************** dnl Check for the presence of ZLIB libraries and headers dnl ********************************************************************** @@ -1861,6 +1902,7 @@ AC_CONFIG_FILES([Makefile \ include/curl/Makefile \ src/Makefile \ lib/Makefile \ + lib/libcurl.vers \ tests/Makefile \ tests/data/Makefile \ tests/server/Makefile \ Index: lib/Makefile.am =================================================================== RCS file: /cvsroot/pkg-curl/debian/curl/lib/Makefile.am,v retrieving revision 1.1.1.18 retrieving revision 1.16 diff -d -u -p -r1.1.1.18 -r1.16 --- lib/Makefile.am 31 Mar 2005 07:02:03 -0000 1.1.1.18 +++ lib/Makefile.am 15 Sep 2005 21:51:32 -0000 1.16 @@ -82,7 +82,11 @@ if MIMPURE MIMPURE = -mimpure-text endif -libcurl_la_LDFLAGS = $(UNDEF) $(VERSION) $(MIMPURE) +if VERSIONED_SYMBOLS +VERSIONED_SYMBOLS = -Wl,--version-script=libcurl.vers +endif + +libcurl_la_LDFLAGS = $(UNDEF) $(VERSION) $(MIMPURE) $(VERSIONED_SYMBOLS) # Makefile.inc provides the CSOURCES and HHEADERS defines include Makefile.inc Index: lib/libcurl.vers.in =================================================================== RCS file: lib/libcurl.vers.in diff -N lib/libcurl.vers.in --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ lib/libcurl.vers.in 15 Sep 2005 21:47:03 -0000 1.1 @@ -0,0 +1,5 @@ [EMAIL PROTECTED]@3 +{ + global: curl_*; curlx_*; Curl_*; + local: *; +}; -----[ Domenico Andreoli, aka cavok --[ http://people.debian.org/~cavok/gpgkey.asc ---[ 3A0F 2F80 F79C 678A 8936 4FEE 0677 9033 A20E BC50 -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]