On 2016/10/11 19:00, Leclerc, Sebastien wrote:
> When starting OpenVPN with module openvpn-auth-ldap activated, I get the 
> following:
> 
> openvpn:/usr/local/lib/openvpn-auth-ldap.so: /usr/lib/libobjc.so.6.0 : 
> WARNING: symbol(__objc_class_name_Protocol) size mismatch, relink your program
> openvpn:/usr/local/lib/openvpn-auth-ldap.so: /usr/lib/libobjc.so.6.0 : 
> WARNING: symbol(__objc_class_name_Object) size mismatch, relink your program
> 
> Openvpn and openvpn-auth-ldap are installed as packages.
> 
> This is from a snapshot (amd64) :
> OpenBSD 6.0-current (GENERIC.MP) #2518: Sun Oct  2 21:41:07 MDT 2016
> openvpn-2.3.11
> openvpn-auth-ldap-2.0.3.p2
> 
> Same result from 5.9 with patch (amd64) :
> OpenBSD 5.9 (GENERIC.MP) #8: Thu Jul 14 20:12:22 CEST 2016
> openvpn-2.3.10
> openvpn-auth-ldap-2.0.3p1
> 
> 
> Sebastien Leclerc
> 

Two problems.

One: base and ports gcc use the same library version for libobjc.
I'm sure this is wrong and hid the problem (otherwise pkg_create
checks would have caught it).

Index: 4.9/Makefile
===================================================================
RCS file: /cvs/ports/lang/gcc/4.9/Makefile,v
retrieving revision 1.41
diff -u -p -r1.41 Makefile
--- 4.9/Makefile        18 Sep 2016 15:05:15 -0000      1.41
+++ 4.9/Makefile        16 Oct 2016 10:57:43 -0000
@@ -4,7 +4,7 @@ ONLY_FOR_ARCHS = amd64 arm hppa i386 mip
 DPB_PROPERTIES = parallel
 
 V = 4.9.4
-REVISION = 2
+REVISION = 3
 FULL_VERSION = $V
 FULL_PKGVERSION = $V
 
@@ -44,7 +44,7 @@ SHARED_LIBS = estdc++         17.0 \
                gcj             4.0 \
                gcj-tools       4.0 \
                gij             4.0 \
-               objc            6.0 \
+               objc            7.0 \
                ssp             4.0 \
                lto_plugin      3.0 \
                go              3.0 \


Two, even with this fixed, the linker is preferring the version
in /usr/local/lib/ (possibly because it's a higher-numbered version?)
I'm not sure how to fix this. So the diff above switches us from
building a broken package if gcc-libs is installed, to failing
to build if gcc-libs is installed. So it doesn't really gain us
much in practical terms for openvpn-auth-ldap.

I also tried to workaround by building with ports gcc, ports
infrastructure isn't really setup for objc builds - it's easy enough to
add that, but in the case of openvpn-auth-ldap the configure script is
failing when doing checks on the objc preprocessor.

It would be nice if someone with knowledge about the objc toolchain
or an interest in fixing openvpn-auth-ldap could take a look.

Reply via email to