From 33b276c2f16c4ec70cf392e850558cfd6703d7e6 Mon Sep 17 00:00:00 2001 From: Matthieu Patou Date: Sat, 30 Oct 2010 16:50:33 +0400 Subject: [PATCH] build: set shared libraries flags correctly on mac os X --- buildtools/wafsamba/samba_conftests.py | 21 +++++++++++++++++++++ buildtools/wafsamba/wscript | 2 -- source4/wscript | 5 +++++ 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/buildtools/wafsamba/samba_conftests.py b/buildtools/wafsamba/samba_conftests.py index 8a57d20baa5..49cd4ff17c7 100644 --- a/buildtools/wafsamba/samba_conftests.py +++ b/buildtools/wafsamba/samba_conftests.py @@ -93,6 +93,27 @@ def find_config_dir(conf): conf.fatal('cannot use the configuration test folder %r' % dir) return dir +@conf +def CHECK_SHLIB_W_PYTHON(conf, msg): + '''check if we need -undefined dynamic_lookup''' + + dir = find_config_dir(conf) + + env = conf.env + + snip = ''' +#include +#include +#define environ (*_NSGetEnviron()) + +static PyObject *ldb_module = NULL; +int foo(int v) { + extern char **environ; + environ[0] = 1; + ldb_module = PyImport_ImportModule("ldb"); + return v * 2; +}''' + return conf.check(features='cc cshlib',uselib='PYEMBED',fragment=snip,msg=msg) # this one is quite complex, and should probably be broken up # into several parts. I'd quite like to create a set of CHECK_COMPOUND() diff --git a/buildtools/wafsamba/wscript b/buildtools/wafsamba/wscript index 49f1cf46049..90aeb45582c 100644 --- a/buildtools/wafsamba/wscript +++ b/buildtools/wafsamba/wscript @@ -275,8 +275,6 @@ def configure(conf): else: conf.ADD_CFLAGS('-fPIC', testflags=True) - if sys.platform == 'darwin': - conf.ADD_LDFLAGS('-fno-common', testflags=True) conf.CHECK_INLINE() # check for pkgconfig diff --git a/source4/wscript b/source4/wscript index 45d147f8e55..333079d48b0 100644 --- a/source4/wscript +++ b/source4/wscript @@ -86,6 +86,11 @@ def configure(conf): conf.check_python_version((2,4,2)) conf.check_python_headers(mandatory=True) + if not conf.env['HAVE_ENVIRON_DECL']: + if not conf.CHECK_SHLIB_W_PYTHON("Checking if -single_module is not needed"): + conf.env.append_value('shlib_LINKFLAGS', ['-single_module']) + if not conf.CHECK_SHLIB_W_PYTHON("Checking if -undefined dynamic_lookup is not need"): + conf.env.append_value('shlib_LINKFLAGS', ['-undefined', 'dynamic_lookup']) if int(conf.env['PYTHON_VERSION'][0]) >= 3: raise Utils.WafError('Python version 3.x is not supported by Samba yet') -- 2.11.4.GIT