Skip site navigation (1)Skip section navigation (2)
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>