summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEliot Horowitz <eliot@10gen.com>2010-07-26 17:17:20 -0400
committerEliot Horowitz <eliot@10gen.com>2010-07-26 17:17:20 -0400
commita85b659bb6cc722a407e0fea6c39d2a523382a78 (patch)
tree121db2c9b985629f586aedb1d8b579504ed32c6d
parentd3d978a60187894e6f148ea35a2c7ba2ab6c0345 (diff)
downloadmongo-a85b659bb6cc722a407e0fea6c39d2a523382a78.tar.gz
SERVER-1266 -Wl,as-needed flag for shared library
-rw-r--r--SConstruct3
-rw-r--r--distsrc/client/SConstruct1
2 files changed, 4 insertions, 0 deletions
diff --git a/SConstruct b/SConstruct
index 1e8806af578..f6989a6469d 100644
--- a/SConstruct
+++ b/SConstruct
@@ -745,6 +745,9 @@ if nix:
env.Append( LINKFLAGS=" -fPIC -pthread -rdynamic" )
env.Append( LIBS=[] )
+ if GetOption( "sharedclient" ):
+ env.Append( LINKFLAGS=" -Wl,--as-needed -Wl,-zdefs " )
+
if debugBuild:
env.Append( CPPFLAGS=" -O0 -fstack-protector " );
env['ENV']['GLIBCXX_FORCE_NEW'] = 1; # play nice with valgrind
diff --git a/distsrc/client/SConstruct b/distsrc/client/SConstruct
index 8aa279be4a4..59b47d922c2 100644
--- a/distsrc/client/SConstruct
+++ b/distsrc/client/SConstruct
@@ -34,6 +34,7 @@ elif "linux2" == os.sys.platform:
if nix:
env.Append( CPPFLAGS=" -O3" )
+ env.Append( LINKFLAGS=" -Wl,--as-needed -Wl,-zdefs " )
boostLibs = [ "thread" , "filesystem" , "system" ]
env.Prepend( LIBS =["boost_%s-mt"%(lib) for lib in boostLibs ] )