Re: [PATCH v2 4/5] powerpc/kbuild: Use flags variables rather than overriding LD/CC/AS

Nicholas Piggin
2018-05-10T13:11:49Z

On Thu, 10 May 2018 23:03:08 +1000
Michael Ellerman <mpe@ellerman.id.au> wrote:

> Nicholas Piggin <npiggin@gmail.com> writes:
>
> > The powerpc toolchain can compile combinations of 32/64 bit and
> > big/little endian, so it's convenient to consider, e.g.,
> >
> > `CC -m64 -mbig-endian`
> >
> > To be the C compiler for the purpose of invoking it to build target
> > artifacts. So overriding the the CC variable to include thse flags
> > works for this purpose.
> >
> > Unfortunately that is not compatible with the way the proposed new
> > Kconfig macro language will work.
> >
> > After previous patches in this series, these flags can be carefully
> > passed in using flags instead.
> >
> > Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
> > ---
> > arch/powerpc/Makefile | 16 +++++++++-------
> > scripts/recordmcount.pl | 8 ++++++++
>
> We should probably at least Cc Rostedt on the recordmcount.pl change.

Sure I'll send another iteration after some more time for reviews and
cc him on it.

>
> > diff --git a/scripts/recordmcount.pl b/scripts/recordmcount.pl
> > index 191eb949d52c..919711dd9d6c 100755
> > --- a/scripts/recordmcount.pl
> > +++ b/scripts/recordmcount.pl
> > @@ -274,6 +274,14 @@ if ($arch eq "x86_64") {
>
> Despite what the above says you're patching the powerpc entry AFAICS, so
> I guess that's pretty harmless.

Yeah I didn't think it was worth a separate patch.

>
> > if ($bits == 64) {
> > $type = ".quad";
> > }
> > + $ld .= " -EB ";
> > + if ($endian eq "big") {
> > + $cc .= " -mbig-endian ";
> > + $ld .= " -EB ";
>
> Don't we end up with two "-EB"s for the big endian case?
>
> Or do I understand perl even less than I thought I did?

No I was testing things and that's leaked into the commit. Good eye. I
think it worked for le because the next -EL will override the first -EB,
but I'll take that out.

Thanks,
Nick