GNOME Bugzilla – Bug 651923
gtk-vnc-0.4.3 parallel installation fails
Last modified: 2013-09-13 11:34:10 UTC
As reported downstream at: http://bugs.gentoo.org/show_bug.cgi?id=328273 Parallel installation fails with: Making install in src make[1]: Entering directory `/home/pacho/gtk-vnc-0.4.3/src' make install-am make[2]: Entering directory `/home/pacho/gtk-vnc-0.4.3/src' make[3]: Entering directory `/home/pacho/gtk-vnc-0.4.3/src' test -z "/home/pacho/gtk-vnc/lib" || /bin/mkdir -p "/home/pacho/gtk-vnc/lib" test -z "/home/pacho/gtk-vnc/lib64/python2.7/site-packages" || /bin/mkdir -p "/home/pacho/gtk-vnc/lib64/python2.7/site-packages" /bin/sh ../libtool --mode=install /usr/bin/install -c libgvnc-1.0.la libgtk-vnc-1.0.la '/home/pacho/gtk-vnc/lib' test -z "/home/pacho/gtk-vnc/share/gir-1.0" || /bin/mkdir -p "/home/pacho/gtk-vnc/share/gir-1.0" /bin/sh ../libtool --mode=install /usr/bin/install -c gtkvnc.la '/home/pacho/gtk-vnc/lib64/python2.7/site-packages' test -z "/home/pacho/gtk-vnc/include/gtk-vnc-1.0/" || /bin/mkdir -p "/home/pacho/gtk-vnc/include/gtk-vnc-1.0/" /usr/bin/install -c -m 644 GVnc-1.0.gir GtkVnc-1.0.gir '/home/pacho/gtk-vnc/share/gir-1.0' /usr/bin/install -c -m 644 vncdisplay.h vncdisplayenums.h vncgrabsequence.h vncimageframebuffer.h '/home/pacho/gtk-vnc/include/gtk-vnc-1.0/' test -z "/home/pacho/gtk-vnc/include/gvnc-1.0/" || /bin/mkdir -p "/home/pacho/gtk-vnc/include/gvnc-1.0/" test -z "/home/pacho/gtk-vnc/lib/girepository-1.0" || /bin/mkdir -p "/home/pacho/gtk-vnc/lib/girepository-1.0" /usr/bin/install -c -m 644 vncpixelformat.h vncframebuffer.h vncbaseframebuffer.h vnccursor.h vnccolormap.h vncconnection.h vncconnectionenums.h vncutil.h '/home/pacho/gtk-vnc/include/gvnc-1.0/' /usr/bin/install -c -m 644 GVnc-1.0.typelib GtkVnc-1.0.typelib '/home/pacho/gtk-vnc/lib/girepository-1.0' libtool: install: /usr/bin/install -c .libs/libgvnc-1.0.so.0.0.1 /home/pacho/gtk-vnc/lib/libgvnc-1.0.so.0.0.1 libtool: install: (cd /home/pacho/gtk-vnc/lib && { ln -s -f libgvnc-1.0.so.0.0.1 libgvnc-1.0.so.0 || { rm -f libgvnc-1.0.so.0 && ln -s libgvnc-1.0.so.0.0.1 libgvnc-1.0.so.0; }; }) libtool: install: (cd /home/pacho/gtk-vnc/lib && { ln -s -f libgvnc-1.0.so.0.0.1 libgvnc-1.0.so || { rm -f libgvnc-1.0.so && ln -s libgvnc-1.0.so.0.0.1 libgvnc-1.0.so; }; }) libtool: install: warning: relinking `gtkvnc.la' libtool: install: (cd /home/pacho/gtk-vnc-0.4.3/src; /bin/sh /home/pacho/gtk-vnc-0.4.3/libtool --silent --tag CC --mode=relink gcc -std=gnu99 -pthread -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng14 -I/usr/include/libdrm -I/usr/include/python2.7 -pthread -I/usr/include/pygtk-2.0 -I/usr/include/gtk-2.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/lib64/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng14 -I/usr/include/libdrm -Wno-redundant-decls -g -O2 -module -avoid-version -fPIC -o gtkvnc.la -rpath /home/pacho/gtk-vnc/lib64/python2.7/site-packages gtkvnc_la-vncmodule.lo gtkvnc_la-vncmodule.defs.lo libgtk-vnc-1.0.la -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lm -lcairo -lpng14 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lz ) libtool: install: /usr/bin/install -c .libs/libgvnc-1.0.lai /home/pacho/gtk-vnc/lib/libgvnc-1.0.la libtool: install: warning: relinking `libgtk-vnc-1.0.la' libtool: install: (cd /home/pacho/gtk-vnc-0.4.3/src; /bin/sh /home/pacho/gtk-vnc-0.4.3/libtool --silent --tag CC --mode=relink gcc -std=gnu99 -pthread -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng14 -I/usr/include/libdrm -Wall -Wformat -Wformat-security -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wextra -Wshadow -Wcast-align -Wwrite-strings -Waggregate-return -Winline -Wredundant-decls -Wno-sign-compare -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fasynchronous-unwind-tables -DSYSCONFDIR=\"/home/pacho/gtk-vnc/etc\" -DPACKAGE_LOCALE_DIR=\"/home/pacho/gtk-vnc/share/locale\" -DG_LOG_DOMAIN=\"gtk-vnc\" -g -O2 -Wl,--version-script=./libgtk-vnc_sym.version -Wl,--no-undefined -version-info 0:1:0 -o libgtk-vnc-1.0.la -rpath /home/pacho/gtk-vnc/lib libgtk_vnc_1_0_la-vnccairoframebuffer.lo libgtk_vnc_1_0_la-vncdisplay.lo libgtk_vnc_1_0_la-vncdisplayenums.lo libgtk_vnc_1_0_la-vncdisplaykeymap.lo libgtk_vnc_1_0_la-vncgrabsequence.lo libgtk_vnc_1_0_la-vncmarshal.lo libgtk_vnc_1_0_la-vncimageframebuffer.lo -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lm -lcairo -lpng14 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lX11 libgvnc-1.0.la -lz ) /home/pacho/gtk-vnc-0.4.3/src/.libs/libgtk-vnc-1.0.so: file not recognized: File truncated collect2: ld returned 1 exit status libtool: install: error: relink `gtkvnc.la' with the above command before installing it make[3]: *** [install-pyexecLTLIBRARIES] Error 1 make[3]: *** Waiting for unfinished jobs.... libtool: install: /usr/bin/install -c .libs/libgtk-vnc-1.0.so.0.0.1T /home/pacho/gtk-vnc/lib/libgtk-vnc-1.0.so.0.0.1 libtool: install: (cd /home/pacho/gtk-vnc/lib && { ln -s -f libgtk-vnc-1.0.so.0.0.1 libgtk-vnc-1.0.so.0 || { rm -f libgtk-vnc-1.0.so.0 && ln -s libgtk-vnc-1.0.so.0.0.1 libgtk-vnc-1.0.so.0; }; }) libtool: install: (cd /home/pacho/gtk-vnc/lib && { ln -s -f libgtk-vnc-1.0.so.0.0.1 libgtk-vnc-1.0.so || { rm -f libgtk-vnc-1.0.so && ln -s libgtk-vnc-1.0.so.0.0.1 libgtk-vnc-1.0.so; }; }) libtool: install: /usr/bin/install -c .libs/libgtk-vnc-1.0.lai /home/pacho/gtk-vnc/lib/libgtk-vnc-1.0.la libtool: finish: PATH="/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.4.5:/usr/games/bin:/sbin" ldconfig -n /home/pacho/gtk-vnc/lib ---------------------------------------------------------------------- Libraries have been installed in: /home/pacho/gtk-vnc/lib If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[3]: Leaving directory `/home/pacho/gtk-vnc-0.4.3/src' make[2]: *** [install-am] Error 2 make[2]: Leaving directory `/home/pacho/gtk-vnc-0.4.3/src' make[1]: *** [install] Error 2 make[1]: Leaving directory `/home/pacho/gtk-vnc-0.4.3/src' make: *** [install-recursive] Error 1 Thanks for your help
I'm still unable to reproduce this and can't spot an obvious error in the Makefile.am rules myself. Can you try to confirm if this still happens with the 0.5.0 release, otherwise I'll close this bug.
Created attachment 225511 [details] build.log Updated build.log with 0.5.1: https://bugs.gentoo.org/show_bug.cgi?id=328273#c37
I'm still unable to reproduce this problem on any system even on a 16 core machine using 'make -j 30'. I also can't see any obvious mistake in the Makefile.am that would cause libtool to screw up install in this way. So in the absence of someone being able to identify / point to the bug, I can only assume that this is a issue with something in Gentoo build environment / toolchain, rather than gtk-vnc. I'm closing this bug - re-open/re-file if you can clearly point to a GTK-VNC makefile.am bug.
From the downstream bug: * refs https://bugs.gentoo.org/show_bug.cgi?id=253862 * refs http://www.mail-archive.com/libtool@gnu.org/msg05871.html This is not a bug of gtk-vnc per see but a problem with libtool not handling nicely two libs being built in the same folder with one depending on the other. You have a non-null chance for it to work, but if you are not in luck it will fail in various ways: file not existing when trying to link the lib, file truncated messages, etc. The solution, which is the recommended workaround by libtool upstream, is to move the lib that is needed by the other one to a different folder (a subfolder for example).
Will reopen then to see if it can be workarounded at least :)
This explanation still doesn't explain why no one has been able to reproduce the issue doing parallel make installs on non-Gentoo distributions. I've done enough parallel builds on Fedora/RHEL that I'm not prepared to accept that I'm merely being "lucky" to not hit the race. I'm also not interested in re-arranging the source code for this issue.
If I don't misremember, Lennart told me (on a similar bug related with parallel make installation problem with libcanberra), that they weren't supporting parallel installations, are you sure you are really making a parallel *installation* on your redhat system? (I think fedora stuff is built in parallel but installed with -j1)
Daniel, in other words: "make -j30" works, but "make -j30 install" fails.
I cannot reproduce this myself even with 'make -j 20 install'. I'm not willing to re-arrange libraries into separate sub-directories to workaround this. If people hit this, then simply don't attempt a parallel 'make install', only do parallel build.