Pascal Stumpf <pas...@stumpf.co> writes: > On Sun, 16 Oct 2016 12:17:40 +0100, Stuart Henderson wrote: >> 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?) > > Yes. > >> 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. >> > > I don't claim to know much about objc, but I think the correct solution > would be to either rename libobj from lang/gcc to libeobjc (and make the > port use it) or go the fortran route and remove support from base. > According to sqlports, openvpn-auth-ldap is the only port with objc in > WANTLIB (GNUstep stuff uses clang + libobjc2).
Same stance wrt objc, I think we should remove it from base. I took a quick look at this openvpn plugin (last update from 2007...) and it looks like just using gobjc from ports isn't enough. Debian has patches to allow building with gcc 4.6+, those patches look interesting but I did not dig further. There also are mentions of gnustep in their package. Anyway, is the plugin broken right now, or is that report just about runtime linker warnings? -- jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF DDCC 0DFA 74AE 1524 E7EE