waf: fixed the handling of -Wl,-no-undefined
authorAndrew Tridgell <tridge@samba.org>
Thu, 21 Oct 2010 06:41:42 +0000 (17:41 +1100)
committerAndrew Tridgell <tridge@samba.org>
Thu, 21 Oct 2010 08:03:27 +0000 (19:03 +1100)
this flag was not being propogated to our link rules, so we were not
in fact enforcing no undefined symbols in libraries.

buildtools/wafsamba/samba_autoconf.py
buildtools/wafsamba/samba_deps.py
buildtools/wafsamba/wafsamba.py
source4/heimdal_build/wscript_build

index dffc5f0bdb47f3aad26be9cd84a5397d68a81e37..8cab1285956b075547c1d6a08d6882c74bd73b45 100644 (file)
@@ -457,6 +457,10 @@ def library_flags(conf, libs):
         extra_ldflags = TO_LIST(getattr(conf.env, 'LDFLAGS_%s' % lib.upper(), []))
         ccflags.extend(extra_ccflags)
         ldflags.extend(extra_ldflags)
+    if 'EXTRA_LDFLAGS' in conf.env:
+        ldflags.extend(conf.env['EXTRA_LDFLAGS'])
+    ccflags = unique_list(ccflags)
+    ldflags = unique_list(ldflags)
     return (ccflags, ldflags)
 
 
@@ -646,14 +650,6 @@ def CURRENT_CFLAGS(bld, target, cflags, hide_symbols=False):
     return ret
 
 
-def CURRENT_LDFLAGS(bld, target, cflags, hide_symbols=False):
-    '''work out the current loader flags. local flags are added first'''
-    flags = CURRENT_CFLAGS(bld, target, cflags, hide_symbols=hide_symbols)
-    if 'EXTRA_LDFLAGS' in bld.env:
-        flags.extend(bld.env['EXTRA_LDFLAGS'])
-    return flags
-
-
 @conf
 def CHECK_CC_ENV(conf):
     """trim whitespaces from 'CC'.
index 6ca5b5e5ef1ac91a2c4171dc7de29189b1a04b0d..c2b95bb1ffb515622a743095286dd07bd80868dc 100644 (file)
@@ -910,7 +910,7 @@ def show_object_duplicates(bld, tgt_list):
 # this provides a way to save our dependency calculations between runs
 savedeps_version = 3
 savedeps_inputs  = ['samba_deps', 'samba_includes', 'local_include', 'local_include_first', 'samba_cflags', 'source', 'grouping_library']
-savedeps_outputs = ['uselib', 'uselib_local', 'add_objects', 'includes', 'ccflags']
+savedeps_outputs = ['uselib', 'uselib_local', 'add_objects', 'includes', 'ccflags', 'ldflags']
 savedeps_outenv  = ['INC_PATHS']
 savedeps_envvars = ['NONSHARED_BINARIES', 'GLOBAL_DEPENDENCIES']
 savedeps_caches  = ['GLOBAL_DEPENDENCIES', 'TARGET_ALIAS', 'TARGET_TYPE', 'INIT_FUNCTIONS', 'SYSLIB_DEPS']
index 9927aef649f089fe567b0058d8884195c280a802..280ffd6ee24cf548224f8563d900e35322e4d475 100644 (file)
@@ -197,7 +197,6 @@ def SAMBA_LIBRARY(bld, libname, source,
         features        = features,
         source          = [],
         target          = bundled_name,
-        samba_cflags    = CURRENT_LDFLAGS(bld, libname, cflags),
         depends_on      = depends_on,
         samba_deps      = deps,
         samba_includes  = includes,
@@ -296,7 +295,6 @@ def SAMBA_BINARY(bld, binname, source,
         features       = features,
         source         = [],
         target         = binname,
-        samba_cflags   = CURRENT_LDFLAGS(bld, binname, cflags),
         samba_deps     = deps,
         samba_includes = includes,
         local_include  = local_include,
index ddcc76ec3c9f34e16c37ff972ce474f2252e173f..dc780b470b79533d04c29b182972bc2a49539fda 100644 (file)
@@ -2,7 +2,7 @@
 
 import os
 from samba_utils import SET_TARGET_TYPE
-from samba_autoconf import CURRENT_CFLAGS, CURRENT_LDFLAGS
+from samba_autoconf import CURRENT_CFLAGS
 
 def to_list(str):
     '''Split a list, preserving quoted strings and existing lists'''
@@ -219,7 +219,6 @@ def HEIMDAL_LIBRARY(libname, source, deps, vnum,
         features        = features,
         source          = [],
         target          = bundled_name,
-        samba_cflags    = CURRENT_LDFLAGS(bld, libname, cflags),
         samba_deps      = deps,
         samba_includes  = includes,
         vnum            = vnum,
@@ -320,7 +319,6 @@ def HEIMDAL_BINARY(binname, source,
         features       = features,
         source         = [],
         target         = binname,
-        samba_cflags   = CURRENT_LDFLAGS(bld, binname, cflags),
         samba_deps     = deps,
         samba_includes = includes,
         local_include  = True,