diff options
author | Matthieu Patou <mat@matws.net> | 2010-10-31 18:50:15 +0300 |
---|---|---|
committer | Matthieu Patou <mat@samba.org> | 2010-10-31 16:35:17 +0000 |
commit | c3fa203435b82d14805024db8e4a3660859cbdf0 (patch) | |
tree | fa22e649df7cdddf18162f0b4304507292d9da84 /buildtools | |
parent | 9f0fb0261ecdecb093ced28024a36973bf1938b9 (diff) | |
download | samba-c3fa203435b82d14805024db8e4a3660859cbdf0.tar.gz samba-c3fa203435b82d14805024db8e4a3660859cbdf0.tar.bz2 samba-c3fa203435b82d14805024db8e4a3660859cbdf0.zip |
build: In some case the flags for the sun studio linker are wrong
In this case we test if the -Wl,-h,%s works and if so use this form
Autobuild-User: Matthieu Patou <mat@samba.org>
Autobuild-Date: Sun Oct 31 16:35:17 UTC 2010 on sn-devel-104
Diffstat (limited to 'buildtools')
-rw-r--r-- | buildtools/wafsamba/samba_conftests.py | 14 | ||||
-rw-r--r-- | buildtools/wafsamba/wscript | 10 |
2 files changed, 24 insertions, 0 deletions
diff --git a/buildtools/wafsamba/samba_conftests.py b/buildtools/wafsamba/samba_conftests.py index 49cd4ff17c..4811614ab7 100644 --- a/buildtools/wafsamba/samba_conftests.py +++ b/buildtools/wafsamba/samba_conftests.py @@ -94,6 +94,20 @@ def find_config_dir(conf): return dir @conf +def CHECK_SHLIB_INTRASINC_NAME_FLAGS(conf, msg): + ''' + check if the waf default flags for setting the name of lib + are ok + ''' + + snip = ''' +int foo(int v) { + return v * 2; +} +''' + return conf.check(features='cc cshlib',vnum="1",fragment=snip,msg=msg) + +@conf def CHECK_SHLIB_W_PYTHON(conf, msg): '''check if we need -undefined dynamic_lookup''' diff --git a/buildtools/wafsamba/wscript b/buildtools/wafsamba/wscript index 90aeb45582..b9b06abfe8 100644 --- a/buildtools/wafsamba/wscript +++ b/buildtools/wafsamba/wscript @@ -275,6 +275,16 @@ def configure(conf): else: conf.ADD_CFLAGS('-fPIC', testflags=True) + # On Solaris 8 with suncc (at least) the flags for the linker to define the name of the + # library are not always working (if the command line is very very long and with a lot + # files) + + if conf.env['COMPILER_CC'] == "suncc": + save = conf.env['SONAME_ST'] + conf.env['SONAME_ST'] = '-Wl,-h,%s' + if not conf.CHECK_SHLIB_INTRASINC_NAME_FLAGS("Checking if flags %s are ok" % conf.env['SONAME_ST']): + conf.env['SONAME_ST'] = save + conf.CHECK_INLINE() # check for pkgconfig |