Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v6 01/28] package/qt5base: Do not build shared libs if BR2_STATIC_LIBS is chosen
Date: Mon, 9 Mar 2020 22:21:54 +0100	[thread overview]
Message-ID: <20200309222154.0eec932a@windsurf.home> (raw)
In-Reply-To: <20200217212350.29750-2-anaumann@ultratronik.de>

Hello Andreas,

On Mon, 17 Feb 2020 22:23:23 +0100
Andreas Naumann <anaumann@ultratronik.de> wrote:

> Traditionally we configured qt5 to always build shared libraries. This resulted
> in many conditionals when setting buildroot to static-libs only, because each
> module's target install had to be guarded.
> So to avoid this and simplify target install in a subsequent commit, configure
> qt to build (and install) only the type of libs which the buildroot defconfig
> is set to.
> Unfortunately it seems that Qt does not support building both dynamic and static
> libs at the same time, so we still set it shared if buildroot asks for both.
> 
> Signed-off-by: Andreas Naumann <anaumann@ultratronik.de>
> ---
>  package/qt5/qt5base/qt5base.mk | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/package/qt5/qt5base/qt5base.mk b/package/qt5/qt5base/qt5base.mk
> index 774c771bc9..c662921b8f 100644
> --- a/package/qt5/qt5base/qt5base.mk
> +++ b/package/qt5/qt5base/qt5base.mk
> @@ -24,8 +24,13 @@ QT5BASE_CONFIGURE_OPTS += \
>  	-no-iconv \
>  	-system-zlib \
>  	-system-pcre \
> -	-no-pch \
> -	-shared
> +	-no-pch
> +
> +ifeq ($(BR2_STATIC_LIBS),y)
> +QT5BASE_CONFIGURE_OPTS += -static
> +else
> +QT5BASE_CONFIGURE_OPTS += -shared
> +endif

From package/qt5/Config.in:

menuconfig BR2_PACKAGE_QT5
        bool "Qt5"
        depends on BR2_INSTALL_LIBSTDCPP
        depends on BR2_USE_WCHAR
        depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
        depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
        depends on !BR2_ARM_CPU_ARMV4 # needs ARMv5+
        # no built-in double-conversion support
        depends on !BR2_arc && !BR2_nios2 && !BR2_xtensa
        depends on !BR2_STATIC_LIBS

So Qt5 cannot be enabled when BR2_STATIC_LIBS=y. See also:

commit 2215b8a75edea384182f0511b6649306e60b55d1
Author: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Date:   Wed Aug 26 17:06:18 2015 +0200

    qt5: disable for static-only builds
    
    Even though we have some specific code to support building Qt5 for
    static-only configurations, it doesn't work. The first problem is that
    our custom qmake.conf always passes -ldl, which makes a number of Qt5
    config.tests fail at configure time. Once this problem is fixed by
    removing -ldl from QMAKE_LIBS and adding it to QMAKE_LIBS_DYNLOAD
    instead, the next problem is that the plugin infrastructure of Qt5
    assumes that Linux has dynamic library support: the qlibrary_unix.cpp
    file includes <dlfcn.h>, and the only condition for this file to not
    be included is:
    
    Until recently, building Qt5 statically was working because our C
    library was not built static-only: it provided <dlfcn.h> and
    libdl.so. But now that we have a really static only toolchain, Qt5 no
    longer builds.
    
    The easiest solution is to simply make Qt5 depend on dynamic library
    support.
    
    Fixes:
    
       http://autobuild.buildroot.net/results/538/538e0325adba9fabbe4ec8e550fbb6a7219f5e7a/
    
    Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
    Signed-off-by: Peter Korsgaard <peter@korsgaard.com>

So I don't think this patch is necessary, unless I missed something.
How did you test it?

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

  reply	other threads:[~2020-03-09 21:21 UTC|newest]

Thread overview: 98+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-17 21:23 [Buildroot] [PATCH v6 00/28] Qt5 qmake infra and per-package compatibility Andreas Naumann
2020-02-17 21:23 ` [Buildroot] [PATCH v6 01/28] package/qt5base: Do not build shared libs if BR2_STATIC_LIBS is chosen Andreas Naumann
2020-03-09 21:21   ` Thomas Petazzoni [this message]
2020-03-09 22:42     ` Peter Seiderer
2020-03-10  8:13       ` Thomas Petazzoni
2020-03-10  8:17         ` Peter Seiderer
2020-03-10 17:02     ` Andreas Naumann
2020-02-17 21:23 ` [Buildroot] [PATCH v6 02/28] core/pkg-infra: Add generic qmake package infrastructure Andreas Naumann
2020-03-09 22:10   ` Thomas Petazzoni
2020-03-10 17:10     ` Andreas Naumann
2020-02-17 21:23 ` [Buildroot] [PATCH v6 03/28] qt5: Convert straightforward packages to qmake infra Andreas Naumann
2020-03-09 22:12   ` Thomas Petazzoni
2020-03-10 18:09     ` Andreas Naumann
2020-02-17 21:23 ` [Buildroot] [PATCH v6 04/28] package/qt5base: Convert " Andreas Naumann
2020-03-09 22:29   ` Thomas Petazzoni
2020-03-10 18:20     ` Andreas Naumann
2020-02-17 21:23 ` [Buildroot] [PATCH v6 05/28] package/qwt: Partially convert " Andreas Naumann
2020-03-11 21:19   ` Thomas Petazzoni
2020-03-14 20:58     ` Andreas Naumann
2020-02-17 21:23 ` [Buildroot] [PATCH v6 06/28] package/qwt: Add missing qt5svg dependency Andreas Naumann
2020-02-17 21:56   ` Thomas Petazzoni
2020-02-18  9:43     ` Andreas Naumann
2020-02-18 14:58       ` Thomas Petazzoni
2020-02-19 19:16   ` Thomas Petazzoni
2020-02-17 21:23 ` [Buildroot] [PATCH v6 07/28] package/qt5tools: Partially convert to qmake infra Andreas Naumann
2020-03-11 21:22   ` Thomas Petazzoni
2020-02-17 21:23 ` [Buildroot] [PATCH v6 08/28] package/qt5virtualkeyboard: Convert " Andreas Naumann
2020-03-11 21:35   ` Thomas Petazzoni
2020-02-17 21:23 ` [Buildroot] [PATCH v6 09/28] package/quazip: " Andreas Naumann
2020-02-17 21:57   ` Thomas Petazzoni
2020-02-18 10:00     ` Andreas Naumann
2020-03-11 21:42       ` Thomas Petazzoni
2020-03-14 21:52         ` Andreas Naumann
2020-02-17 21:23 ` [Buildroot] [PATCH v6 10/28] package/qt5wayland: " Andreas Naumann
2020-03-11 21:48   ` Thomas Petazzoni
2020-02-17 21:23 ` [Buildroot] [PATCH v6 11/28] package/qt5webchannel: " Andreas Naumann
2020-03-11 21:49   ` Thomas Petazzoni
2020-02-17 21:23 ` [Buildroot] [PATCH v6 12/28] package/qt5webkit: " Andreas Naumann
2020-03-11 21:55   ` Thomas Petazzoni
2020-02-17 21:23 ` [Buildroot] [PATCH v6 13/28] package/qt5webkit-examples: " Andreas Naumann
2020-03-11 21:57   ` Thomas Petazzoni
2020-02-17 21:23 ` [Buildroot] [PATCH v6 14/28] package/qt5webengine: " Andreas Naumann
2020-03-11 22:01   ` Thomas Petazzoni
2020-03-16 21:15     ` Andreas Naumann
2020-02-17 21:23 ` [Buildroot] [PATCH v6 15/28] package/qt-webkit-kiosk: " Andreas Naumann
2020-03-11 22:04   ` Thomas Petazzoni
2020-03-16 21:53     ` Andreas Naumann
2020-02-17 21:23 ` [Buildroot] [PATCH v6 16/28] package/qt5cinex: " Andreas Naumann
2020-03-11 22:06   ` Thomas Petazzoni
2020-02-17 21:23 ` [Buildroot] [PATCH v6 17/28] core/pkg-infra: Fix package file statistics for parallel build Andreas Naumann
2020-03-11 22:07   ` Thomas Petazzoni
2020-03-16 21:54     ` Andreas Naumann
2020-02-17 21:23 ` [Buildroot] [PATCH v6 18/28] package/cmake: Fix for using -O in top-level make Andreas Naumann
2020-03-11 22:25   ` Thomas Petazzoni
2020-03-12 13:00     ` Arnout Vandecappelle
2020-03-12 13:22       ` Thomas Petazzoni
2020-03-16 22:15       ` Andreas Naumann
2020-03-17  6:08         ` Thomas Petazzoni
2020-03-17 19:02           ` Asaf Kahlon
2020-03-18 15:35             ` Andreas Naumann
2020-03-18 18:59               ` Asaf Kahlon
2020-03-18 21:03                 ` Andreas Naumann
2020-03-19 11:40                   ` Asaf Kahlon
2020-03-19 12:49                     ` Thomas Petazzoni
2020-03-19 13:53                       ` Asaf Kahlon
2020-03-19 14:00                         ` Thomas Petazzoni
2020-03-22 20:46                           ` Andreas Naumann
2020-02-17 21:23 ` [Buildroot] [PATCH v6 19/28] core/pkg-infra: Add per-package support in qmake infra Andreas Naumann
2020-04-10 20:25   ` Yann E. MORIN
2020-07-01 19:01   ` Yann E. MORIN
2020-07-20  6:14   ` Peter Korsgaard
2020-02-17 21:23 ` [Buildroot] [PATCH v6 20/28] qt5: Fix pkgconfig search path for per-package infrastructure Andreas Naumann
2020-06-19 10:22   ` Louis-Paul CORDIER
2020-07-01 21:15     ` Yann E. MORIN
2020-07-01 21:54       ` Yann E. MORIN
2020-07-02 17:38         ` Yann E. MORIN
2020-07-22 19:48         ` LP C
2020-07-22 20:26           ` Yann E. MORIN
2020-07-23 10:29             ` Andreas Naumann
2020-07-23 20:17               ` Yann E. MORIN
2020-07-24  7:17                 ` Andreas Naumann
2020-02-17 21:23 ` [Buildroot] [PATCH v6 21/28] package/python-sip: Fix qmake usage for per-package build Andreas Naumann
2020-03-11 22:30   ` Thomas Petazzoni
2020-03-16 22:32     ` Andreas Naumann
2020-07-01 21:56   ` Yann E. MORIN
2020-02-17 21:23 ` [Buildroot] [PATCH v6 22/28] package/python-pyqt5: " Andreas Naumann
2020-02-17 21:23 ` [Buildroot] [PATCH v6 23/28] package/qt5webengine: add libXdamage as XCB dependency Andreas Naumann
2020-03-12  8:15   ` Thomas Petazzoni
2020-03-16 22:40     ` Andreas Naumann
2020-03-22 21:58       ` Andreas Naumann
2020-03-22 22:03         ` Thomas Petazzoni
2020-02-17 21:23 ` [Buildroot] [PATCH v6 24/28] package/qt5webengine: Add optional dependency on qt5quickcontrols2 Andreas Naumann
2020-02-17 21:23 ` [Buildroot] [PATCH v6 25/28] package/qt5webengine: Add optional dependency on qt5location Andreas Naumann
2020-02-17 21:23 ` [Buildroot] [PATCH v6 26/28] package/qt5virtualkeyboard: Add optional dependency on qt5quickcontrols2 Andreas Naumann
2020-02-17 21:23 ` [Buildroot] [PATCH v6 27/28] package/qt53d: Add optional dependency on qt5multimedia Andreas Naumann
2020-02-17 21:23 ` [Buildroot] [PATCH v6 28/28] package/qt5charts: " Andreas Naumann
2020-02-18 21:33 ` [Buildroot] [PATCH v6 00/28] Qt5 qmake infra and per-package compatibility Peter Seiderer
2020-02-19 14:46   ` 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=20200309222154.0eec932a@windsurf.home \
    --to=thomas.petazzoni@bootlin.com \
    --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