From patchwork Sat Feb 29 22:06:42 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Seiderer X-Patchwork-Id: 1247152 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.133; helo=hemlock.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=gmx.net Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; secure) header.d=gmx.net header.i=@gmx.net header.a=rsa-sha256 header.s=badeba3b8450 header.b=U+e7zNQJ; dkim-atps=neutral Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48VL9X70k7z9sQt for ; Sun, 1 Mar 2020 09:07:12 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 91C7981D71; Sat, 29 Feb 2020 22:07:10 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZsICT1wlkNGd; Sat, 29 Feb 2020 22:07:10 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by hemlock.osuosl.org (Postfix) with ESMTP id 42AB887347; Sat, 29 Feb 2020 22:07:08 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id 0147D1BF28F for ; Sat, 29 Feb 2020 22:06:51 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id F274C8627E for ; Sat, 29 Feb 2020 22:06:50 +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 BgjX-yIFrnD1 for ; Sat, 29 Feb 2020 22:06:50 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mout.gmx.net (mout.gmx.net [212.227.15.18]) by whitealder.osuosl.org (Postfix) with ESMTPS id 792DE869F8 for ; Sat, 29 Feb 2020 22:06:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1583014004; bh=1aHfNbpxrmu7X737Vf1aliW5hvJ3iwRBzR12gB43IzM=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date; b=U+e7zNQJO6jgl414PRngUIgGpETqztqAp9/OiEaQL9DCEh8Fcsd3zefI5ZyN6sRzb w0Tu+tjPotNnnKEZhIjGu68mKCqVU6jzkJrzpxNftwvYnbrp5t9EBZzXDng5t9SSwO FzYpzKGB5+UpQuWx03tCv4S3Vx6V1L7JgoNqRwsA= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from localhost.fritz.box ([62.216.209.218]) by mail.gmx.com (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1M8QS2-1j3mXE0WZM-004Wcn; Sat, 29 Feb 2020 23:06:44 +0100 From: Peter Seiderer To: buildroot@busybox.net Date: Sat, 29 Feb 2020 23:06:42 +0100 Message-Id: <20200229220642.24367-1-ps.report@gmx.net> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-Provags-ID: V03:K1:qeq6NMQB/PELMns6DP7PQnKclhp1RX5cMX19K7vqoHU/2DRDr+v uuIjnEKUW7kFxeDWA52Ryk9pQ2B9vtNEDnx3aOqjmQJcneItwbIH9Ds4zTf0cXF50mIHvhh h9vzbRzXZH6H3KVnpVUtWf9cTVeATu17SzYNQTxKLpNdbAN5MnvQt7fwHyidwS0HYs9slPu 9UFfrnazuweidwN17MUhQ== X-UI-Out-Filterresults: notjunk:1; V03:K0:Mw9OX2ZIBo4=:KtekN3aTGabkiiphDdzRuV rbwQW6zk8j3RqFS8+XTGHFNmMed7DbRRzlvALqM8EtbgIUmYDST8ecc3xIwOTOY5BUOCYfskA KRuc7kbH3WyR2QRxSjU3DxlQCgUna2Nkxu8JLQQuzdWTN3QCHj48X2MN2HuWAgkfQwN/7rmLL yiWwM0T8pbOzwLcd2F8Pb+nXxWLk07BrjGh0d7uY9TDUd7gemJQRIxU1hdU08a6vuEUId7nl5 GdffHXwRa1uhmAjt2OR5xJru74YOHdFJcWhl+cUiDqUPxHIuCqiiOWTt0mshukgscr+S8gLsr RBRXXjRXGPNJvZZj2O8dV9w7PneCXr2IPs5ku19ps6MR+rcRvImbdkL4V9kg5Bd9TOhb88qEU pc9bJvZTvAxZ4oPQuTSqOI0PY9LwccnGOvNTbOSQLDjv7b5u4eMRHGwRIZZcApTZX/MymfTj6 VnVkCFnfKaIUNJtLGPcyHgXXYpwb+dg/0A1v3YzOJDB8YeSIhoZqHz1rw4PXDf4SjHo1Inwiw RaxCbClIRsZcKNpvLthUCExqQkBbrS3Xgek8W/8h0Xd9LHaO6BDlexmzMAVrZowj8jbdIGrg+ wXbGPoVCf7y+scPoN5orS/U1wCm1sz9/bWBSN9pPWp4dQauCTlQ1y6WpTXigWqNYmoq1elenx BCNoqJi/DihiM9robjS+3tSBA0lrYYKY674Yd2MpCvSYM2PqjfpbTNOGLysghku26BctbBP9g 6eMZ237S/47xkcIBJtmG+dlGIT1UXSVBZaKLcAVSXWK9sjK9buGRe1C7P8iW+TbKBf7G1nVEs sjJOC4ih9Uu9/8wFNdK6WBE+j4eWIFh+AWJNSF8OhGwxZIBwsLUYBHsGkQw2Gn96Rvt5dFnSP 8dqPr1stN7IbF7esh+ZgQ1mgtNFbVNZBdz2C3sU/J6uNKr4V8A8AkXlG9MY1Vsl0hGb5WBXLm uZgBlz+r+DfAtiGWKJnFbDe/HgXOv6GAekbzKgFRZoZKkoO9IRGc4IuJYuJTu9+IDXtr7vZH4 Ld2jZZsAJlfiq+x/bz/BBOByHmF5J9VA8A6qbXD9UI0LuaJxMcmdyg3vhgavf6e7MX3kjlnv6 kRI7J9Rl0fkLgpYCv+Dpyu0A099gSIku7AQz4jGBxb0j6WfXw4XvgOBY3u+kyBU4aBVoApj6X CQzvtqx+lBaOpMzza+jBMJl/bPTw0a3BvhqySDXxc7jP+s0e5nGxR289RAEWtwfq58JaYXEvE tsc6se3+QKY3hxH85 Subject: [Buildroot] [RFC v1] package/qt5webengine: fix chromium arm compile flags 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: Julien Corjon , =?utf-8?q?Ga=C3=ABl_Portay?= Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" The qt5webengine configure simple takes QT_ARCH ('arm') to determine the chromium compiler flags and uses some hard coded ARMv7 default values for the compiler command line: '... -march=armv7-a -mfloat-abi=hard -mtune=generic-armv7-a -mfpu=vfpv3-d16 ...'. This results e.g. in an illegal instruction failure for rpi zero (reported on the mailing list, see [1]). Custom values could be set in the file src/3rdparty/chromium/build/config/arm.gni (as tested by an proof-of-concept patch [2]). [1] http://lists.busybox.net/pipermail/buildroot/2020-February/274587.html [2] http://lists.busybox.net/pipermail/buildroot/2020-February/274586.html Signed-off-by: Peter Seiderer --- Notes: - did not spot how the gcc default arch 'armv6kz+fp' is determined for the rpi zero case in buildroot (or is it some gcc built-in magic? If so a new buildroot parameter is needed?), so used simple armv4, armv5, armv6, armv7-a, armv7-m and armv8-a for the arm.gni-/gcc-march-value. - not yet run-time tested (the rpi zero compile is still running) --- package/qt5/qt5webengine/qt5webengine.mk | 78 ++++++++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/package/qt5/qt5webengine/qt5webengine.mk b/package/qt5/qt5webengine/qt5webengine.mk index 898725937b..f4ecf6ca3c 100644 --- a/package/qt5/qt5webengine/qt5webengine.mk +++ b/package/qt5/qt5webengine/qt5webengine.mk @@ -63,7 +63,85 @@ QT5WEBENGINE_PRE_CONFIGURE_HOOKS += QT5WEBENGINE_CREATE_HOST_PKG_CONFIG QT5WEBENGINE_ENV += GN_PKG_CONFIG_HOST=$(@D)/host-bin/host-pkg-config endif +# configure arm architecture paramter for chromium compile +ifeq ($(BR2_arm),y) +ifeq ($(BR2_ARM_CPU_ARMV4),y) +define QT5WEBENGINE_CONFIGURE_ARM_CPU + $(SED) 's/^ arm_version = 7$$/ arm_version = 4/' $(@D)/src/3rdparty/chromium/build/config/arm.gni + $(SED) 's/^ arm_arch = ""$$/ arm_arch = "armv4"/' $(@D)/src/3rdparty/chromium/build/config/arm.gni +endef +endif + +ifeq ($(BR2_ARM_CPU_ARMV5),y) +define QT5WEBENGINE_CONFIGURE_ARM_CPU + $(SED) 's/^ arm_version = 7$$/ arm_version = 5/' $(@D)/src/3rdparty/chromium/build/config/arm.gni + $(SED) 's/^ arm_arch = ""$$/ arm_arch = "armv5"/' $(@D)/src/3rdparty/chromium/build/config/arm.gni +endef +endif + +ifeq ($(BR2_ARM_CPU_ARMV6),y) +define QT5WEBENGINE_CONFIGURE_ARM_CPU + $(SED) 's/^ arm_version = 7$$/ arm_version = 6/' $(@D)/src/3rdparty/chromium/build/config/arm.gni + $(SED) 's/^ arm_arch = ""$$/ arm_arch = "armv6"/' $(@D)/src/3rdparty/chromium/build/config/arm.gni +endef +endif + +ifeq ($(BR2_ARM_CPU_ARMV7A),y) +define QT5WEBENGINE_CONFIGURE_ARM_CPU + $(SED) 's/^ arm_arch = ""$$/ arm_arch = "armv7-a"/' $(@D)/src/3rdparty/chromium/build/config/arm.gni +endef +endif + +ifeq ($(BR2_ARM_CPU_ARMV7M),y) +define QT5WEBENGINE_CONFIGURE_ARM_CPU + $(SED) 's/^ arm_arch = ""$$/ arm_arch = "armv7-m"/' $(@D)/src/3rdparty/chromium/build/config/arm.gni +endef +endif + +ifeq ($(BR2_ARM_CPU_ARMV8A),y) +define QT5WEBENGINE_CONFIGURE_ARM_CPU + $(SED) 's/^ arm_version = 7$$/ arm_version = 8/' $(@D)/src/3rdparty/chromium/build/config/arm.gni + $(SED) 's/^ arm_arch = ""$$/ arm_arch = "armv8-a"/' $(@D)/src/3rdparty/chromium/build/config/arm.gni +endef +endif + +define QT5WEBENGINE_CONFIGURE_ARM_FPU + $(SED) 's/^ arm_fpu = ""$$/ arm_fpu = $(BR2_GCC_TARGET_FPU)/' $(@D)/src/3rdparty/chromium/build/config/arm.gni +endef + +define QT5WEBENGINE_CONFIGURE_ARM_FLOAT_ABI + $(SED) 's/^ arm_float_abi = ""$$/ arm_float_abi = $(BR2_GCC_TARGET_FLOAT_ABI)/' $(@D)/src/3rdparty/chromium/build/config/arm.gni +endef + +define QT5WEBENGINE_CONFIGURE_ARM_TUNE + $(SED) 's/^ arm_tune = ""$$/ arm_tune = $(BR2_GCC_TARGET_CPU)/' $(@D)/src/3rdparty/chromium/build/config/arm.gni +endef + +ifeq ($(BR2_ARM_CPU_HAS_NEON),y) +define QT5WEBENGINE_CONFIGURE_ARM_NEON + $(SED) 's/^ arm_use_neon = ""$$/ arm_use_neon = "true"/' $(@D)/src/3rdparty/chromium/build/config/arm.gni + $(SED) 's/^ arm_optionally_use_neon = false$$/ arm_optionally_use_neon = true/' $(@D)/src/3rdparty/chromium/build/config/arm.gni +endef +else +define QT5WEBENGINE_CONFIGURE_ARM_NEON + $(SED) 's/^ arm_use_neon = ""$$/ arm_use_neon = "false"/' $(@D)/src/3rdparty/chromium/build/config/arm.gni +endef +endif + +ifeq ($(BR2_ARM_CPU_HAS_THUMB),) +define QT5WEBENGINE_CONFIGURE_ARM_THUMB + $(SED) 's/^ arm_use_thumb = true$$/ arm_use_thumb = false/' $(@D)/src/3rdparty/chromium/build/config/arm.gni +endef +endif +endif + define QT5WEBENGINE_CONFIGURE_CMDS + $(QT5WEBENGINE_CONFIGURE_ARM_CPU) + $(QT5WEBENGINE_CONFIGURE_ARM_FPU) + $(QT5WEBENGINE_CONFIGURE_ARM_FLOAT_ABI) + $(QT5WEBENGINE_CONFIGURE_ARM_TUNE) + $(QT5WEBENGINE_CONFIGURE_ARM_NEON) + $(QT5WEBENGINE_CONFIGURE_ARM_THUMB) (cd $(@D); $(TARGET_MAKE_ENV) $(QT5WEBENGINE_ENV) $(HOST_DIR)/bin/qmake $(QT5WEBENGINE_QMAKEFLAGS)) endef