[OE-core] [PATCH 3/3] uclibc.inc: avoid immediate expansion for UCLIBC_EXTRA_CFLAGS

Richard Purdie richard.purdie at linuxfoundation.org
Fri Aug 7 10:56:16 UTC 2015


On Thu, 2015-08-06 at 18:14 -0700, Andre McCurdy wrote:
> On Thu, Aug 6, 2015 at 4:02 PM, Richard Purdie
> <richard.purdie at linuxfoundation.org> wrote:
> > On Thu, 2015-08-06 at 12:41 -0700, Andre McCurdy wrote:
> >> If immediate variable expansion is used, then UCLIBC_EXTRA_CFLAGS can
> >> sometimes be derived from a partially expanded value of CFLAGS.
> >>
> >> One specific problem case occurs when security_flags.inc is used: CFLAGS
> >> is evaluated before the SECURITY_CFLAGS_pn-uclibc over-ride has been
> >> applied and therefore UCLIBC_EXTRA_CFLAGS ends up being based on the
> >> default SECURITY_CFLAGS instead of the uclibc specific value.
> >>
> >> Signed-off-by: Andre McCurdy <armccurdy at gmail.com>
> >> ---
> >>  meta/recipes-core/uclibc/uclibc.inc | 4 ++--
> >>  1 file changed, 2 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/meta/recipes-core/uclibc/uclibc.inc b/meta/recipes-core/uclibc/uclibc.inc
> >> index c483228..3ed8b60 100644
> >> --- a/meta/recipes-core/uclibc/uclibc.inc
> >> +++ b/meta/recipes-core/uclibc/uclibc.inc
> >> @@ -57,8 +57,8 @@ export V="2"
> >>  # -O<n> -fno-omit-frame-pointer ends up with GCC ICE on thumb as reported
> >>  # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44860
> >>  #
> >> -CFLAGS_arm := "${@oe_filter_out('-fno-omit-frame-pointer', '${CFLAGS}', d)}"
> >> -UCLIBC_EXTRA_CFLAGS  := "${@oe_filter_out('(-I\S+|-i\S+)', '${CFLAGS}', d)}"
> >> +CFLAGS_arm = "${@oe_filter_out('-fno-omit-frame-pointer', '${CFLAGS}', d)}"
> >
> > I'm rather surprised we don't get circular references without the :=
> > operator with this. I suspect we can see build failures if you change
> > the code like this. That said, I've been meaning to go through and
> > replace all the uses of oe_filter_out with the remove operator. Can we
> > do that here please instead?
> >
> > E.g:
> > CFLAGS_remove_arm = "-fno-omit-frame-pointer"
> 
> OK, new patch on the way.
> 
> >> +UCLIBC_EXTRA_CFLAGS = "${@oe_filter_out('(-I\S+|-i\S+)', '${CFLAGS}', d)}"
> 
> Is it OK to keep using oe_filter_out() here to support the regex?

Yes, the regex is obviously trickier with _remove so I think that one is
a fair use of oe_filter_out(). Thanks for the updated patches, just need
to answer Khem's question, it sounds like LDFLAGS may be used somehow
but I've not looked at the code as yet.

Cheers,

Richard




More information about the Openembedded-core mailing list