From patchwork Mon Nov 25 11:26:14 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Giulio Benetti X-Patchwork-Id: 1200350 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=busybox.net (client-ip=140.211.166.138; helo=whitealder.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=benettiengineering.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=aruba.it header.i=@aruba.it header.b="nqRZR7ox"; dkim-atps=neutral Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47M4VY4m9Mz9sNx for ; Mon, 25 Nov 2019 22:26:29 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 0684E8628E; Mon, 25 Nov 2019 11:26:27 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Z2RD+M0gAh90; Mon, 25 Nov 2019 11:26:24 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by whitealder.osuosl.org (Postfix) with ESMTP id BE4C0861E7; Mon, 25 Nov 2019 11:26:24 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id 0BDA61BF3CA for ; Mon, 25 Nov 2019 11:26:24 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 0921D854EF for ; Mon, 25 Nov 2019 11:26:24 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id dGzxFO-ylROD for ; Mon, 25 Nov 2019 11:26:22 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from smtpcmd0986.aruba.it (smtpcmd0986.aruba.it [62.149.156.86]) by fraxinus.osuosl.org (Postfix) with ESMTP id 1E3B385650 for ; Mon, 25 Nov 2019 11:26:21 +0000 (UTC) Received: from ubuntu.localdomain ([146.241.192.58]) by smtpcmd09.ad.aruba.it with bizsmtp id WBSG210011G3Y1N01BSGep; Mon, 25 Nov 2019 12:26:20 +0100 From: Giulio Benetti To: buildroot@buildroot.org Date: Mon, 25 Nov 2019 12:26:14 +0100 Message-Id: <20191125112614.93405-1-giulio.benetti@benettiengineering.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aruba.it; s=a1; t=1574681180; bh=uN/kDFrvSH/e1HK08GnCFf1lkLiFyWfu9vje2ZBzf3g=; h=From:To:Subject:Date:MIME-Version; b=nqRZR7oxJ2GVlOQawafZ7Ml7qpHTwh5otp69+CM3y0iUF8dtiGFB2jeYedlFLL2KK +i7bUdQzT4ERR1oU/vUWTABK2RckuIfJqEfqdE46NnnLphJ+Um1RB1ejtaO0qxgWf8 6iFEQVFL9Vnvq7tzihUgTUWuvBvm0ZZd9FbcHNBT5aAAGHIpR4L4j8/AuMbrneyntH icreLHRKBMtgr1JAaWK8rSIpUjEmuZJi/4z51ErFm1Blx4uQO0Wy2t/zhGtqizkwO4 f+1+ALfrYOTHtzoH5EmxlC4gjWgqtVasTsQ5FnkOtD5jotDNp9MoIzvBsqiXRa67DB d1gCoG7y5wfpQ== Subject: [Buildroot] [PATCH v3] package/qt5base: fix building with correct optimization X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Giulio Benetti , Peter Seiderer , Julien Corjon Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" Qt5 has predefined optimization flags depending if you're building for size, for debug etc. These flags are defined in mkspecs/common/gcc-base.conf: QMAKE_CFLAGS_OPTIMIZE = -O2 QMAKE_CFLAGS_OPTIMIZE_FULL = -O3 QMAKE_CFLAGS_OPTIMIZE_DEBUG = -Og QMAKE_CFLAGS_OPTIMIZE_SIZE = -Os Then, in the same file, they use them to set QMAKE_CFLAGS_RELEASE/QMAKE_CXXFLAGS_RELEASE: QMAKE_CFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE QMAKE_CXXFLAGS_RELEASE += $$QMAKE_CFLAGS_RELEASE At this point there is our chance to override QMAKE_CFLAGS_OPTIMIZE_* in qmake.conf, but it's too late, because QMAKE_CFLAGS_RELEASE is already set(i.e. -O2) so trying to add or remove QMAKE_CFLAGS_OPTIMIZE(that is reset now on) from QMAKE_CLAGS_RELEASE in common/features/default_post.prf won't work: optimize_size { !isEmpty(QMAKE_CFLAGS_OPTIMIZE):!isEmpty(QMAKE_CFLAGS_OPTIMIZE_SIZE) { QMAKE_CFLAGS_RELEASE -= $$QMAKE_CFLAGS_OPTIMIZE QMAKE_CXXFLAGS_RELEASE -= $$QMAKE_CFLAGS_OPTIMIZE QMAKE_CFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE_SIZE QMAKE_CXXFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE_SIZE } } else: optimize_full { !isEmpty(QMAKE_CFLAGS_OPTIMIZE):!isEmpty(QMAKE_CFLAGS_OPTIMIZE_FULL) { QMAKE_CFLAGS_RELEASE -= $$QMAKE_CFLAGS_OPTIMIZE QMAKE_CXXFLAGS_RELEASE -= $$QMAKE_CFLAGS_OPTIMIZE QMAKE_CFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE_FULL QMAKE_CXXFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE_FULL } } So let's reset: QMAKE_CFLAGS_RELEASE QMAKE_CFLAGS_DEBUG QMAKE_CXXFLAGS_RELEASE QMAKE_CXXFLAGS_DEBUG in our qmake.conf.in since the only assignment done in mkspecs/common/gcc-base.conf only regards optimization. This package is also affected by BR2_TOOLCHAIN_HAS_GCC_BUG_90620 and it's been worked around by appending -O0 to CFLAGS/CXXFLAGS. This bug prevented workaround to work overriding optimization flags, so solving this also solves workaround problem. Fixes: http://autobuild.buildroot.net/results/ada/adaa9b4bcc6f9d2b5e82c479859a07e8abf5cf13/ http://autobuild.buildroot.net/results/a83/a83bdd1f3bf309c07abebe871b017c331ed36e67/ Signed-off-by: Giulio Benetti Tested-by: Fabrice Fontaine --- V1->V2: * rewritten entire commit log V2->V3: * rewritten entire commit log again trying to explain better --- package/qt5/qt5base/qmake.conf.in | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/package/qt5/qt5base/qmake.conf.in b/package/qt5/qt5base/qmake.conf.in index 2eb564e172..ae25b2e20f 100644 --- a/package/qt5/qt5base/qmake.conf.in +++ b/package/qt5/qt5base/qmake.conf.in @@ -19,6 +19,10 @@ QMAKE_CFLAGS_OPTIMIZE = QMAKE_CFLAGS_OPTIMIZE_DEBUG = QMAKE_CFLAGS_OPTIMIZE_FULL = QMAKE_CFLAGS_OPTIMIZE_SIZE = +QMAKE_CFLAGS_DEBUG = +QMAKE_CXXFLAGS_DEBUG = +QMAKE_CFLAGS_RELEASE = +QMAKE_CXXFLAGS_RELEASE = CONFIG += nostrip QMAKE_LIBS += -lrt -lpthread -ldl