[SCM] Samba Shared Repository - branch v3-5-test updated

Björn Jacke bjacke at samba.org
Tue Oct 20 03:01:20 MDT 2009


The branch, v3-5-test has been updated
       via  4d5f14b... s3:configure: add support for Solaris' ld -z ignore
       via  7aaec4f... s3: make unresolved symbols in libs throw errors
       via  78e8d76... s3: allow using different LDFLAGS for internal libs/plugins
      from  13ff1f6... s4-dsdb: fixed empty structure error on solaris8

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


- Log -----------------------------------------------------------------
commit 4d5f14bfd3c5de9887145caa53c3f08a7fe75a1b
Author: Björn Jacke <bj at sernet.de>
Date:   Tue Oct 20 08:01:52 2009 +0200

    s3:configure: add support for Solaris' ld -z ignore
    
    try linker flags for ignoring unused libs in this order:
    -Wl,--as-needed (gcc like + binutils)
    -Wl,-z,ignore (gcc like + Solaris linker)
    -z ignore (old Sun C)

commit 7aaec4fe68ce23b0b5880badac378f5ca4386389
Author: Björn Jacke <bj at sernet.de>
Date:   Tue Oct 20 01:13:56 2009 +0200

    s3: make unresolved symbols in libs throw errors
    
    except for the Samba internal plugins unresolved symbol references should not
    show up in shared libraries. For historical reasons it's the default behaviour
    of linkers to ignore those in shared libs. We use -z defs (alias
    --no-undefined) to not ignore them in shared libs.

commit 78e8d767877621fc34de9c7bb96837f82e80e358
Author: Björn Jacke <bj at sernet.de>
Date:   Sun Oct 18 22:51:06 2009 +0200

    s3: allow using different LDFLAGS for internal libs/plugins
    
    internal libs have unresolved symbols intentionally.
    Thanks to Buchan Milne for suggestion and patch. This addresses #6792.

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

Summary of changes:
 source3/Makefile.in  |  156 ++++++++++++++++++++++++++------------------------
 source3/configure.in |   48 +++++++++++-----
 2 files changed, 116 insertions(+), 88 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/Makefile.in b/source3/Makefile.in
index 4dbc8cd..6ce4769 100644
--- a/source3/Makefile.in
+++ b/source3/Makefile.in
@@ -45,10 +45,11 @@ CPPFLAGS=-DHAVE_CONFIG_H @CPPFLAGS@
 
 EXEEXT=@EXEEXT@
 AR=@AR@
-LDSHFLAGS=@LDSHFLAGS@ @RELRO_LDFLAGS@ @LDFLAGS@
+LDSHFLAGS=@LDSHFLAGS@ @RELRO_LDFLAGS@ @LDFLAGS@ @LDSHFLAGS_Z_DEFS@
+LDPLUGINFLAGS=@LDSHFLAGS@ @RELRO_LDFLAGS@ @LDFLAGS@ @LDSHFLAGS_Z_NODEFS@
 LDFLAGS=@PIE_LDFLAGS@ @RELRO_LDFLAGS@ @LDFLAGS@
 
-WINBIND_NSS_LDSHFLAGS=@WINBIND_NSS_LDSHFLAGS@ @LDFLAGS@
+WINBIND_NSS_LDSHFLAGS=@WINBIND_NSS_LDSHFLAGS@ @LDFLAGS@ @LDSHFLAGS_Z_DEFS@
 AWK=@AWK@
 PICFLAG=@PICFLAG@
 DYNEXP=@DYNEXP@
@@ -2431,9 +2432,12 @@ bin/libbigballofmud. at SHLIBEXT@: $(BINARY_PREREQS) $(LIBBIGBALLOFMUD_OBJ) $(LIBTA
 #
 #####################################################################
 
-# Linker command to link a RPC, VFS, AUTH, CHARSET or PASSDB module.
+# Linker command to link our shared libraries:
 SHLD_MODULE = $(SHLD) $(LDSHFLAGS) $(MODULE_EXPORTS) \
 	      -o $@ @SONAMEFLAG@`basename $@`
+# Linker command to link samba internal plugin modules:
+SHLD_PLUGIN = $(SHLD) $(LDPLUGINFLAGS) $(MODULE_EXPORTS) \
+	-o $@ @SONAMEFLAG@`basename $@`
 
 bin/librpc_lsarpc. at SHLIBEXT@: $(BINARY_PREREQS) $(RPC_LSA_OBJ)
 	@echo "Linking $@"
@@ -2526,292 +2530,296 @@ bin/pam_winbind. at SHLIBEXT@: $(BINARY_PREREQS) $(PAM_WINBIND_OBJ) $(LIBTALLOC) $(
 	@$(SHLD) $(LDSHFLAGS) -o $@ $(PAM_WINBIND_OBJ) -lpam @INIPARSERLIBS@ \
 		$(PAM_WINBIND_EXTRA_LIBS) $(LIBTALLOC_LIBS) $(LIBWBCLIENT_LIBS) @SONAMEFLAG@`basename $@`
 
+##########
+# Plugins:
+##########
+
 bin/builtin. at SHLIBEXT@: $(BINARY_PREREQS) $(AUTH_BUILTIN_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(AUTH_BUILTIN_OBJ)
+	@$(SHLD_PLUGIN) $(AUTH_BUILTIN_OBJ)
 
 bin/domain. at SHLIBEXT@: $(BINARY_PREREQS) $(AUTH_DOMAIN_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(AUTH_DOMAIN_OBJ)
+	@$(SHLD_PLUGIN) $(AUTH_DOMAIN_OBJ)
 
 bin/script. at SHLIBEXT@: $(BINARY_PREREQS) $(AUTH_SCRIPT_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(AUTH_SCRIPT_OBJ)
+	@$(SHLD_PLUGIN) $(AUTH_SCRIPT_OBJ)
 
 bin/netlogond. at SHLIBEXT@: $(BINARY_PREREQS) $(AUTH_NETLOGOND_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(AUTH_NETLOGOND_OBJ)
+	@$(SHLD_PLUGIN) $(AUTH_NETLOGOND_OBJ)
 
 bin/smbserver. at SHLIBEXT@: $(BINARY_PREREQS) $(AUTH_SERVER_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(AUTH_SERVER_OBJ)
+	@$(SHLD_PLUGIN) $(AUTH_SERVER_OBJ)
 
 bin/winbind. at SHLIBEXT@: $(BINARY_PREREQS) $(AUTH_WINBIND_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(AUTH_WINBIND_OBJ)
+	@$(SHLD_PLUGIN) $(AUTH_WINBIND_OBJ)
 
 bin/wbc. at SHLIBEXT@: $(BINARY_PREREQS) $(AUTH_WBC_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(AUTH_WBC_OBJ)
+	@$(SHLD_PLUGIN) $(AUTH_WBC_OBJ)
 
 bin/unix. at SHLIBEXT@: $(BINARY_PREREQS) $(AUTH_UNIX_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(AUTH_UNIX_OBJ)
+	@$(SHLD_PLUGIN) $(AUTH_UNIX_OBJ)
 
 bin/sam. at SHLIBEXT@: $(BINARY_PREREQS) $(AUTH_SAM_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(AUTH_SAM_OBJ)
+	@$(SHLD_PLUGIN) $(AUTH_SAM_OBJ)
 
 bin/ldapsam. at SHLIBEXT@: $(BINARY_PREREQS) passdb/pdb_ldap.o passdb/pdb_nds.o
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) passdb/pdb_ldap.o passdb/pdb_nds.o $(LDAP_LIBS)
+	@$(SHLD_PLUGIN) passdb/pdb_ldap.o passdb/pdb_nds.o $(LDAP_LIBS)
 
 bin/ads. at SHLIBEXT@: $(BINARY_PREREQS) passdb/pdb_ads.o
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) passdb/pdb_ads.o
+	@$(SHLD_PLUGIN) passdb/pdb_ads.o
 
 bin/tdbsam. at SHLIBEXT@: $(BINARY_PREREQS) passdb/pdb_tdb.o
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) passdb/pdb_tdb.o
+	@$(SHLD_PLUGIN) passdb/pdb_tdb.o
 
 bin/wbc_sam. at SHLIBEXT@: $(BINARY_PREREQS) passdb/pdb_wbc_sam.o
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) passdb/pdb_wbc_sam.o
+	@$(SHLD_PLUGIN) passdb/pdb_wbc_sam.o
 
 bin/smbpasswd. at SHLIBEXT@: $(BINARY_PREREQS) passdb/pdb_smbpasswd.o
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) passdb/pdb_smbpasswd.o
+	@$(SHLD_PLUGIN) passdb/pdb_smbpasswd.o
 
 bin/rid. at SHLIBEXT@: $(BINARY_PREREQS) winbindd/idmap_rid.o
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) winbindd/idmap_rid.o
+	@$(SHLD_PLUGIN) winbindd/idmap_rid.o
 
 bin/ad. at SHLIBEXT@: $(BINARY_PREREQS) winbindd/idmap_ad.o
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) winbindd/idmap_ad.o
+	@$(SHLD_PLUGIN) winbindd/idmap_ad.o
 
 bin/hash. at SHLIBEXT@: $(BINARY_PREREQS) $(IDMAP_HASH_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(IDMAP_HASH_OBJ)
+	@$(SHLD_PLUGIN) $(IDMAP_HASH_OBJ)
 
 bin/adex. at SHLIBEXT@: $(BINARY_PREREQS) $(IDMAP_ADEX_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(IDMAP_ADEX_OBJ)
+	@$(SHLD_PLUGIN) $(IDMAP_ADEX_OBJ)
 
 bin/tdb2. at SHLIBEXT@: $(BINARY_PREREQS) winbindd/idmap_tdb2.o
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) winbindd/idmap_tdb2.o
+	@$(SHLD_PLUGIN) winbindd/idmap_tdb2.o
 
 bin/ldap. at SHLIBEXT@: $(BINARY_PREREQS) winbindd/idmap_ldap.o
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) winbindd/idmap_ldap.o
+	@$(SHLD_PLUGIN) winbindd/idmap_ldap.o
 
 bin/weird. at SHLIBEXT@: $(BINARY_PREREQS) $(DEVEL_HELP_WEIRD_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(DEVEL_HELP_WEIRD_OBJ)
+	@$(SHLD_PLUGIN) $(DEVEL_HELP_WEIRD_OBJ)
 
 bin/CP850. at SHLIBEXT@: $(BINARY_PREREQS) $(CP850_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(CP850_OBJ)
+	@$(SHLD_PLUGIN) $(CP850_OBJ)
 
 bin/CP437. at SHLIBEXT@: $(BINARY_PREREQS) $(CP437_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(CP437_OBJ)
+	@$(SHLD_PLUGIN) $(CP437_OBJ)
 
 bin/macosxfs. at SHLIBEXT@: $(BINARY_PREREQS) $(CHARSET_MACOSXFS_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(CHARSET_MACOSXFS_OBJ) -framework CoreFoundation
+	@$(SHLD_PLUGIN) $(CHARSET_MACOSXFS_OBJ) -framework CoreFoundation
 
 # NOTE, there is no build rule for a dynamic default VFS module because
 # this one MUST MUST MUST be built statically.
 
 bin/audit. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_AUDIT_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_AUDIT_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_AUDIT_OBJ)
 
 bin/extd_audit. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_EXTD_AUDIT_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_EXTD_AUDIT_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_EXTD_AUDIT_OBJ)
 
 bin/full_audit. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_FULL_AUDIT_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_FULL_AUDIT_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_FULL_AUDIT_OBJ)
 
 bin/recycle. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_RECYCLE_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_RECYCLE_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_RECYCLE_OBJ)
 
 bin/netatalk. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_NETATALK_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_NETATALK_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_NETATALK_OBJ)
 
 bin/fake_perms. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_FAKE_PERMS_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_FAKE_PERMS_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_FAKE_PERMS_OBJ)
 
 bin/default_quota. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_DEFAULT_QUOTA_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_DEFAULT_QUOTA_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_DEFAULT_QUOTA_OBJ)
 
 bin/readonly. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_READONLY_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_READONLY_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_READONLY_OBJ)
 
 bin/shadow_copy. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_SHADOW_COPY_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_SHADOW_COPY_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_SHADOW_COPY_OBJ)
 
 bin/shadow_copy2. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_SHADOW_COPY2_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_SHADOW_COPY2_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_SHADOW_COPY2_OBJ)
 
 bin/syncops. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_SYNCOPS_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_SYNCOPS_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_SYNCOPS_OBJ)
 
 bin/cap. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_CAP_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_CAP_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_CAP_OBJ)
 
 bin/expand_msdfs. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_EXPAND_MSDFS_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_EXPAND_MSDFS_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_EXPAND_MSDFS_OBJ)
 
 bin/afsacl. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_AFSACL_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_AFSACL_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_AFSACL_OBJ)
 
 bin/xattr_tdb. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_XATTR_TDB_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_XATTR_TDB_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_XATTR_TDB_OBJ)
 
 bin/posixacl. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_POSIXACL_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_POSIXACL_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_POSIXACL_OBJ)
 
 bin/aixacl. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_AIXACL_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_AIXACL_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_AIXACL_OBJ)
 
 bin/aixacl2. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_AIXACL2_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_AIXACL2_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_AIXACL2_OBJ)
 
 bin/solarisacl. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_SOLARISACL_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_SOLARISACL_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_SOLARISACL_OBJ)
 
 bin/zfsacl. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_ZFSACL_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_ZFSACL_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_ZFSACL_OBJ)
 
 bin/irixacl. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_IRIXACL_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_IRIXACL_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_IRIXACL_OBJ)
 
 bin/hpuxacl. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_HPUXACL_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_HPUXACL_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_HPUXACL_OBJ)
 
 bin/tru64acl. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_TRU64ACL_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_TRU64ACL_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_TRU64ACL_OBJ)
 
 bin/catia. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_CATIA_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_CATIA_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_CATIA_OBJ)
 
 bin/streams_xattr. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_STREAMS_XATTR_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_STREAMS_XATTR_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_STREAMS_XATTR_OBJ)
 
 bin/streams_depot. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_STREAMS_DEPOT_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_STREAMS_DEPOT_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_STREAMS_DEPOT_OBJ)
 
 bin/cacheprime. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_CACHEPRIME_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_CACHEPRIME_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_CACHEPRIME_OBJ)
 
 bin/prealloc. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_PREALLOC_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_PREALLOC_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_PREALLOC_OBJ)
 
 bin/commit. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_COMMIT_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_COMMIT_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_COMMIT_OBJ)
 
 bin/gpfs. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_GPFS_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_GPFS_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_GPFS_OBJ)
 
 bin/notify_fam. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_NOTIFY_FAM_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_NOTIFY_FAM_OBJ) @SMB_FAM_LIBS@
+	@$(SHLD_PLUGIN) $(VFS_NOTIFY_FAM_OBJ) @SMB_FAM_LIBS@
 
 bin/readahead. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_READAHEAD_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_READAHEAD_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_READAHEAD_OBJ)
 
 bin/tsmsm. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_TSMSM_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_TSMSM_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_TSMSM_OBJ)
 
 bin/fileid. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_FILEID_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_FILEID_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_FILEID_OBJ)
 
 bin/aio_fork. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_AIO_FORK_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_AIO_FORK_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_AIO_FORK_OBJ)
 
 bin/preopen. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_PREOPEN_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_PREOPEN_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_PREOPEN_OBJ)
 
 bin/acl_xattr. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_ACL_XATTR_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_ACL_XATTR_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_ACL_XATTR_OBJ)
 
 bin/smb_traffic_analyzer. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_SMB_TRAFFIC_ANALYZER_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_SMB_TRAFFIC_ANALYZER_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_SMB_TRAFFIC_ANALYZER_OBJ)
 
 bin/acl_tdb. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_ACL_TDB_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_ACL_TDB_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_ACL_TDB_OBJ)
 
 bin/onefs. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_ONEFS_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_ONEFS_OBJ) @ONEFS_LIBS@
+	@$(SHLD_PLUGIN) $(VFS_ONEFS_OBJ) @ONEFS_LIBS@
 
 bin/onefs_shadow_copy. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_ONEFS_SHADOW_COPY_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_ONEFS_SHADOW_COPY_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_ONEFS_SHADOW_COPY_OBJ)
 
 bin/pc_onefs. at SHLIBEXT@: $(BINARY_PREREQS) $(PERFCOUNT_ONEFS_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(PERFCOUNT_ONEFS_OBJ)
+	@$(SHLD_PLUGIN) $(PERFCOUNT_ONEFS_OBJ)
 
 bin/pc_test. at SHLIBEXT@: $(BINARY_PREREQS) $(PERFCOUNT_TEST_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(PERFCOUNT_TEST_OBJ)
+	@$(SHLD_PLUGIN) $(PERFCOUNT_TEST_OBJ)
 
 bin/registry. at SHLIBEXT@: $(BINARY_PREREQS) libgpo/gpext/registry.o
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) libgpo/gpext/registry.o
+	@$(SHLD_PLUGIN) libgpo/gpext/registry.o
 
 bin/scripts. at SHLIBEXT@: $(BINARY_PREREQS) libgpo/gpext/scripts.o
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) libgpo/gpext/scripts.o
+	@$(SHLD_PLUGIN) libgpo/gpext/scripts.o
 
 bin/security. at SHLIBEXT@: $(BINARY_PREREQS) libgpo/gpext/security.o
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) libgpo/gpext/security.o
+	@$(SHLD_PLUGIN) libgpo/gpext/security.o
 
 bin/dirsort. at SHLIBEXT@: $(BINARY_PREREQS) $(VFS_DIRSORT_OBJ)
 	@echo "Building plugin $@"
-	@$(SHLD_MODULE) $(VFS_DIRSORT_OBJ)
+	@$(SHLD_PLUGIN) $(VFS_DIRSORT_OBJ)
 
 #########################################################
 ## IdMap NSS plugins
diff --git a/source3/configure.in b/source3/configure.in
index 8781cce..be93ce5 100644
--- a/source3/configure.in
+++ b/source3/configure.in
@@ -377,6 +377,10 @@ esac
 
 DYNEXP=
 AC_SUBST(DYNEXP)
+LDSHFLAGS_Z_DEFS=
+AC_SUBST(LDSHFLAGS_Z_DEFS)
+LDSHFLAGS_Z_NODEFS=
+AC_SUBST(LDSHFLAGS_Z_NODEFS)
 
 dnl Add modules that have to be built by default here
 dnl These have to be built static:
@@ -1507,10 +1511,9 @@ DSO_EXPORTS=""
 				AC_DEFINE(LINUX,1,[Whether the host os is linux]) ;;
 			esac
 			BLDSHARED="true"
+			LDSHFLAGS="-shared -Wl,-Bsymbolic"
 			if test "${ac_cv_gnu_ld_no_default_allow_shlib_undefined}" = "yes"; then
-				LDSHFLAGS="-shared -Wl,-Bsymbolic -Wl,--allow-shlib-undefined"
-			else
-				LDSHFLAGS="-shared -Wl,-Bsymbolic"
+				LDSHFLAGS_Z_NODEFS="-Wl,--allow-shlib-undefined"
 			fi
 			DYNEXP="-Wl,--export-dynamic"
 			PICFLAG="-fPIC"
@@ -1705,23 +1708,40 @@ fi
 
 AC_MSG_RESULT($BLDSHARED)
 
-if test x"${ac_cv_prog_gnu_ld}" = x"yes"; then
+for flags in "-Wl,--as-needed" "-Wl,-z,ignore" "-z ignore" ; do
 	saved_ldflags="$LDFLAGS"
-	AC_MSG_CHECKING([if --as-needed works])
-	LDFLAGS="--as-needed $saved_ldflags"
-	AC_TRY_LINK([],[],
-		[AC_MSG_RESULT([yes])
-		LD_AS_NEEDED_FLAG=--as-needed],
-		AC_MSG_RESULT([no]))
-	AC_MSG_CHECKING([if -Wl,--as-needed works])
-	LDFLAGS="-Wl,--as-needed $saved_ldflags"
+	AC_MSG_CHECKING([if $flags works])
+	LDFLAGS="$flags $saved_ldflags"
 	AC_TRY_LINK([],[],
 		[AC_MSG_RESULT([yes])
-		LD_AS_NEEDED_FLAG=-Wl,--as-needed],
+		LD_AS_NEEDED_FLAG=$flags
+		ld_as_needed_flag_found=yes],
 		AC_MSG_RESULT([no]))
 	LDFLAGS="$LD_AS_NEEDED_FLAG $saved_ldflags"
-fi
+	test x"$ld_as_needed_flag_found" = xyes && break
+done
+
+# for historical reasons almost all linkers don't complain about unresolved
+# symbols in shared libs. Except for the internal samba modules we want to get
+# errors when we produce a shared lib with unresolved symbols. On some
+# platforms unresolved symbols might be intended, so we might have to add
+# platform specific exceptions here.
+
+for flags in "-Wl,-z,defs" "-error_unresolved" "-Wl,-error_unresolved" ; do
+	saved_ldflags="$LDFLAGS"
+	AC_MSG_CHECKING([if $flags works])
+	LDFLAGS="$flags $saved_ldflags"
+	AC_TRY_LINK([],[],
+	[AC_MSG_RESULT([yes])
+	LDSHFLAGS_Z_DEFS=$flags
+	ldshflags_z_defs_found=yes],
+	AC_MSG_RESULT([no]))
+	LDFLAGS=$saved_ldflags
+	test x"$ldshflags_z_defs_found" = xyes && break
+done
 
+AC_MSG_CHECKING([LDSHFLAGS_Z_DEFS])
+AC_MSG_RESULT([$LDSHFLAGS_Z_DEFS])
 AC_MSG_CHECKING([LDFLAGS])
 AC_MSG_RESULT([$LDFLAGS])
 AC_MSG_CHECKING([DYNEXP])


-- 
Samba Shared Repository


More information about the samba-cvs mailing list