Date: Sat, 31 Aug 2013 15:38:52 +0200 From: Dimitry Andric <dim@FreeBSD.org> To: Boris Samorodov <bsam@passap.ru> Cc: Guido Falsi <madpilot@FreeBSD.org>, FreeBSD ports list <freebsd-ports@FreeBSD.org>, Peter Wemm <peter@wemm.org> Subject: Re: svn commit: r325668 - head/x11-toolkits/open-motif Message-ID: <B9A33C6E-B731-4862-B50E-74F52924FB7E@FreeBSD.org> In-Reply-To: <5221CEB4.7090109@passap.ru> References: <201308300952.r7U9qKsF026518@svn.freebsd.org> <52206DF8.1000401@FreeBSD.org> <5221CEB4.7090109@passap.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
On Aug 31, 2013, at 13:08, Boris Samorodov <bsam@passap.ru> wrote: > (moving the discussion to ports@) >=20 > 30.08.2013 14:03, Guido Falsi =D0=BF=D0=B8=D1=88=D0=B5=D1=82: >=20 >> On 08/30/13 11:52, Boris Samorodov wrote: >>> Author: bsam >>> Date: Fri Aug 30 09:52:20 2013 >>> New Revision: 325668 >>> URL: http://svnweb.freebsd.org/changeset/ports/325668 >>>=20 >>> Log: >>> Fix build at 10.x after recent changes at /usr/bin/ld. Error log: >>> ---- >>> ./../lib/Xm/.libs/libXm.so: undefined reference to `libiconv' >>> ./../lib/Xm/.libs/libXm.so: undefined reference to = `libiconv_close' >>> ./../lib/Xm/.libs/libXm.so: undefined reference to `libiconv_open' ... >> I'm having a lot of failures too related to libiconv symbols. These = seem=20 >> related by enabling iconv in libc on latest current. >>=20 >> I'm not sure that forcing them to link against gnu libiconv is a good=20= >> long term solution. >=20 > Agreed. But this commit is not a log term solution. It's just a fix > which: > . preservs current status-quo (the port always depended upon = libiconv); > . allow other ports which require this one to be build. >=20 > Thus it's just a bandaid. Yes, the basic problem is that programs do "#include <iconv.h>", which pulls in /usr/local/include/iconv.h (the GNU version) instead of /usr/include/iconv.h (the base version). The GNU version redefines all the iconv-related functions to point to the GNU implementations. However, most configure scripts fail to detect that the linker flags should then be modified to add -L/usr/local/lib -liconv. I don't know of a good way to force ports to ignore the GNU version of iconv.h, and use the base iconv.h instead. Maybe we should rename the GNU version to gnuiconv.h, and use some sort of wrapper header to make sure ports only get the GNU version when they really want or need it. -Dimitry
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?B9A33C6E-B731-4862-B50E-74F52924FB7E>