Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Seiderer <ps.report@gmx.net>
To: buildroot@busybox.net
Subject: [Buildroot] [autobuild.buildroot.net] Build results for 2019-07-20
Date: Tue, 23 Jul 2019 21:36:46 +0200	[thread overview]
Message-ID: <20190723213646.326c6fd9@gmx.net> (raw)
In-Reply-To: <9d0c9348-7ca4-bca5-3c89-17c1b1358069@andin.de>

Hello Andreas,

On Tue, 23 Jul 2019 15:14:50 +0200, Andreas Naumann <dev@andin.de> wrote:

> Hi Peter,
>
> Am 22.07.19 um 20:21 schrieb Peter Seiderer:
> > Hello Andreas,
> >
> > On Mon, 22 Jul 2019 16:09:59 +0200, Andreas Naumann <dev@andin.de> wrote:
> >
> >> Hello Peter, all,
> >>
> >>
> >> Am 21.07.19 um 21:01 schrieb Peter Seiderer:
> >>> Hello *,
> >>>
> >>> On Sun, 21 Jul 2019 06:00:34 -0000, Thomas Petazzoni <thomas.petazzoni@bootlin.com> wrote:
> >>>
> >>>> Hello,
> >>>>
> >>>> Build statistics for 2019-07-20
> >>>
> >>> [...]
> >>>
> >>>>        sparc64 |                  libv4l-1.16.5 | NOK | http://autobuild.buildroot.net/results/79c1e1b7a1bc53c1e9b2ae0c9acb443e6d2e2994 |
> >>>
> >>> make[4]: Entering directory '/home/buildroot/build/instance-1/output/build/libv4l-1.16.5/utils/qv4l2'
> >>>
> >>> [...]
> >>>
> >>>     CXXLD    qv4l2
> >>> libtool: warning: library '/home/buildroot/build/instance-1/output/host/bin/../sparc64-buildroot-linux-gnu/sysroot/usr/lib/libQt5Widgets.la' was moved.
> >>> libtool:   error: cannot find the library '' or unhandled argument '/libQt5Gui.so'
> >>> Makefile:571: recipe for target 'qv4l2' failed
> >>>
> >>>
> >>> >From host/sparc64-buildroot-linux-gnu/sysroot/usr/lib/libQt5Widgets.la:
> >>>
> >>> 	# Libraries that this one depends upon.
> >>> 	dependency_libs='-latomic /libQt5Gui.so /libQt5Core.so -lpthread -lrt -lpthread -ldl '
> >>
> >>
> >> I have rebuilt the sparc config that led to this failure as well as an
> >> arm config (imx6-sabresd_qt5) and can confirm that both now (Qt 5.12.4)
> >> create lines like
> >>     dependency_libs='-latomic <pkg-build-dir>/lib/libQt5Core.so -lpthread
> >> -lrt -lpthread -ldl '
> >>
> >> instead of (Qt 5.11.3)
> >>     dependency_libs='-L<pkd-build-dir>/lib -lQt5Core -lrt -ldl -latomic
> >> -lpthread '
> >>
> >> Right now I dont have the time to find out why and what exactly has
> >> changed in Qt (or elsewhere) to cause that.
> >>
> >>>
> >>> This can be fixed by reverting 'qt5: Remove *.la/*.prl fixup script' ([1]), and adding
> >>>
> >>> 	-e "s:\/lib\([a-zA-Z0-9_-]*\)\.so:-l\1:g"
> >>>
> >>> to the sed statement, resulting in the following dependency_libs line:
> >>>
> >>> 	# Libraries that this one depends upon.
> >>> 	dependency_libs='-latomic -lQt5Gui -lQt5Core -lpthread -lrt -lpthread -ldl '
> >>
> >> Obviously the la fixup code in pkg-generic.mk is no longer able to
> >> handle the occurence of so-files with full path correctly. However, I
> >> wonder if pkg-generic would be an acceptable place to fix the issue.?
> >
> > Can confirm that the following (quick hack) fixes the problem too:
> >
> > --- a/package/pkg-generic.mk
> > +++ b/package/pkg-generic.mk
> > @@ -305,6 +305,7 @@ $(BUILD_DIR)/%/.stamp_staging_installed:
> >                                  -e "s:@TOOLCHAIN_EXTERNAL_INSTALL_DIR@:$(TOOLCHAIN_EXTERNAL_INSTALL_DIR):g") \
> >                          -e "s:@STAGING_DIR@:$(STAGING_DIR):g" \
> >                          -e "s:@BASE_DIR@:$(BASE_DIR):g" \
> > +                       -e "s:\/lib\([a-zA-Z0-9_-]*\)\.so:-l\1:g" \
> >                          "$${la}.fixed" && \
> >                  if cmp -s "$${la}" "$${la}.fixed"; then \
> >                          rm -f "$${la}.fixed"; \
>
> Somebody reported a similar issue (and workaround) in the QT bugracker:
> https://bugreports.qt.io/browse/QTBUG-76625
> Theres also a fix for it, however it has no effect on the appearance of
> so-file. As I understand it they rather fix the path to it.
>
> The real reason behind our problem seems to be:
>
> commit 5b3dfa470ed7ea40103daa785286ab71fb7aa230
> Author: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
> Date:   Wed Dec 19 12:46:52 2018 +0100
>
>      qmake: link qt libraries by full path
>
>      this avoids the scenario where the linker would pick up the wrong qt
>      libraries for LIBS_PRIVATE because LIBS added the "wrong" path first.
>      this is also consistent with configure-supplied dependencies as of
>      recently.
>
>      as a side effect, this also removes pretenses of lsb linker
> handling, as
>      it makes no sense after the change and is certainly obsolete anyway.
>
>      Fixes: QTBUG-50921
>
> I made a comment in 76625. If I understand the issue correctly, then
> qmake needs to add '-l' in front of the absolute so-files. We in turn
> would need to not remove the build-dir when occuring in an so-file, but
> replace it with the staging dir. Otherwise we might hit the same issue
> that 5b3dfa4 was trying to fix, right?

Thanks for investigation and the hints...., with the following patch

--- qt5base-5.12.4/mkspecs/features/qt.prf-001	2019-07-23 20:57:39.668312458 +0200
+++ qt5base-5.12.4/mkspecs/features/qt.prf	2019-07-23 20:58:44.289581880 +0200
@@ -217,7 +217,7 @@
                     lib = $$MODULE_LIBS/$$QMAKE_PREFIX_STATICLIB$${lib}.$$QMAKE_EXTENSION_STATICLIB
                     PRE_TARGETDEPS += $$lib
                 } else {
-                    lib = $$MODULE_LIBS/$$QMAKE_PREFIX_SHLIB$${lib}.$$QMAKE_EXTENSION_SHLIB
+                    lib = -L$$MODULE_LIBS -l$${lib}
                 }
                 LIBS$$var_sfx += $$lib
             }


I get the following entry in build/qt5base-5.12.4/lib/libQt5Widgets.la:

	dependency_libs='-L/home/seiderer/Work/Buildroot/build_sparc_qt_libv4l_001/build/qt5base-5.12.4/lib -lQt5Gui -lQt5Core -latomic -lrt -ldl -lpthread -lrt -lpthread -ldl '

And in host/sparc64-buildroot-linux-gnu/sysroot/usr/lib/libQt5Widgets.la:

	dependency_libs=' -lQt5Gui -lQt5Core -latomic -lrt -ldl -lpthread -lrt -lpthread -ldl '

And the build of libv4l/utils/qv4l2 succeeds...

Regards,
Peter

>
> regards,
> Andreas
>
> >
> > Regards,
> > Peter
> >
> >>
> >>
> >> regards,
> >> Andreas
> >>
> >>
> >>>
> >>> Regards,
> >>> Peter
> >>>
> >>> [1] https://git.buildroot.net/buildroot/commit/?id=428e5276e4df0b4bbd75df38565298ad53ea4f8b
> >>> _______________________________________________
> >>> buildroot mailing list
> >>> buildroot at busybox.net
> >>> http://lists.busybox.net/mailman/listinfo/buildroot
> >>>
> >

  reply	other threads:[~2019-07-23 19:36 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-21  6:00 [Buildroot] [autobuild.buildroot.net] Build results for 2019-07-20 Thomas Petazzoni
2019-07-21 19:01 ` Peter Seiderer
2019-07-22 14:09   ` Andreas Naumann
2019-07-22 18:21     ` Peter Seiderer
2019-07-23 13:14       ` Andreas Naumann
2019-07-23 19:36         ` Peter Seiderer [this message]
2019-07-24  8:09           ` Andreas Naumann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190723213646.326c6fd9@gmx.net \
    --to=ps.report@gmx.net \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox