* Qt @ 2013-10-08 19:05 Andreas Enge 2013-10-08 21:05 ` Qt Ludovic Courtès 0 siblings, 1 reply; 17+ messages in thread From: Andreas Enge @ 2013-10-08 19:05 UTC (permalink / raw) To: guix-devel Hi, I just pushed a patch for Qt 5.1.1. It builds on my machine, but as there is no application using it so far, it may or may not work. Also, the build uses sse/sse2/... instructions according to what is available on the processor; we might wish to disable all or at least the most advanced of them in the long run. For the time being, I would leave them in, and once we have a qt application, check whether it works on different processors. A next step would be to add qt 4.8.5, as I think this version is still used more widely so far. Andreas ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Qt 2013-10-08 19:05 Qt Andreas Enge @ 2013-10-08 21:05 ` Ludovic Courtès 2013-10-10 12:59 ` Qt Andreas Enge 0 siblings, 1 reply; 17+ messages in thread From: Ludovic Courtès @ 2013-10-08 21:05 UTC (permalink / raw) To: Andreas Enge; +Cc: guix-devel Andreas Enge <andreas@enge.fr> skribis: > I just pushed a patch for Qt 5.1.1. Good, congratulations! > It builds on my machine, but as there is no application using it so > far, it may or may not work. Also, the build uses > sse/sse2/... instructions according to what is available on the > processor; we might wish to disable all or at least the most advanced > of them in the long run. Yes, as for GMP and FFTW. Otherwise, when using substitutes from Hydra, one could end up with binaries that raise SIGILL on their machine. > For the time being, I would leave them in, and once we have a qt > application, check whether it works on different processors. If it’s a matter of adding the right configure flag, I’d do it before it bites. > A next step would be to add qt 4.8.5, as I think this version is still > used more widely so far. OK. Thanks for daring to dive into that! Ludo’. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Qt 2013-10-08 21:05 ` Qt Ludovic Courtès @ 2013-10-10 12:59 ` Andreas Enge 2013-10-10 13:09 ` Qt Ludovic Courtès 0 siblings, 1 reply; 17+ messages in thread From: Andreas Enge @ 2013-10-10 12:59 UTC (permalink / raw) To: Ludovic Courtès; +Cc: guix-devel On Tue, Oct 08, 2013 at 11:05:04PM +0200, Ludovic Courtès wrote: > Andreas Enge <andreas@enge.fr> skribis: > > Also, the build uses > > sse/sse2/... instructions according to what is available on the > > processor; we might wish to disable all or at least the most advanced > > of them in the long run. > If it’s a matter of adding the right configure flag, I’d do it before > it bites. The following will leave out any special instructions, as far as I can see: + "-no-sse2" + "-no-sse3" + "-no-ssse3" + "-no-sse4.1" + "-no-sse4.2" + "-no-avx" + "-no-avx2" + "-no-neon" + "-no-mips_dsp" + "-no-mips_dspr2")))) I do not know how much this slows down qt applications. According to wikipedia, sse2 arrived in 2001. So one could argue that adding it would exclude almost no machines. Andreas ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Qt 2013-10-10 12:59 ` Qt Andreas Enge @ 2013-10-10 13:09 ` Ludovic Courtès 2013-10-10 20:00 ` Qt Andreas Enge 0 siblings, 1 reply; 17+ messages in thread From: Ludovic Courtès @ 2013-10-10 13:09 UTC (permalink / raw) To: Andreas Enge; +Cc: guix-devel Andreas Enge <andreas@enge.fr> skribis: > On Tue, Oct 08, 2013 at 11:05:04PM +0200, Ludovic Courtès wrote: >> Andreas Enge <andreas@enge.fr> skribis: >> > Also, the build uses >> > sse/sse2/... instructions according to what is available on the >> > processor; we might wish to disable all or at least the most advanced >> > of them in the long run. >> If it’s a matter of adding the right configure flag, I’d do it before >> it bites. > > The following will leave out any special instructions, as far as I can see: > + "-no-sse2" > + "-no-sse3" > + "-no-ssse3" > + "-no-sse4.1" > + "-no-sse4.2" > + "-no-avx" > + "-no-avx2" > + "-no-neon" > + "-no-mips_dsp" > + "-no-mips_dspr2")))) > > I do not know how much this slows down qt applications. According to wikipedia, > sse2 arrived in 2001. So one could argue that adding it would exclude almost > no machines. Yes, you may be right for SSE2 (especially considering the fact that this kind of software is typically used on fairly recent machines.) Ludo’. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Qt 2013-10-10 13:09 ` Qt Ludovic Courtès @ 2013-10-10 20:00 ` Andreas Enge 2013-10-10 22:19 ` Qt Mark H Weaver 2013-10-12 13:08 ` Qt Andreas Enge 0 siblings, 2 replies; 17+ messages in thread From: Andreas Enge @ 2013-10-10 20:00 UTC (permalink / raw) To: Ludovic Courtès; +Cc: guix-devel On Thu, Oct 10, 2013 at 03:09:09PM +0200, Ludovic Courtès wrote: > Andreas Enge <andreas@enge.fr> skribis: > > I do not know how much this slows down qt applications. According to wikipedia, > > sse2 arrived in 2001. So one could argue that adding it would exclude almost > > no machines. > Yes, you may be right for SSE2 (especially considering the fact that > this kind of software is typically used on fairly recent machines.) Finally, I disabled everything special. As this is not a number crunching library, I would like to be convinced of the usefulness of SSE. Andreas ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Qt 2013-10-10 20:00 ` Qt Andreas Enge @ 2013-10-10 22:19 ` Mark H Weaver 2013-10-31 15:35 ` Qt Andreas Enge 2013-10-12 13:08 ` Qt Andreas Enge 1 sibling, 1 reply; 17+ messages in thread From: Mark H Weaver @ 2013-10-10 22:19 UTC (permalink / raw) To: Andreas Enge; +Cc: guix-devel Andreas Enge <andreas@enge.fr> writes: > On Thu, Oct 10, 2013 at 03:09:09PM +0200, Ludovic Courtès wrote: >> Andreas Enge <andreas@enge.fr> skribis: >> > I do not know how much this slows down qt applications. According to wikipedia, >> > sse2 arrived in 2001. So one could argue that adding it would exclude almost >> > no machines. >> Yes, you may be right for SSE2 (especially considering the fact that >> this kind of software is typically used on fairly recent machines.) > > Finally, I disabled everything special. You can assume SSE2 on x86_64, as _all_ x86_64 processors have it. In fact, the C function calling conventions of SysV x86_64 psABI (used by GNU/Linux) specify that the SSE2 registers are used for passing floating point values as arguments. > As this is not a number crunching library, I would like to be > convinced of the usefulness of SSE. Qt is not a number crunching library, but I suspect it _does_ have image rendering code, where SIMD instruction sets such as SSE2 can make a dramatic difference in performance. Regards, Mark ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Qt 2013-10-10 22:19 ` Qt Mark H Weaver @ 2013-10-31 15:35 ` Andreas Enge 0 siblings, 0 replies; 17+ messages in thread From: Andreas Enge @ 2013-10-31 15:35 UTC (permalink / raw) To: Mark H Weaver; +Cc: guix-devel On Thu, Oct 10, 2013 at 06:19:09PM -0400, Mark H Weaver wrote: > You can assume SSE2 on x86_64, as _all_ x86_64 processors have it. Very well. Here is the list of options to potentially turn off for Qt 4.8.5: "-no-mmx" "-no-3dnow" "-no-sse" "-no-sse2" "-no-sse3" "-no-ssse3" "-no-sse4.1" "-no-sse4.2" "-no-avx" "-no-neon" So I can enable mmx, 3dnow, sse and sse2 on x86_64? Or only sse and sse2? Or only sse2? Qt 5.1.1 also has the following: "-no-avx2" "-no-mips_dsp" "-no-mips_dspr2" How about mips? We agreed to target it at loongson for the time being, then could we enable one or both of the mips related options? Andreas ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Qt 2013-10-10 20:00 ` Qt Andreas Enge 2013-10-10 22:19 ` Qt Mark H Weaver @ 2013-10-12 13:08 ` Andreas Enge 2013-10-12 19:38 ` Qt Ludovic Courtès 1 sibling, 1 reply; 17+ messages in thread From: Andreas Enge @ 2013-10-12 13:08 UTC (permalink / raw) To: Ludovic Courtès; +Cc: guix-devel So I added Qt 4.8.5, after disabling a few tests requiring an X server - adding xorg-server as an input was not enough, as the server would not be started by the tests, but supposed to be already running. Two "hello world" programs I found in a tutorial compile. The gui program complains about a missing icui18n library. Strace shows the following: open("/nix/store/z70fv39wa8yrvvqq9zfidsh86z72p4gr-qt-4.8.5/lib/libicui18n.so.50", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/nix/store/shamfhyg9hcac63y3bll9p50ixxid8vb-glibc-2.18/lib/libicui18n.so.50", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/nix/store/52998i0m4gr7k35lni8fmg591zsyqamv-gcc-4.7.3/lib/libicui18n.so.50", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/nix/store/g4cs0ssg7ry4da1615947ild5l4wv6ba-zlib-1.2.7/lib/libicui18n.so.50", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/nix/store/dly2cqqprdsb4fqabrw0bxm1n42vpi6w-glib-2.38.0/lib/libicui18n.so.50", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/etc/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/nix/store/shamfhyg9hcac63y3bll9p50ixxid8vb-glibc-2.18/lib/libicui18n.so.50", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/nix/store/z70fv39wa8yrvvqq9zfidsh86z72p4gr-qt-4.8.5/lib/libicui18n", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/nix/store/shamfhyg9hcac63y3bll9p50ixxid8vb-glibc-2.18/lib/libicui18n", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/nix/store/52998i0m4gr7k35lni8fmg591zsyqamv-gcc-4.7.3/lib/libicui18n", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/nix/store/g4cs0ssg7ry4da1615947ild5l4wv6ba-zlib-1.2.7/lib/libicui18n", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/nix/store/dly2cqqprdsb4fqabrw0bxm1n42vpi6w-glib-2.38.0/lib/libicui18n", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/nix/store/shamfhyg9hcac63y3bll9p50ixxid8vb-glibc-2.18/lib/libicui18n", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/nix/store/z70fv39wa8yrvvqq9zfidsh86z72p4gr-qt-4.8.5/lib/icui18n.so.50", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/nix/store/shamfhyg9hcac63y3bll9p50ixxid8vb-glibc-2.18/lib/icui18n.so.50", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/nix/store/52998i0m4gr7k35lni8fmg591zsyqamv-gcc-4.7.3/lib/icui18n.so.50", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/nix/store/g4cs0ssg7ry4da1615947ild5l4wv6ba-zlib-1.2.7/lib/icui18n.so.50", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/nix/store/dly2cqqprdsb4fqabrw0bxm1n42vpi6w-glib-2.38.0/lib/icui18n.so.50", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/nix/store/shamfhyg9hcac63y3bll9p50ixxid8vb-glibc-2.18/lib/icui18n.so.50", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/nix/store/z70fv39wa8yrvvqq9zfidsh86z72p4gr-qt-4.8.5/lib/icui18n", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/nix/store/shamfhyg9hcac63y3bll9p50ixxid8vb-glibc-2.18/lib/icui18n", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/nix/store/52998i0m4gr7k35lni8fmg591zsyqamv-gcc-4.7.3/lib/icui18n", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/nix/store/g4cs0ssg7ry4da1615947ild5l4wv6ba-zlib-1.2.7/lib/icui18n", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/nix/store/dly2cqqprdsb4fqabrw0bxm1n42vpi6w-glib-2.38.0/lib/icui18n", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/nix/store/shamfhyg9hcac63y3bll9p50ixxid8vb-glibc-2.18/lib/icui18n", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/nix/store/shamfhyg9hcac63y3bll9p50ixxid8vb-glibc-2.18/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 4 icu4c was present at the time of compilation, but is not listed as a reference: $$ ./pre-inst-env guix gc --references /nix/store/z70fv39wa8yrvvqq9zfidsh86z72p4gr-qt-4.8.5 /nix/store/2332f9jmabldwz08lqj9yd8znrx9z125-libpng-1.5.17 /nix/store/3xkdzldlqm4sa2p4czjbnybdwq47qlw2-fontconfig-2.10.93 /nix/store/52998i0m4gr7k35lni8fmg591zsyqamv-gcc-4.7.3 /nix/store/8cpwgsdx2njpkdj20i963zfxs0fyqkvi-libjpeg-8d /nix/store/arsxjcl3kdxxjxf7s1nsvfczis6pckm3-libxrender-0.9.7 /nix/store/asmki6g7ca64sdlcf6ahnjxvxg2x6sgv-libx11-1.5.0 /nix/store/b3c1z47c201gz8gnx5553kw2qb4qdq3b-freetype-2.4.11 /nix/store/dly2cqqprdsb4fqabrw0bxm1n42vpi6w-glib-2.38.0 /nix/store/g4cs0ssg7ry4da1615947ild5l4wv6ba-zlib-1.2.7 /nix/store/i9b6q8wciapn69wifmb1xgpikj4ljjzy-alsa-lib-1.0.27.1 /nix/store/l8bnfq6n6hb2wvx0kxdy141jna8mkns3-mysql-5.1.54 /nix/store/lhb68hrv6hcris5bbr7y894c9g8fj558-libxext-1.3.1 /nix/store/shamfhyg9hcac63y3bll9p50ixxid8vb-glibc-2.18 /nix/store/vmajpkk5ih03g0wik16693fkc638if8k-mesa-8.0.5 /nix/store/z70fv39wa8yrvvqq9zfidsh86z72p4gr-qt-4.8.5 ldd on the offending binary shows no dependency on anything icu related, and installing icu4c in the user profile does not have any effect. If I add $HOME/.guix-profile/lib to LD_LIBRARY_PATH, the problem disappears. I wonder if some dlopen magic is involved. Do you see a solution from this description? Andreas ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Qt 2013-10-12 13:08 ` Qt Andreas Enge @ 2013-10-12 19:38 ` Ludovic Courtès 2013-10-12 21:25 ` Qt Andreas Enge 0 siblings, 1 reply; 17+ messages in thread From: Ludovic Courtès @ 2013-10-12 19:38 UTC (permalink / raw) To: Andreas Enge; +Cc: guix-devel Andreas Enge <andreas@enge.fr> skribis: > So I added Qt 4.8.5, after disabling a few tests requiring an X server - > adding xorg-server as an input was not enough, as the server would not be > started by the tests, but supposed to be already running. I wonder how people address this in general. Perhaps we could start xvfb in a pre-check phase if that’s enough? > Two "hello world" programs I found in a tutorial compile. Neat. > The gui program complains about a missing icui18n library. Strace shows the > following: [...] > open("/etc/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) What’s this?! Would be good to know where it comes from. Normally our glibc doesn’t look for ld.so.cache (see ‘glibc-no-ld-so-cache.patch’.) [...] > icu4c was present at the time of compilation, but is not listed as a reference: > > $$ ./pre-inst-env guix gc --references /nix/store/z70fv39wa8yrvvqq9zfidsh86z72p4gr-qt-4.8.5 > > /nix/store/2332f9jmabldwz08lqj9yd8znrx9z125-libpng-1.5.17 > /nix/store/3xkdzldlqm4sa2p4czjbnybdwq47qlw2-fontconfig-2.10.93 > /nix/store/52998i0m4gr7k35lni8fmg591zsyqamv-gcc-4.7.3 > /nix/store/8cpwgsdx2njpkdj20i963zfxs0fyqkvi-libjpeg-8d > /nix/store/arsxjcl3kdxxjxf7s1nsvfczis6pckm3-libxrender-0.9.7 > /nix/store/asmki6g7ca64sdlcf6ahnjxvxg2x6sgv-libx11-1.5.0 > /nix/store/b3c1z47c201gz8gnx5553kw2qb4qdq3b-freetype-2.4.11 > /nix/store/dly2cqqprdsb4fqabrw0bxm1n42vpi6w-glib-2.38.0 > /nix/store/g4cs0ssg7ry4da1615947ild5l4wv6ba-zlib-1.2.7 > /nix/store/i9b6q8wciapn69wifmb1xgpikj4ljjzy-alsa-lib-1.0.27.1 > /nix/store/l8bnfq6n6hb2wvx0kxdy141jna8mkns3-mysql-5.1.54 > /nix/store/lhb68hrv6hcris5bbr7y894c9g8fj558-libxext-1.3.1 > /nix/store/shamfhyg9hcac63y3bll9p50ixxid8vb-glibc-2.18 > /nix/store/vmajpkk5ih03g0wik16693fkc638if8k-mesa-8.0.5 > /nix/store/z70fv39wa8yrvvqq9zfidsh86z72p4gr-qt-4.8.5 > > ldd on the offending binary shows no dependency on anything icu related, > and installing icu4c in the user profile does not have any effect. > > If I add $HOME/.guix-profile/lib to LD_LIBRARY_PATH, the problem disappears. > I wonder if some dlopen magic is involved. Do you see a solution from > this description? libicu4c is a dependency of Qt, right? If so, I would make sure that it’s NEEDed by libqt.so, and that it’s in its RUNPATH. To do that, run: objdump -x libqt.so | grep -E '(NEED|PATH)' If it’s not NEEDed, then -licu4c must be added on the link command for libqt.so. If it’s not in the RUNPATH, then -Wl,-rpath=/path/to/icu4c/lib must be added to the libqt.so ld flags. HTH, Ludo’. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Qt 2013-10-12 19:38 ` Qt Ludovic Courtès @ 2013-10-12 21:25 ` Andreas Enge 2013-10-12 21:39 ` Qt Andreas Enge 2013-10-13 13:54 ` Qt Ludovic Courtès 0 siblings, 2 replies; 17+ messages in thread From: Andreas Enge @ 2013-10-12 21:25 UTC (permalink / raw) To: Ludovic Court??s; +Cc: guix-devel On Sat, Oct 12, 2013 at 09:38:08PM +0200, Ludovic Court??s wrote: > I wonder how people address this in general. Perhaps we could start > xvfb in a pre-check phase if that’s enough? (Something is weird with your character encoding. Or with my character decoding?) I think that people either do not run "make check", or they have an X server at the time of compiling and checking graphic libraries... > > The gui program complains about a missing icui18n library. Strace shows the > > following: > libicu4c is a dependency of Qt, right? Yes. > If so, I would make sure that it’s NEEDed by libqt.so, and that it’s in > its RUNPATH. To do that, run: > objdump -x libqt.so | grep -E '(NEED|PATH)' Hm, which libqt.so? There are 20 libQt*.so! Precisely: libQt3Support.so libQtDesignerComponents.so libQtNetwork.so libQtSvg.so libQtCLucene.so libQtDesigner.so libQtOpenGL.so libQtTest.so libQtCore.so libQtGui.so libQtScript.so libQtWebKit.so libQtDBus.so libQtHelp.so libQtScriptTools.so libQtXmlPatterns.so libQtDeclarative.so libQtMultimedia.so libQtSql.so libQtXml.so Anyway, objdump on none of them yields anything after piped through "grep icu". The problem of not finding the icu library was not critical, by the way; a warning was printed on the console, and the "hello world" program worked nonetheless. Andreas ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Qt 2013-10-12 21:25 ` Qt Andreas Enge @ 2013-10-12 21:39 ` Andreas Enge 2013-10-13 13:54 ` Qt Ludovic Courtès 1 sibling, 0 replies; 17+ messages in thread From: Andreas Enge @ 2013-10-12 21:39 UTC (permalink / raw) To: Ludovic Court??s; +Cc: guix-devel On Sat, Oct 12, 2013 at 11:25:38PM +0200, Andreas Enge wrote: > (Something is weird with your character encoding. Or with my character > decoding?) My character encoding. LC_ALL=C is good for avoiding German error messages to be sent to mailing lists, but UTF-8 is better for the rest. Andreas ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Qt 2013-10-12 21:25 ` Qt Andreas Enge 2013-10-12 21:39 ` Qt Andreas Enge @ 2013-10-13 13:54 ` Ludovic Courtès 2013-10-13 14:18 ` Qt Andreas Enge 1 sibling, 1 reply; 17+ messages in thread From: Ludovic Courtès @ 2013-10-13 13:54 UTC (permalink / raw) To: Andreas Enge; +Cc: guix-devel Andreas Enge <andreas@enge.fr> skribis: > On Sat, Oct 12, 2013 at 09:38:08PM +0200, Ludovic Court??s wrote: [...] >> If so, I would make sure that it’s NEEDed by libqt.so, and that it’s in >> its RUNPATH. To do that, run: >> objdump -x libqt.so | grep -E '(NEED|PATH)' > > Hm, which libqt.so? There are 20 libQt*.so! Precisely: > libQt3Support.so libQtDesignerComponents.so libQtNetwork.so libQtSvg.so > libQtCLucene.so libQtDesigner.so libQtOpenGL.so libQtTest.so > libQtCore.so libQtGui.so libQtScript.so libQtWebKit.so > libQtDBus.so libQtHelp.so libQtScriptTools.so libQtXmlPatterns.so > libQtDeclarative.so libQtMultimedia.so libQtSql.so libQtXml.so > > Anyway, objdump on none of them yields anything after piped through "grep icu". (Should be ‘objdump -x’.) Could you look for -licu in the Qt build log, to see which of those shared libs is meant to be linked against it? Thanks, Ludo’. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Qt 2013-10-13 13:54 ` Qt Ludovic Courtès @ 2013-10-13 14:18 ` Andreas Enge 2013-10-13 20:46 ` Qt Ludovic Courtès 0 siblings, 1 reply; 17+ messages in thread From: Andreas Enge @ 2013-10-13 14:18 UTC (permalink / raw) To: Ludovic Courtès; +Cc: guix-devel 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 ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Qt 2013-10-13 14:18 ` Qt Andreas Enge @ 2013-10-13 20:46 ` Ludovic Courtès 2013-11-11 20:19 ` Qt Andreas Enge 0 siblings, 1 reply; 17+ messages in thread From: Ludovic Courtès @ 2013-10-13 20:46 UTC (permalink / raw) To: Andreas Enge; +Cc: guix-devel Andreas Enge <andreas@enge.fr> skribis: > 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. So I would patch Qt 4 to explicitly link libQt4Core.so (whatever it’s called) against libicu as well. That will make sure it’s found at run time. HTH, Ludo’. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Qt 2013-10-13 20:46 ` Qt Ludovic Courtès @ 2013-11-11 20:19 ` Andreas Enge 2013-11-11 20:36 ` Qt Ludovic Courtès 0 siblings, 1 reply; 17+ messages in thread From: Andreas Enge @ 2013-11-11 20:19 UTC (permalink / raw) To: Ludovic Courtès; +Cc: guix-devel On Sun, Oct 13, 2013 at 10:46:47PM +0200, Ludovic Courtès wrote: > Andreas Enge <andreas@enge.fr> skribis: > > 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. > So I would patch Qt 4 to explicitly link libQt4Core.so (whatever it’s > called) against libicu as well. That will make sure it’s found at run > time. No idea how to do this with the cmake build system... Andreas ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Qt 2013-11-11 20:19 ` Qt Andreas Enge @ 2013-11-11 20:36 ` Ludovic Courtès 2014-09-29 8:06 ` Qt Andreas Enge 0 siblings, 1 reply; 17+ messages in thread From: Ludovic Courtès @ 2013-11-11 20:36 UTC (permalink / raw) To: Andreas Enge; +Cc: guix-devel Andreas Enge <andreas@enge.fr> skribis: > On Sun, Oct 13, 2013 at 10:46:47PM +0200, Ludovic Courtès wrote: >> Andreas Enge <andreas@enge.fr> skribis: >> > 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. >> So I would patch Qt 4 to explicitly link libQt4Core.so (whatever it’s >> called) against libicu as well. That will make sure it’s found at run >> time. > > No idea how to do this with the cmake build system... Perhaps by adding -licu to the relevant cmake-generated Makefile, after the ‘configure’ phase? (Easier said than done.) Ludo’. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Qt 2013-11-11 20:36 ` Qt Ludovic Courtès @ 2014-09-29 8:06 ` Andreas Enge 0 siblings, 0 replies; 17+ messages in thread From: Andreas Enge @ 2014-09-29 8:06 UTC (permalink / raw) To: Ludovic Courtès; +Cc: guix-devel On Mon, Nov 11, 2013 at 09:36:55PM +0100, Ludovic Courtès wrote: > Perhaps by adding -licu to the relevant cmake-generated Makefile, after > the ‘configure’ phase? (Easier said than done.) This is finally fixed in commit 47e225c, thanks to the hackathon. Andreas ^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2014-09-29 8:06 UTC | newest] Thread overview: 17+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-10-08 19:05 Qt Andreas Enge 2013-10-08 21:05 ` Qt Ludovic Courtès 2013-10-10 12:59 ` Qt Andreas Enge 2013-10-10 13:09 ` Qt Ludovic Courtès 2013-10-10 20:00 ` Qt Andreas Enge 2013-10-10 22:19 ` Qt Mark H Weaver 2013-10-31 15:35 ` Qt Andreas Enge 2013-10-12 13:08 ` Qt Andreas Enge 2013-10-12 19:38 ` Qt Ludovic Courtès 2013-10-12 21:25 ` Qt Andreas Enge 2013-10-12 21:39 ` Qt Andreas Enge 2013-10-13 13:54 ` Qt Ludovic Courtès 2013-10-13 14:18 ` Qt Andreas Enge 2013-10-13 20:46 ` Qt Ludovic Courtès 2013-11-11 20:19 ` Qt Andreas Enge 2013-11-11 20:36 ` Qt Ludovic Courtès 2014-09-29 8:06 ` Qt Andreas Enge
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/guix.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).