build: wscript. Fix the build on FreeBSD with the clang ld.lld-XX linker.
authorJeremy Allison <jra@samba.org>
Thu, 13 May 2021 20:20:17 +0000 (13:20 -0700)
committerJeremy Allison <jra@samba.org>
Fri, 14 May 2021 01:50:25 +0000 (01:50 +0000)
commit9be3be8aca8d1ee198791c5ffebeddf997372caf
tree908ce8193bc2eac8b9a29f5b6c61539513086bda
parent2b9a1feae7364a294b024dbeaf6a0202bbad468a
build: wscript. Fix the build on FreeBSD with the clang ld.lld-XX linker.

FreeBSD is broken. It doesn't include 'extern char **environ'
in any shared library, but statically inside crt0.o.

If we're running on a FreeBSD with the GNU linker ld we
can get around this by explicitly telling the linker to
ignore 'environ' as an unresolved symbol in a shared library.

However, the clang linker ld.lld-XX is broken in that it
doesn't have that option.
First try to see if have '-Wl,--ignore-unresolved-symbol,environ'
and just use that if so.

If not, we have to use '-Wl,--allow-shlib-undefined' instead
and remove all instances of '-Wl,-no-undefined'.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Martin Schwenke <martin@meltin.net>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Fri May 14 01:50:25 UTC 2021 on sn-devel-184
wscript