Merge branch 'v3-2-test' of ssh://git.samba.org/data/git/samba into v3-2-test
authorJelmer Vernooij <jelmer@samba.org>
Tue, 8 Jan 2008 14:43:11 +0000 (15:43 +0100)
committerJelmer Vernooij <jelmer@samba.org>
Tue, 8 Jan 2008 14:43:11 +0000 (15:43 +0100)
(This used to be commit ea36c3add588061cf338deabb2d8952f2213a8bd)

source3/Makefile.in
source3/configure.in
source3/lib/replace/libreplace_ld.m4
source3/script/tests/tests_all.sh

index 3e02b894f9143294b5c92c02caee8a3b1dece821..a3a7e5628f43a7f8070dc6a9ffeee41bd8c7a755 100644 (file)
@@ -21,6 +21,7 @@ smbtorture4_path=@smbtorture4_path@
 LIBS=@LIBS@
 CC=@CC@
 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/'`
@@ -2155,16 +2156,18 @@ test_pam_modules: pam_modules
                        || exit 1; \
        done
 
+
 ##
 ## Targets for 'make test'
 ##
 test: all torture timelimit
        @echo Running Test suite
-       @PERL="$(PERL)" $(srcdir)/script/tests/selftest.sh ${selftest_prefix}/st all "${smbtorture4_path}"
+       @LIB_PATH_VAR=$(LIB_PATH_VAR) PERL="$(PERL)" $(srcdir)/script/tests/selftest.sh ${selftest_prefix}/st all "${smbtorture4_path}"
 
 valgrindtest: all torture timelimit
        @echo Running Test suite with valgrind
-       @NMBD_VALGRIND="xterm -n nmbd -e valgrind -q --db-attach=yes --num-callers=30" \
+       @LIB_PATH_VAR=$(LIB_PATH_VAR) \
+        NMBD_VALGRIND="xterm -n nmbd -e valgrind -q --db-attach=yes --num-callers=30" \
         WINBINDD_VALGRIND="xterm -n winbindd -e valgrind -q --db-attach=yes --num-callers=30" \
         SMBD_VALGRIND="xterm -n smbd -e valgrind -q --db-attach=yes --num-callers=30" \
         VALGRIND="valgrind -q --num-callers=30 --log-file=${selftest_prefix}/st/valgrind.log" \
index 934a99462bd61da1419a22423b62b94d5653e185..5eb85c727d12bf0d46f861b617cd3d46ccb9649a 100644 (file)
@@ -2037,6 +2037,8 @@ AC_MSG_RESULT([$PICFLAG])
 
 AC_DEFINE_UNQUOTED(SHLIBEXT, "$SHLIBEXT", [Shared library extension])
 
+AC_LIBREPLACE_RUNTIME_LIB_PATH_VAR
+
 ################
 
 AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[
index fd85ef9fc45f1a353ebd80813fe36838b4c3a4fe..cb8e21434e9de5b2d031ce9eb457ef9042c42fb2 100644 (file)
@@ -1,3 +1,23 @@
+#
+# This offers a nice overview how to build shared libraries on all platforms
+#        http://www.fortran-2000.com/ArnaudRecipes/sharedlib.html
+#
+
+AC_DEFUN([AC_LIBREPLACE_STLD],
+[
+       AC_PATH_PROG(PROG_AR, ar)
+
+       STLD=${PROG_AR}
+
+       AC_SUBST(STLD)
+])
+
+AC_DEFUN([AC_LIBREPLACE_STLD_FLAGS],
+[
+       STLD_FLAGS="-rcs"
+       AC_SUBST(STLD_FLAGS)
+])
+
 AC_DEFUN([AC_LD_EXPORT_DYNAMIC],
 [
 saved_LDFLAGS="$LDFLAGS"
@@ -67,48 +87,102 @@ case "$host_os" in
                PICFLAG="-KPIC"
                ;;
        *darwin*)
+               PICFLAG="-fno-common"
                ;;
 esac
 AC_SUBST(PICFLAG)
 ])
 
-AC_DEFUN([AC_LD_SHLDFLAGS],
+AC_DEFUN([AC_LIBREPLACE_LD_SHLIB_LINKER],
+[
+       LD_SHLIB_LINKER="${CC}"
+
+       case "$host_os" in
+               *irix*)
+                       LD_SHLIB_LINKER="${PROG_LD}"
+                       ;;
+       esac
+
+       AC_SUBST(LD_SHLIB_LINKER)
+])
+
+AC_DEFUN([AC_LIBREPLACE_LD_SHLIB_FLAGS],
 [
-       SHLD_FLAGS="-shared"
+       LD_SHLIB_FLAGS="-shared"
 
        case "$host_os" in
                *linux*)
-                       SHLD_FLAGS="-shared -Wl,-Bsymbolic"
+                       LD_SHLIB_FLAGS="-shared -Wl,-Bsymbolic"
                        ;;
                *solaris*)
-                       SHLD_FLAGS="-G"
+                       LD_SHLIB_FLAGS="-G"
                        if test "${GCC}" = "no"; then
                                ## ${CFLAGS} added for building 64-bit shared 
                                ## libs using Sun's Compiler
-                               SHLD_FLAGS="-G \${CFLAGS}"
+                               LD_SHLIB_FLAGS="-G \${CFLAGS}"
                        fi
                        ;;
                *sunos*)
-                       SHLD_FLAGS="-G"
+                       LD_SHLIB_FLAGS="-G"
                        ;;
                *irix*)
-                       SHLD_FLAGS="-shared"
+                       LD_SHLIB_FLAGS="-shared"
                        ;;
                *aix*)
-                       SHLD_FLAGS="-Wl,-G,-bexpall,-bbigtoc"
+                       LD_SHLIB_FLAGS="-Wl,-G,-bexpall,-bbigtoc"
                        ;;
                *hpux*)
                        if test "${GCC}" = "yes"; then
-                               SHLD_FLAGS="-shared"
+                               LD_SHLIB_FLAGS="-shared"
                        else
-                               SHLD_FLAGS="-b"
+                               LD_SHLIB_FLAGS="-b"
                        fi
                        ;;
+               *osf*)
+                       LD_SHLIB_FLAGS="-shared"
+                       ;;
                *darwin*)
-                       SHLD_FLAGS="-dynamiclib"
+                       LD_SHLIB_FLAGS="-dynamiclib -Wl,-search_paths_first"
                        ;;
        esac
 
+       AC_SUBST(LD_SHLIB_FLAGS)
+])
+
+AC_DEFUN([AC_LIBREPLACE_LD_SHLIB_DISALLOW_UNDEF_FLAG],
+[
+       LD_SHLIB_DISALLOW_UNDEF_FLAG=""
+
+       #
+       # TODO: enforce error not only warnings
+       #
+       # NOTE: -Wl,--no-allow-shlib-undefined isn't what we want...
+       #       as it bails out on broken system libraries
+       #
+       case "$host_os" in
+               *osf*)
+                       LD_SHLIB_DISALLOW_UNDEF_FLAG="-warning_unresolved"
+                       ;;
+               *darwin*)
+                       LD_SHLIB_DISALLOW_UNDEF_FLAG="-undefined error"
+                       ;;
+       esac
+
+       AC_SUBST(LD_SHLIB_DISALLOW_UNDEF_FLAG)
+])
+
+AC_DEFUN([AC_LIBREPLACE_SHLD],
+[
+       AC_REQUIRE([AC_LIBREPLACE_LD_SHLIB_LINKER])
+       SHLD="$LD_SHLIB_LINKER"
+       AC_SUBST(SHLD)
+])
+
+AC_DEFUN([AC_LIBREPLACE_SHLD_FLAGS],
+[
+       AC_REQUIRE([AC_LIBREPLACE_LD_SHLIB_FLAGS])
+       AC_REQUIRE([AC_LIBREPLACE_LD_SHLIB_DISALLOW_UNDEF_FLAG])
+       SHLD_FLAGS="$LD_SHLIB_FLAGS $LD_SHLIB_DISALLOW_UNDEF_FLAG"
        AC_SUBST(SHLD_FLAGS)
 ])
 
@@ -157,7 +231,7 @@ AC_DEFUN([AC_LD_SONAMEFLAG],
                        SONAMEFLAG="-Wl,-soname,"
                        ;;
                *hpux*)
-                       SONAMEFLAG="-Wl,+h "
+                       SONAMEFLAG="-Wl,+h,"
                        ;;
                *osf*)
                        SONAMEFLAG="-Wl,-soname,"
@@ -166,7 +240,74 @@ AC_DEFUN([AC_LD_SONAMEFLAG],
                        SONAMEFLAG="-Wl,-soname,"
                        ;;
                *darwin*)
-                       SONAMEFLAG="-install_name "
+                       SONAMEFLAG="#"
+                       ;;
+               *aix*)
+                       # Not supported
+                       SONAMEFLAG="#"
                        ;;
                esac
 ])
+
+AC_DEFUN([AC_LIBREPLACE_MDLD],
+[
+       AC_REQUIRE([AC_LIBREPLACE_LD_SHLIB_LINKER])
+       MDLD="$LD_SHLIB_LINKER"
+       AC_SUBST(MDLD)
+])
+
+AC_DEFUN([AC_LIBREPLACE_LD_SHLIB_ALLOW_UNDEF_FLAG],
+[
+       LD_ALLOW_SHLIB_UNDEF_FLAG=""
+
+       case "$host_os" in
+               *linux*)
+                       LD_SHLIB_ALLOW_UNDEF_FLAG="-Wl,--allow-shlib-undefined"
+                       ;;
+               *osf*)
+                       LD_SHLIB_ALLOW_UNDEF_FLAG="-expect_unresolved '*'"
+                       ;;
+               *darwin*)
+                       LD_SHLIB_ALLOW_UNDEF_FLAG="-undefined dynamic_lookup"
+                       ;;
+       esac
+
+       AC_SUBST(LD_SHLIB_ALLOW_UNDEF_FLAG)
+])
+
+AC_DEFUN([AC_LIBREPLACE_MDLD_FLAGS],
+[
+       AC_REQUIRE([AC_LIBREPLACE_LD_SHLIB_FLAGS])
+       AC_REQUIRE([AC_LIBREPLACE_LD_SHLIB_ALLOW_UNDEF_FLAG])
+       MDLD_FLAGS="$LD_SHLIB_FLAGS $LD_SHLIB_ALLOW_UNDEF_FLAG"
+       AC_SUBST(MDLD_FLAGS)
+])
+
+AC_DEFUN([AC_LIBREPLACE_RUNTIME_LIB_PATH_VAR],
+[
+       case "$host_os" in
+               *linux*)
+                       LIB_PATH_VAR=LD_LIBRARY_PATH
+               ;;
+               *solaris*)
+                       LIB_PATH_VAR=LD_LIBRARY_PATH
+               ;;
+               *hpux*)
+                       LIB_PATH_VAR=SHLIB_PATH
+               ;;
+               *osf*)
+                       LIB_PATH_VAR=LD_LIBRARY_PATH
+               ;;
+               *aix*)
+                       LIB_PATH_VAR=LIB_PATH
+                       ;;
+               *irix*)
+                       LIB_PATH_VAR=LD_LIBRARY_PATH
+                       ;;
+               *darwin*)
+                       LIB_PATH_VAR=DYLD_LIBRARY_PATH
+                       ;;
+       esac
+
+       AC_SUBST(LIB_PATH_VAR)
+])
index 2edc0250175c748a5690ccdedb3dc253f7f2d26b..259e28e6e7f42c6ae6d2473c67a35fb413a34eac 100755 (executable)
@@ -1,4 +1,3 @@
-
 $SCRIPTDIR/test_local_s3.sh || failed=`expr $failed + $?`
 $SCRIPTDIR/test_smbtorture_s3.sh //$SERVER_IP/tmp $USERNAME $PASSWORD "" || failed=`expr $failed + $?`
 echo "Testing encrypted"
@@ -8,9 +7,8 @@ echo "Testing encrypted"
 $SCRIPTDIR/test_smbclient_s3.sh $SERVER $SERVER_IP "-e" || failed=`expr $failed + $?`
 $SCRIPTDIR/test_wbinfo_s3.sh $WORKGROUP $SERVER $USERNAME $PASSWORD || failed=`expr $failed + $?`
 
-LD_LIBRARY_PATH="$SAMBA4SHAREDDIR:$LD_LIBRARY_PATH"
-echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
-export LD_LIBRARY_PATH
+eval "$LIB_PATH_VAR="\$SAMBA4SHAREDDIR:\$$LIB_PATH_VAR"; export $LIB_PATH_VAR"
+eval echo "$LIB_PATH_VAR=\$$LIB_PATH_VAR"
 SMBTORTURE4VERSION=`$SMBTORTURE4 --version`
 if [ -n "$SMBTORTURE4" -a -n "$SMBTORTURE4VERSION" ];then
        echo "Running Tests with Samba4's smbtorture"