From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andreas Enge Subject: Re: Qt Date: Sun, 13 Oct 2013 16:18:24 +0200 Message-ID: <20131013141824.GA32115@debian> References: <20131008190520.GA31264@debian> <87mwmjxym7.fsf@gnu.org> <20131010125952.GA32470@debian.bordeaux.inria.fr> <874n8pe0i2.fsf@gnu.org> <20131010200038.GA16170@debian> <20131012130804.GA4092@debian> <87k3hib7q7.fsf@gnu.org> <20131012212538.GA11121@debian> <87vc118eev.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Transfer-Encoding: 8bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:37805) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VVMVJ-0000L9-3k for guix-devel@gnu.org; Sun, 13 Oct 2013 10:18:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VVMVB-00080c-Q0 for guix-devel@gnu.org; Sun, 13 Oct 2013 10:18:45 -0400 Content-Disposition: inline In-Reply-To: <87vc118eev.fsf@gnu.org> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Ludovic =?iso-8859-15?Q?Court=E8s?= Cc: guix-devel@gnu.org On Sun, Oct 13, 2013 at 03:54:16PM +0200, Ludovic Courtès wrote: > Could you look for -licu in the Qt build log, to see which of those > shared libs is meant to be linked against it? None of them, as far as I can tell. The only place where I found 'licu' is the following: ICU auto-detection... () g++ -c -pipe -O2 -Wall -W -I../../../mkspecs/linux-g++ -I. -o icu.o icu.cpp g++ -Wl,-O1 -o icu icu.o -licuuc -licui18n ICU enabled. This is during the configure phase. The only interesting lines containing icu are the following: g++ -c -include .pch/release-shared/QtCore -pipe -pthread -I/nix/store/dly2cqqprdsb4fqabrw0bxm1n42vpi6w-glib-2.38.0/include/glib-2.0 -I/nix/store/dly2cqqprdsb4fqabrw0bxm1n42vpi6w-glib-2.38.0/lib/glib-2.0/include -O2 -fvisibility=hidden -fvisibility-inlines-hidden -Wall -W -D_REENTRANT -fPIC -DQT_SHARED -DQT_BUILD_CORE_LIB -DQT_NO_USING_NAMESPACE -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT3_SUPPORT -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DELF_INTERPRETER=\"\" -DQLIBRARYINFO_EPOCROOT -DQT_USE_ICU -DHB_EXPORT=Q_CORE_EXPORT -DQT_NO_DEBUG -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I../../mkspecs/linux-g++ -I. -I../../include -I../../include/QtCore -I.rcc/release-shared -Iglobal -I../../tools/shared -I../3rdparty/harfbuzz/src -I../3rdparty/md5 -I../3rdparty/md4 -I.moc/release-shared -o .obj/release-shared/qlocale_icu.o tools/qlocale_icu.cpp and another one g++ ... -o libQtCore.so.4.8.5 ... .obj/release-shared/qlocale_icu.o ... So at least this gives us the library. And qlocale_icu.c contains this: // resolve libicui18n QLibrary lib(QLatin1String("icui18n"), QLatin1String(U_ICU_VERSION_SHORT)); lib.setLoadHints(QLibrary::ImprovedSearchHeuristics); if (!lib.load()) { qWarning() << "Unable to load library icui18n" << lib.errorString(); status = ErrorLoading; return false; } and // resolve libicuuc QLibrary ucLib(QLatin1String("icuuc"), QLatin1String(U_ICU_VERSION_SHORT)); ucLib.setLoadHints(QLibrary::ImprovedSearchHeuristics); if (!ucLib.load()) { qWarning() << "Unable to load library icuuc" << ucLib.errorString(); status = ErrorLoading; return false; So indeed this looks like dlopen at run time. ldd on libQt5Core.so shows that in Qt 5, the library is explicitly linked with the icu libraries. Andreas