[Buildroot] [PATCH 2/5] toolchain/external: fix wrapper by not passing conflicting flags
Peter Korsgaard
jacmet at uclibc.org
Thu Jan 9 20:28:49 UTC 2014
>>>>> "Yann" == Yann E MORIN <yann.morin.1998 at free.fr> writes:
> From: "Yann E. MORIN" <yann.morin.1998 at free.fr>
> In our wrapper, we forcibly add the -march=, -mcpu= and-mtune= flags
> to the actual copmpiler, this in an attempt to always generate correct
> and optimised code for the target.
> But in some cases, the caller knows better than we do, and passes its
> own set, or subset of those flags. In this case, some may conflict with
> the ones we pass. The most prominent offender being the Linux kernel.
> For example, on the ARM Rapsberry Pi, the Linux kernel will set the
> -march=armv6 flag and no -mcpu= flag, but we pass -mcpu=arm1176jzf-s,
> which conflicts:
> drivers/scsi/scsi_trace.c:1:0: warning: switch -mcpu=arm1176jzf-s
> conflicts with -march=armv6 switch
> (and so for all the files the kernel compiles, pretty messy)
> (note: arm1176jzf-s is not an armv6, it is an armv6zk. Yeah...)
> To avoid this situation, we scan our commandline for any occurence of
> the possibly conflicting flags. If none is found, then we add our owns.
> If any is found, then we don't add any of our owns.
> The idea behind this is that we trust the caller to know better than
> we do what it is doing. Since the biggest, and sole so far, offender
> is the Linux kernel, then this is a rather safe bet.
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
> Cc: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
> Cc: Peter Korsgaard <jacmet at uclibc.org>
> Cc: Arnout Vandecappelle <arnout at mind.be>
> Cc: Maxime Hadjinlian <maxime.hadjinlian at gmail.com>
Committed, thanks.
--
Bye, Peter Korsgaard
More information about the buildroot
mailing list