openbsd-ports/net/samba/patches/patch-buildtools_wafsamba_samba_install_py
jca ce254b18ea Downgrade to samba-4.9.17
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
2019-12-19 02:57:28 +00:00

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