The branch, v3-2-test has been updated via 760f24f10cbea7ce22acd0772fb5b125f718d129 (commit) via 20ec1f472566bbc570fa138cce5dbd0407aef530 (commit) via 4d02b1344b76c6147944188161f73ad3917b8abc (commit) via 57bea8cd02cb7964bbb64ba26b83c372f0e12b94 (commit) via 0ec16729299887b4a80a7e24fbd1750632276691 (commit) via 9f862e9faf0fa9cddfcc2f87d9f247082718b3e0 (commit) via 322cf8002bab1e449616d9fcea0bd4c9535cfe6a (commit) via 63b7690335360a073dc1ae111f740a7934f1a92f (commit) via 48c70f604071fcf7c0887fe0136bdc2dda4c8ff4 (commit) via 4904af51cdccd4e52d2805bd62f39276447c4646 (commit) via 809fee4bef66eb8b8687f88257c0d6f77d3b4063 (commit) from e1fcd851ab38165eb0e959cdc02ff067614f8b28 (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-test - Log ----------------------------------------------------------------- commit 760f24f10cbea7ce22acd0772fb5b125f718d129 Author: metze <[EMAIL PROTECTED]> Date: Tue Nov 6 07:01:17 2007 +0000 libreplace: we should only have one location where we check for required functions metze git-svn-id: svn+ssh://svn.samba.org/data/svn/samba/branches/[EMAIL PROTECTED] 0c0555d6-39d7-0310-84fc-f1cc0bd64818 commit 20ec1f472566bbc570fa138cce5dbd0407aef530 Author: metze <[EMAIL PROTECTED]> Date: Tue Nov 6 06:54:49 2007 +0000 libreplace: we need include <unistd.h> before nss_wrapper.h metze git-svn-id: svn+ssh://svn.samba.org/data/svn/samba/branches/[EMAIL PROTECTED] 0c0555d6-39d7-0310-84fc-f1cc0bd64818 commit 4d02b1344b76c6147944188161f73ad3917b8abc Author: jelmer <[EMAIL PROTECTED]> Date: Tue Nov 6 04:59:50 2007 +0000 Fix export dynamic for HPUX. git-svn-id: svn+ssh://svn.samba.org/data/svn/samba/branches/[EMAIL PROTECTED] 0c0555d6-39d7-0310-84fc-f1cc0bd64818 commit 57bea8cd02cb7964bbb64ba26b83c372f0e12b94 Author: jelmer <[EMAIL PROTECTED]> Date: Tue Nov 6 04:26:57 2007 +0000 Remove flag that causes problems on some hosts. git-svn-id: svn+ssh://svn.samba.org/data/svn/samba/branches/[EMAIL PROTECTED] 0c0555d6-39d7-0310-84fc-f1cc0bd64818 commit 0ec16729299887b4a80a7e24fbd1750632276691 Author: jelmer <[EMAIL PROTECTED]> Date: Tue Nov 6 04:26:52 2007 +0000 Wrap native HPUX functions in dl implementation. git-svn-id: svn+ssh://svn.samba.org/data/svn/samba/branches/[EMAIL PROTECTED] 0c0555d6-39d7-0310-84fc-f1cc0bd64818 commit 9f862e9faf0fa9cddfcc2f87d9f247082718b3e0 Author: jelmer <[EMAIL PROTECTED]> Date: Tue Nov 6 03:43:50 2007 +0000 Check for HPUX dl functions. git-svn-id: svn+ssh://svn.samba.org/data/svn/samba/branches/[EMAIL PROTECTED] 0c0555d6-39d7-0310-84fc-f1cc0bd64818 commit 322cf8002bab1e449616d9fcea0bd4c9535cfe6a Author: jelmer <[EMAIL PROTECTED]> Date: Tue Nov 6 02:35:46 2007 +0000 Move SHLIBEXT determination into a test as well. git-svn-id: svn+ssh://svn.samba.org/data/svn/samba/branches/[EMAIL PROTECTED] 0c0555d6-39d7-0310-84fc-f1cc0bd64818 commit 63b7690335360a073dc1ae111f740a7934f1a92f Author: jelmer <[EMAIL PROTECTED]> Date: Tue Nov 6 02:17:05 2007 +0000 Move system-specific ldflags checks to libreplace so they can be used by ldb. git-svn-id: svn+ssh://svn.samba.org/data/svn/samba/branches/[EMAIL PROTECTED] 0c0555d6-39d7-0310-84fc-f1cc0bd64818 commit 48c70f604071fcf7c0887fe0136bdc2dda4c8ff4 Author: jelmer <[EMAIL PROTECTED]> Date: Tue Nov 6 02:16:55 2007 +0000 Add macro for picflag. git-svn-id: svn+ssh://svn.samba.org/data/svn/samba/branches/[EMAIL PROTECTED] 0c0555d6-39d7-0310-84fc-f1cc0bd64818 commit 4904af51cdccd4e52d2805bd62f39276447c4646 Author: jelmer <[EMAIL PROTECTED]> Date: Tue Nov 6 01:05:19 2007 +0000 Add configure test for -Wl,--export-dynamic. git-svn-id: svn+ssh://svn.samba.org/data/svn/samba/branches/[EMAIL PROTECTED] 0c0555d6-39d7-0310-84fc-f1cc0bd64818 commit 809fee4bef66eb8b8687f88257c0d6f77d3b4063 Author: metze <[EMAIL PROTECTED]> Date: Mon Nov 5 15:45:08 2007 +0000 libreplace: include nss_wrapper.h if NSS_WRAPPER is defined metze git-svn-id: svn+ssh://svn.samba.org/data/svn/samba/branches/[EMAIL PROTECTED] 0c0555d6-39d7-0310-84fc-f1cc0bd64818 ----------------------------------------------------------------------- Summary of changes: source/lib/replace/dlfcn.c | 16 ++++ source/lib/replace/dlfcn.m4 | 5 ++ source/lib/replace/libreplace.m4 | 6 +- source/lib/replace/libreplace_ld.m4 | 129 +++++++++++++++++++++++++++++++++++ source/lib/replace/system/passwd.h | 10 +++ 5 files changed, 162 insertions(+), 4 deletions(-) create mode 100644 source/lib/replace/libreplace_ld.m4 Changeset truncated at 500 lines: diff --git a/source/lib/replace/dlfcn.c b/source/lib/replace/dlfcn.c index 46aaaa4..4284884 100644 --- a/source/lib/replace/dlfcn.c +++ b/source/lib/replace/dlfcn.c @@ -23,6 +23,9 @@ */ #include "replace.h" +#ifdef HAVE_DL_H +#include <dl.h> +#endif #ifndef HAVE_DLOPEN #ifdef DLOPEN_TAKES_UNSIGNED_FLAGS @@ -31,13 +34,22 @@ void *rep_dlopen(const char *name, unsigned int flags) void *rep_dlopen(const char *name, int flags) #endif { +#ifdef HAVE_SHL_LOAD + return (void *)shl_load(name, flags, 0); +#else return NULL; +#endif } #endif #ifndef HAVE_DLSYM void *rep_dlsym(void *handle, const char *symbol) { +#ifdef HAVE_SHL_FINDSYM + void *sym_addr; + if (!shl_findsym((shl_t *)&handle, symbol, TYPE_UNDEFINED, &sym_addr)) + return sym_addr; +#endif return NULL; } #endif @@ -52,6 +64,10 @@ char *rep_dlerror(void) #ifndef HAVE_DLCLOSE int rep_dlclose(void *handle) { +#ifdef HAVE_SHL_CLOSE + return shl_unload((shl_t)handle); +#else return 0; +#endif } #endif diff --git a/source/lib/replace/dlfcn.m4 b/source/lib/replace/dlfcn.m4 index c5b7597..42f56f2 100644 --- a/source/lib/replace/dlfcn.m4 +++ b/source/lib/replace/dlfcn.m4 @@ -8,6 +8,11 @@ AC_SEARCH_LIBS(dlopen, dl) AC_CHECK_HEADERS(dlfcn.h) AC_CHECK_FUNCS([dlopen dlsym dlerror dlclose],[],[libreplace_cv_dlfcn=yes]) +libreplace_cv_shl=no +AC_SEARCH_LIBS(shl_load, sl) +AC_CHECK_HEADERS(dl.h) +AC_CHECK_FUNCS([shl_load shl_unload shl_findsym],[],[libreplace_cv_shl=yes]) + AC_VERIFY_C_PROTOTYPE([void *dlopen(const char* filename, unsigned int flags)], [ return 0; diff --git a/source/lib/replace/libreplace.m4 b/source/lib/replace/libreplace.m4 index dd7dbf4..c10a4b2 100644 --- a/source/lib/replace/libreplace.m4 +++ b/source/lib/replace/libreplace.m4 @@ -280,9 +280,6 @@ AC_TRY_CPP([ eprintf("bla", "bar"); ], AC_DEFINE(HAVE__VA_ARGS__MACRO, 1, [Whether the __VA_ARGS__ macro is available])) -# Check prerequisites -AC_CHECK_FUNCS([memset printf syslog], [], - [ AC_MSG_ERROR([Required function not found])]) AC_CACHE_CHECK([for sig_atomic_t type],samba_cv_sig_atomic_t, [ AC_TRY_COMPILE([ @@ -331,7 +328,7 @@ m4_include(inet_pton.m4) m4_include(getaddrinfo.m4) m4_include(repdir.m4) -AC_CHECK_FUNCS([syslog memset memcpy],,[AC_MSG_ERROR([Required function not found])]) +AC_CHECK_FUNCS([syslog printf memset memcpy],,[AC_MSG_ERROR([Required function not found])]) echo "LIBREPLACE_BROKEN_CHECKS: END" ]) dnl end AC_LIBREPLACE_BROKEN_CHECKS @@ -355,5 +352,6 @@ CFLAGS="$CFLAGS -I$libreplacedir" ]) m4_include(libreplace_cc.m4) +m4_include(libreplace_ld.m4) m4_include(libreplace_macros.m4) m4_include(autoconf-2.60.m4) diff --git a/source/lib/replace/libreplace_ld.m4 b/source/lib/replace/libreplace_ld.m4 new file mode 100644 index 0000000..cc5cefa --- /dev/null +++ b/source/lib/replace/libreplace_ld.m4 @@ -0,0 +1,129 @@ +AC_DEFUN([AC_LD_EXPORT_DYNAMIC], +[ +saved_LDFLAGS="$LDFLAGS" +if AC_TRY_COMMAND([${CC-cc} $CFLAGS -Wl,--version 2>&1 | grep "GNU ld" >/dev/null]); then + LD_EXPORT_DYNAMIC="-Wl,-export-dynamic" +else + case "$host_os" in + hpux* ) + LD_EXPORT_DYNAMIC="-Wl,-E" + ;; + * ) + LD_EXPORT_DYNAMIC="" + ;; + esac +fi +AC_SUBST(LD_EXPORT_DYNAMIC) +LDFLAGS="$saved_LDFLAGS" +]) + +AC_DEFUN([AC_LD_PICFLAG], +[ +case "$host_os" in + *linux*) + PICFLAG="-fPIC" + ;; + *solaris*) + if test "${GCC}" = "yes"; then + PICFLAG="-fPIC" + else + PICFLAG="-KPIC" + fi + ;; + *sunos*) + PICFLAG="-KPIC" # Is this correct for SunOS + ;; + *netbsd* | *freebsd* | *dragonfly* ) + PICFLAG="-fPIC -DPIC" + ;; + *openbsd*) + PICFLAG="-fPIC" + ;; + *irix*) + if test "${GCC}" = "yes"; then + PICFLAG="-fPIC" + else + PICFLAG="-KPIC" + fi + ;; + *aix*) + # as AIX code is always position independent... + PICFLAG="-O2" + ;; + *hpux*) + if test $ac_cv_prog_cc_Ae = yes; then + PICFLAG="+z +ESnolit" + elif test "${GCC}" = "yes"; then + PICFLAG="-fPIC" + fi + if test "$host_cpu" = "ia64"; then + PICFLAG="+z" + fi + ;; + *osf*) + PICFLAG="-fPIC" + ;; + *unixware*) + PICFLAG="-KPIC" + ;; + *darwin*) + ;; +esac +AC_SUBST(PICFLAG) +]) + +AC_DEFUN([AC_LD_SHLDFLAGS], +[ + SHLD_FLAGS="-shared" + + case "$host_os" in + *linux*) + SHLD_FLAGS="-shared -Wl,-Bsymbolic" + ;; + *solaris*) + SHLD_FLAGS="-G" + if test "${GCC}" = "no"; then + ## ${CFLAGS} added for building 64-bit shared + ## libs using Sun's Compiler + SHLD_FLAGS="-G \${CFLAGS}" + fi + ;; + *sunos*) + SHLD_FLAGS="-G" + ;; + *irix*) + SHLD_FLAGS="-shared" + ;; + *aix*) + SHLD_FLAGS="-Wl,-G,-bexpall,-bbigtoc" + ;; + *hpux*) + if test $ac_cv_prog_cc_Ae = yes; then + SHLD_FLAGS="-b -Wl,-B,symbolic,-b,-z" + fi + ;; + *darwin*) + SHLD_FLAGS="-bundle -flat_namespace -undefined suppress" + ;; + esac + + AC_SUBST(SHLD_FLAGS) +]) + +AC_DEFUN([AC_LD_SHLIBEXT], +[ + SHLIBEXT="so" + case "$host_os" in + *hpux*) + if test "$host_cpu" = "ia64"; then + SHLIBEXT="so" + else + SHLIBEXT="sl" + fi + ;; + *darwin*) + SHLIBEXT="dylib" + ;; + esac + AC_SUBST(SHLIBEXT) +]) diff --git a/source/lib/replace/system/passwd.h b/source/lib/replace/system/passwd.h index 53d35e7..36fca7b 100644 --- a/source/lib/replace/system/passwd.h +++ b/source/lib/replace/system/passwd.h @@ -27,6 +27,9 @@ */ +/* this needs to be included before nss_wrapper.h on some systems */ +#include <unistd.h> + #ifdef HAVE_PWD_H #include <pwd.h> #endif @@ -93,4 +96,11 @@ char *rep_getpass(const char *prompt); #define ULTRIX_AUTH 1 #endif +#ifdef NSS_WRAPPER +#ifndef NSS_WRAPPER_NOT_REPLACE +#define NSS_WRAPPER_REPLACE +#endif +#include "lib/nss_wrapper/nss_wrapper.h" +#endif + #endif -- Samba Shared Repository