diff options
author | Matthieu Patou <mat@matws.net> | 2010-12-10 23:16:28 +0300 |
---|---|---|
committer | Matthieu Patou <mat@matws.net> | 2010-12-10 23:22:28 +0300 |
commit | 6875a611a71bf6d1623fc62361fc8b145b1f6559 (patch) | |
tree | f89ff636489f5b1cadafa2a2a30f509398cb3c1b | |
parent | 26a37284b9caffa1e2aebad27d683b15632e7240 (diff) | |
download | samba-6875a611a71bf6d1623fc62361fc8b145b1f6559.tar.gz samba-6875a611a71bf6d1623fc62361fc8b145b1f6559.tar.bz2 samba-6875a611a71bf6d1623fc62361fc8b145b1f6559.zip |
build: add a function to test if -lc is needed
This is needed on openbsd as some linking flags makes mandatory to
specify the libc for the linking
-rw-r--r-- | buildtools/wafsamba/samba_conftests.py | 45 | ||||
-rw-r--r-- | source4/wscript | 2 |
2 files changed, 47 insertions, 0 deletions
diff --git a/buildtools/wafsamba/samba_conftests.py b/buildtools/wafsamba/samba_conftests.py index 2246ac3fa5..c7e596d27a 100644 --- a/buildtools/wafsamba/samba_conftests.py +++ b/buildtools/wafsamba/samba_conftests.py @@ -108,6 +108,51 @@ int foo(int v) { return conf.check(features='cc cshlib',vnum="1",fragment=snip,msg=msg) @conf +def CHECK_NEED_LC(conf, msg): + '''check if we need -lc''' + + dir = find_config_dir(conf) + + env = conf.env + + bdir = os.path.join(dir, 'testbuild2') + if not os.path.exists(bdir): + os.makedirs(bdir) + + + subdir = os.path.join(dir, "liblctest") + + os.makedirs(subdir) + + dest = open(os.path.join(subdir, 'liblc1.c'), 'w') + dest.write('#include <stdio.h>\nint lib_func(void) { FILE *f = fopen("foo", "r");}\n') + dest.close() + + bld = Build.BuildContext() + bld.log = conf.log + bld.all_envs.update(conf.all_envs) + bld.all_envs['default'] = env + bld.lst_variants = bld.all_envs.keys() + bld.load_dirs(dir, bdir) + + bld.rescan(bld.srcnode) + + bld(features='cc cshlib', + source='liblctest/liblc1.c', + ldflags=conf.env['EXTRA_LDFLAGS'], + target='liblc', + name='liblc') + + try: + bld.compile() + conf.check_message(msg, '', True) + return True + except: + conf.check_message(msg, '', False) + return False + + +@conf def CHECK_SHLIB_W_PYTHON(conf, msg): '''check if we need -undefined dynamic_lookup''' diff --git a/source4/wscript b/source4/wscript index 3213e7c4e4..93391dacd1 100644 --- a/source4/wscript +++ b/source4/wscript @@ -113,6 +113,8 @@ def configure(conf): # allows us to find problems on our development hosts faster. # It also results in faster load time. conf.ADD_LDFLAGS('-Wl,--as-needed', testflags=True) + if not conf.CHECK_NEED_LC("-lc not needed"): + conf.ADD_LDFLAGS('-lc', testflags=False) # we don't want PYTHONDIR in config.h, as otherwise changing # --prefix causes a complete rebuild |