From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Thu, 12 Dec 2024 13:01:57 +0100 Received: from metis.whiteo.stw.pengutronix.de ([2a0a:edc0:2:b01:1d::104]) by lore.white.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1tLhtE-007Aoq-1d for lore@lore.pengutronix.de; Thu, 12 Dec 2024 13:01:57 +0100 Received: from localhost ([127.0.0.1] helo=metis.whiteo.stw.pengutronix.de) by metis.whiteo.stw.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1tLhtE-0002Vr-Mq; Thu, 12 Dec 2024 13:01:56 +0100 Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.whiteo.stw.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1tLhsz-0002V2-Hm for ptxdist@pengutronix.de; Thu, 12 Dec 2024 13:01:41 +0100 Received: from pty.whiteo.stw.pengutronix.de ([2a0a:edc0:2:b01:1d::c5]) by drehscheibe.grey.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1tLhsy-0031et-1v for ptxdist@pengutronix.de; Thu, 12 Dec 2024 13:01:41 +0100 Received: from mol by pty.whiteo.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1tLhsz-00CPTn-0v for ptxdist@pengutronix.de; Thu, 12 Dec 2024 13:01:41 +0100 Date: Thu, 12 Dec 2024 13:01:41 +0100 From: Michael Olbrich To: ptxdist@pengutronix.de Message-ID: Mail-Followup-To: ptxdist@pengutronix.de References: <20241210-pesticide-garnet-ef57e562fa17@thorsis.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20241210-pesticide-garnet-ef57e562fa17@thorsis.com> X-Sent-From: Pengutronix Hildesheim X-URL: http://www.pengutronix.de/ X-Accept-Language: de,en X-Accept-Content-Type: text/plain X-IRC: #ptxdist @freenode Subject: Re: [ptxdist] libgmp cflags X-BeenThere: ptxdist@pengutronix.de X-Mailman-Version: 2.1.29 Precedence: list List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Sender: "ptxdist" X-SA-Exim-Connect-IP: 127.0.0.1 X-SA-Exim-Mail-From: ptxdist-bounces@pengutronix.de X-SA-Exim-Scanned: No (on metis.whiteo.stw.pengutronix.de); SAEximRunCond expanded to false Hi, On Tue, Dec 10, 2024 at 05:11:59PM +0100, Alexander Dahl wrote: > I'm using nftables and on an armv5te target (microchip at91 sam9x60) > the command `nft list ruleset` crashes with 'illegal instruction'. > > BSP is on ptxdist-2024.05.0 with the latest libgmp 6.3 backported from > master. Toolchain is precompiled > OSELAS.Toolchain-2023.07.1/arm-v5te-linux-gnueabi from > debian.pengutronix.de, so overall nothing special. > > `ptxdist prepare libgmp` gives this (somewhere in between): > > using ABI="32" > CC="arm-v5te-linux-gnueabi-gcc" > CFLAGS="-O2 -pedantic -fomit-frame-pointer -march=armv4 -mfloat-abi=softfp" > CPPFLAGS="" > MPN_PATH=" arm generic" > > After staring at configure.ac and configure I guess they try to be > smart here, but do not detect the actual arch. > > Analzing the coredump with cgdb suggests it fails in __gmp_doprnt() > shows this: > > 1│ Dump of assembler code for function __gmp_doprnt: > 2│ 0xb6d69840 <+0>: push {r4, r5, r6, r7, r8, r9, r10, r11, lr} > 3├──> 0xb6d69844 <+4>: vpush {d8} > 4│ 0xb6d69848 <+8>: sub sp, sp, #132 @ 0x84 > > That instruction seems to be some VFP related ARM floating point thing? > > I tried adding this to rules/libgmp.make: > > LIBGMP_CONF_ENV := \ > CFLAGS='-O2 -pedantic -g' > > This gives almost the same output of prepare, but with "my" cflags > only, so without -march or -mfloat-abi and then nft does not crash > anymore. > > I could use that as a workaround, but it seems to circumvent libgmp > arch detection entirely, and so I'm not sure if that's the correct way > here? > > btw, you can see libgmp autoconf is not so super smart, because this is the > output of `ptxdist prepare libgmp` on v7a target: > > using ABI="32" > CC="arm-v7a-linux-gnueabihf-gcc" > CFLAGS="-O2 -pedantic -fomit-frame-pointer -march=armv4 -mfloat-abi=hard" > CPPFLAGS="" > MPN_PATH=" arm generic" > > So it's still -march=armv4 here. But is that really necessary with > the cross compiler at all? Wow that detection is really confusing. And I'm not seeing anything there that should be added to the CFLAGS. And somewhere in there I find: "Any user CFLAGS, even an empty string, takes precedence". So setting the CFLAGS works by design and I think it's the correct fix. But please add a comment why this is necessary. Michael -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |