summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--buildtools/wafsamba/samba_conftests.py21
-rw-r--r--buildtools/wafsamba/wscript2
-rw-r--r--source4/wscript5
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')