[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

libidn 1.28 .pc file does not record -lintl if -lidn requires the former

From: Matthias Andree
Subject: libidn 1.28 .pc file does not record -lintl if -lidn requires the former
Date: Fri, 13 Sep 2013 02:11:20 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130804 Thunderbird/17.0.8

[Please CC: me on replies, I am not subscribed.]


I have just been debugging dnsmasq, a user of libidn, on a current
FreeBSD 10 development version, and come across a linker problem.

The issue is that dnsmasq need not necessarily be linked against libintl
(gettext), but possibly only against libidn.  However, if libidn itself
is then linked against gettext, it requires (per ELF NEEDED tag)
libintl.  On some systems, among them the clang-based FreeBSD 10, but
also others, this fails at link time.  The cause for that is that some
systems require all symbols from shared libraries to be resolved at link

Example errors:

cc  -o dnsmasq cache.o [...] ipset.o -L/usr/local/lib -lidn
/usr/bin/ld: 6: invalid DSO for symbol `libintl_bindtextdomain' definition
/usr/local/lib/ could not read symbols: Bad value
cc: error: linker command failed with exit code 1 (use -v to see invocation)
gmake[2]: *** [dnsmasq] Error 1

Now, the -L/path and -lidn options are taken from libidn.pc[.in].

Could the next release of libidn please make sure to record -lintl in
libidn.pc, too, if libidn is linked against libintl, so that

pkg-config --libs libidn   would, in this situation, print

-L/usr/local/lib -lidn -lintl

Thank you.

Best regards
Matthias Andree

reply via email to

[Prev in Thread] Current Thread [Next in Thread]