samba-4.10.10 and later fail to link on ld.bfd archs. Revert until someone(tm) tracks down the problem. Errors look like: /usr/bin/ld: BFD 2.17 internal error, aborting at /usr/src/gnu/usr.bin/binutils-2.17/bfd/elfcode.h line 190 in void bfd_elf64_swap_symbol_in(bfd *, const void *, const void *, Elf_Internal_Sym *) /usr/bin/ld: /pobj/samba-4.10.10/samba-4.10.10/bin/default/lib/param/libserver-role-samba4.so: invalid string offset 3755991007 >= 625 for section `.dynstr' 3755991007 is 0xDFDFDFDF is likely already freed memory. build failures: http://build-failures.rhaalovely.net/sparc64/2019-12-11/net/samba,.log http://build-failures.rhaalovely.net/mips64/2019-12-06/net/samba,,-ldb.log
35 lines
1.7 KiB
Plaintext
35 lines
1.7 KiB
Plaintext
$OpenBSD: patch-buildtools_wafsamba_samba_install_py,v 1.5 2019/12/19 02:57:28 jca Exp $
|
|
Make Samba4 WAF respect OpenBSD shared libraries versioning conventions.
|
|
BUG: https://bugzilla.samba.org/show_bug.cgi?id=9774
|
|
Index: buildtools/wafsamba/samba_install.py
|
|
--- buildtools/wafsamba/samba_install.py.orig
|
|
+++ buildtools/wafsamba/samba_install.py
|
|
@@ -117,11 +117,15 @@ def install_library(self):
|
|
else:
|
|
inst_name = bld.make_libname(t.target)
|
|
elif self.vnum:
|
|
+ import sys
|
|
vnum_base = self.vnum.split('.')[0]
|
|
install_name = bld.make_libname(target_name, version=self.vnum)
|
|
- install_link = bld.make_libname(target_name, version=vnum_base)
|
|
- inst_name = bld.make_libname(t.target)
|
|
- if not self.private_library:
|
|
+ if sys.platform.startswith('openbsd'):
|
|
+ install_link = install_name
|
|
+ else:
|
|
+ install_link = bld.make_libname(target_name, version=vnum_base)
|
|
+ inst_name = bld.make_libname(t.target, version=self.vnum)
|
|
+ if not self.private_library and not sys.platform.startswith('openbsd'):
|
|
# only generate the dev link for non-bundled libs
|
|
dev_link = bld.make_libname(target_name)
|
|
elif getattr(self, 'soname', ''):
|
|
@@ -171,7 +175,7 @@ def apply_vscript(self):
|
|
'''add version-script arguments to library build'''
|
|
|
|
if self.env.HAVE_LD_VERSION_SCRIPT and getattr(self, 'version_script', ''):
|
|
- self.env.append_value('LINKFLAGS', "-Wl,--version-script=%s" %
|
|
+ self.env.append_unique('LINKFLAGS', "-Wl,--version-script=%s" %
|
|
self.version_script)
|
|
self.version_script = None
|
|
|