[SCM] Samba Shared Repository - branch v4-14-test updated

Karolin Seeger kseeger at samba.org
Wed Apr 14 07:35:01 UTC 2021


The branch, v4-14-test has been updated
       via  12bfc430063 build: Only add -Wl,--as-needed when supported
      from  0662726974b s3: smbd: fix deferred renames

https://git.samba.org/?p=samba.git;a=shortlog;h=v4-14-test


- Log -----------------------------------------------------------------
commit 12bfc43006347ad6f775181528b872c0a968f8cd
Author: Martin Schwenke <martin at meltin.net>
Date:   Mon Mar 29 16:30:37 2021 +1100

    build: Only add -Wl,--as-needed when supported
    
    If -Wl,--as-needed is added to EXTRA_LDFLAGS (via ADD_LDFLAGS, as per
    commit 996560191ac6bd603901dcd6c0de5d239e019ef4) then on some
    platforms (at least CentOS 8 and Fedora 33), any indirect/recursive
    dependencies (i.e. private libraries) are added to both the
    binary (reqid_test in the CTDB case) and to samba-util.so.  However,
    only samba-util.so has rpath set to find private libraries.
    
    When ld.so tries to resolve these dependencies for the binary it
    fails. This may be a bug on those platforms, but it occurs reliably
    and our users will also hit the bug.  For binaries that have other
    private library dependencies (e.g. bundled talloc) rpath will contain
    the private library directory so the duplicate private library
    dependencies are then found... that is, when it works, it works by
    accident!
    
    For some reason (deep in waf or wafsamba) if -Wl,--as-needed is added to
    LINKFLAGS (as is done in conf.add_as_needed()) then it works: the direct
    dependencies are only added to samba-util.so and the same depenencies
    (indirect dependencies for binaries) are not added incorrectly to the
    binaries.
    
    So, without changing 1/2 of waf/wafsamba the simplest fix is to revert
    to adding -Wl,--as-needed to LINKFLAGS, which was the case before
    commit 996560191ac6bd603901dcd6c0de5d239e019ef4.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=14288
    RN: Fix the build on OmniOS
    
    Signed-off-by: Amitay Isaacs <amitay at gmail.com>
    Signed-off-by: Martin Schwenke <martin at meltin.net>
    Reviewed-by: Bjoern Jacke <bj at sernet.de>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>
    (backported from commit ff1c3af603b47a7e8f9faad8d1c2e4a489559155)
    
    Autobuild-User(v4-14-test): Karolin Seeger <kseeger at samba.org>
    Autobuild-Date(v4-14-test): Wed Apr 14 07:34:20 UTC 2021 on sn-devel-184

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

Summary of changes:
 wscript | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)


Changeset truncated at 500 lines:

diff --git a/wscript b/wscript
index 334b2988234..172d05c052b 100644
--- a/wscript
+++ b/wscript
@@ -340,7 +340,8 @@ def configure(conf):
     # allows us to find problems on our development hosts faster.
     # It also results in faster load time.
 
-    conf.add_as_needed()
+    if conf.CHECK_LDFLAGS('-Wl,--as-needed'):
+        conf.env.append_unique('LINKFLAGS', '-Wl,--as-needed')
 
     if not conf.CHECK_NEED_LC("-lc not needed"):
         conf.ADD_LDFLAGS('-lc', testflags=False)


-- 
Samba Shared Repository



More information about the samba-cvs mailing list