lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aAKrq2InExQk7f_k@dell-precision-5540>
Date: Fri, 18 Apr 2025 15:44:43 -0400
From: Ben Wolsieffer <ben.wolsieffer@...ring.com>
To: Miguel Ojeda <miguel.ojeda.sandonis@...il.com>
Cc: Naresh Kamboju <naresh.kamboju@...aro.org>,
	Miguel Ojeda <ojeda@...nel.org>,
	Christian Schrrefl <chrisi.schrefl@...il.com>,
	Russell King <rmk+kernel@...linux.org.uk>,
	Rudraksha Gupta <guptarud@...il.com>,
	Alice Ryhl <aliceryhl@...gle.com>, Ard Biesheuvel <ardb@...nel.org>,
	anders.roxell@...aro.org, arnd@...db.de, dan.carpenter@...aro.org,
	laura.nao@...labora.com, linux-kernel@...r.kernel.org,
	lkft-triage@...ts.linaro.org, regressions@...ts.linux.dev,
	rust-for-linux@...r.kernel.org, torvalds@...ux-foundation.org,
	Nick Clifton <nickc@...hat.com>,
	Richard Earnshaw <richard.earnshaw@....com>,
	Ramana Radhakrishnan <ramanara@...dia.com>
Subject: Re: Build: arm rustgcc unknown argument '-mno-fdpic'

On Tue, Apr 15, 2025 at 05:38:54PM +0200, Miguel Ojeda wrote:
> On Tue, Apr 15, 2025 at 1:40 PM Naresh Kamboju
> <naresh.kamboju@...aro.org> wrote:
> >
> > On Tue, 8 Apr 2025 at 00:07, Miguel Ojeda <ojeda@...nel.org> wrote:
> > >
> > > On Mon, 07 Apr 2025 22:58:02 +0530 Naresh Kamboju <naresh.kamboju@...aro.org> wrote:
> > > >
> > > > Regressions on arm build with config rustgcc-lkftconfig-kselftest on the
> > > > Linux mainline and next failed with CONFIG_RUST=y enabled.
> > >
> > > > Bad: next-20250327
> > > > Good: next-20250326
> > >
> > > > Unable to generate bindings: clang diagnosed error: error: unknown
> > > > argument: '-mno-fdpic'
> > >
> > > I assume this is the arm support, i.e. commit ccb8ce526807 ("ARM: 9441/1:
> > > rust: Enable Rust support for ARMv7").
> > >
> > > Clang does not seem to support `-mno-fdpic`, thus you probably need to add it to
> > > `bindgen_skip_c_flags` in `rust/Makefile` so that it gets skipped when the C
> > > compiler is GCC.
> > >
> > > If you do so, please double-check if the flag could potentially alter the ABI in
> > > a way that `bindgen` would generate the wrong bindings.
> >
> > I tested this idea and it works but I don't know enough about
> > rust to double-check if the flag could potentially alter the
> > ABI in a way that `bindgen` would generate the wrong bindings.
> 
> Yeah, it would be nice to have someone knowledgeable about the
> arch/GCC/flag confirm or not -- I don't think Rust knowledge is
> needed, i.e. it is mostly about how GCC behaves with/without the flag
> and vs. Clang (since `bindgen` uses libclang to parse code).
> 
> The original commit adding it to arm (and similar ones for sh and xtensa) says:
> 
>     When building with an arm-*-uclinuxfdpiceabi toolchain, the FDPIC ABI is
>     enabled by default but should not be used to build the kernel.
> 
> So it sounds like it is only an issue for particular toolchains/targets anyway?
> 
> Cc'ing Ben who introduced it, and the arm port GCC maintainers in case
> they may be able to tell us more -- thanks in advance, and sorry for
> any potential noise!

FDPIC is only relevant with no-MMU targets, and then only for userspace.
When configured for the arm-*-uclinuxfdpiceabi target, GCC enables FDPIC
by default to facilitate compiling userspace programs. FDPIC is never
used for the kernel, and we pass -mno-fdpic when building the kernel to
override the default and make sure FDPIC is disabled.

Therefore, it is perfectly safe to omit that flag for kernel builds with
Clang.

Ben

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ