All of lore.kernel.org
 help / color / mirror / Atom feed
From: dave.martin@linaro.org (Dave Martin)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH 1/3] ARM: iwmmxt: Fix Makefile rules for building iwmmxt for Thumb-2
Date: Thu, 8 Sep 2011 09:53:40 +0100	[thread overview]
Message-ID: <20110908085340.GA2070@arm.com> (raw)
In-Reply-To: <1372213.9xxOYOJ3Ii@wuerfel>

On Wed, Sep 07, 2011 at 10:32:09PM +0200, Arnd Bergmann wrote:
> On Wednesday 07 September 2011 13:18:21 Nicolas Pitre wrote:
> > > > +
> > > > +# When enough people have binutils which support -march=...+iwmmxt, this
> > > > +# should change to something like if __LINUX_ARM_ARCH__ < 7.
> > > > +ifdef CONFIG_THUMB2_KERNEL
> > > > +AFLAGS_iwmmxt.o                        := -Wa,-march=armv7-a+iwmmxt
> > > > +else
> > > >  AFLAGS_iwmmxt.o                        := -Wa,-mcpu=iwmmxt
> > > > +endif
> > > 
> > > It looks more like the switch should depend on the compiler version.
> > > Unless there is a clear way to decide if gcc supports this switch, I
> > > think it's reasonable to have the change like above.
> > 
> > Normally the way to go with gcc version dependent alternatives is to use 
> > something like:
> > 
> > AFLAGS_foo.o := $(call cc-option,<the_new_flag>,<the_fallback_flag>)
> > 
> > This will test if <the_new_flag> is supported by the used gcc, and use 
> > the fallback otherwise.
> 
> Yes, that's possible here, but it's not actually correct either, because the
> CPU core that we are running on is either a v5 XScale with iwmmxt or
> a v7 pj4 with iwmmxt. Now, it should not really matter if we build the
> code with flags for a different more complex instruction set, but it can
> potentially hide bugs.
> 
> I think the simple solution that Dave posted is actually more appropriate.
> The three possible cases are:
> 
> v5+iwmmxt: always use -Wa,-mcpu=iwmmxt as we've always done, and it's correct
> v7+iwmmxt+arm: still use -Wa,-mcpu=iwmmxt, not correct but close enough and
>                is known to build the file with all existing toolchaings
> v7+iwmmxt+thumb2: always use -Wa,-march=armv7-a+iwmmxt, which is correct and
> 		      the only possible way to build this file anyway. Old toolchains
> 		      will fail and there is nothing we can do about it.

There is another option, which is to use cc-option and then check the
result in AFLAGS_iwmmxt.o, throwing an error from the Makefile as
necessary.

I'll have a go at that if nobody has any objections.

There doesn't seem to be any cleaner way to catch this error -- compiler
version issues are invisible to Kconfig.

Cheers
---Dave

  reply	other threads:[~2011-09-08  8:53 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-07 15:59 [RFC PATCH 0/3] ARM: iwmmxt/pj4 fixes for v7/Thumb-2 Dave Martin
2011-09-07 15:59 ` [RFC PATCH 1/3] ARM: iwmmxt: Fix Makefile rules for building iwmmxt for Thumb-2 Dave Martin
2011-09-07 16:10   ` Eric Miao
2011-09-07 17:18     ` Nicolas Pitre
2011-09-07 20:32       ` Arnd Bergmann
2011-09-08  8:53         ` Dave Martin [this message]
2011-09-07 15:59 ` [RFC PATCH 2/3] ARM: iwmmxt: Port problematic iwmmxt support code to v7/Thumb-2 Dave Martin
2011-09-07 16:13   ` Eric Miao
2011-09-07 20:35     ` Arnd Bergmann
2011-09-08  8:58       ` Dave Martin
2011-09-08  9:01         ` Russell King - ARM Linux
2011-09-08 11:33           ` Dave Martin
2011-09-08 14:40             ` Arnd Bergmann
2011-09-07 15:59 ` [RFC PATCH 3/3] ARM: pxa/pj4: Port problematic pj4 " Dave Martin
2011-09-07 16:18   ` Eric Miao
2011-09-07 20:27     ` Arnd Bergmann
2011-09-08  8:58       ` Haojian Zhuang
2011-09-08 11:10   ` Sergei Shtylyov
2011-09-08 11:35     ` Dave Martin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20110908085340.GA2070@arm.com \
    --to=dave.martin@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.