diff options
-rw-r--r-- | buildtools/wafsamba/samba_conftests.py | 21 | ||||
-rw-r--r-- | buildtools/wafsamba/wscript | 2 | ||||
-rw-r--r-- | 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 8a57d20baa..49cd4ff17c 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 <Python.h> +#include <crt_externs.h> +#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 49f1cf4604..90aeb45582 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 45d147f8e5..333079d48b 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') |