* [U-Boot] [PATCH] Coldire: mcf52x2: Improve gcc version detection
@ 2009-03-19 14:32 Richard Retanubun
2009-03-19 21:14 ` Wolfgang Denk
0 siblings, 1 reply; 4+ messages in thread
From: Richard Retanubun @ 2009-03-19 14:32 UTC (permalink / raw)
To: u-boot
From 2cfa4b5789a6c01f6120663cc36ca751e2e5d172 Mon Sep 17 00:00:00 2001
From: Richard Retanubun <RichardRetanubun@RuggedCom.com>
Date: Wed, 18 Mar 2009 17:12:47 -0400
Subject: [PATCH] Improved gcc version detection for more optimized code.
This patch makes the gcc version detection more flexible.
gcc 4.2+ supports -mcpu option, which allows more optimized code.
Without this patch, building on gcc 4.3.3 breaks on:
start.S:144: Error: operands mismatch -- statement `movec %d0,%RAMBAR1' ignored
Author: Len Sorensen <lsorense@csclub.uwaterloo.ca>
---
Hi TC,
Incidentally, I am also trying to move to gcc 4.3.x (4.3.3), and just saw your
patch. Len Sorensen from my team suggested this detection scheme, similar to how
linux does it, I think. (this way you will still be ok if someone still uses gcc-4.0)
I don't have enough coldfire variants to test, so I can't testify to all of them,
but the MCF5270/1 compiles ok.
- Richard
cpu/mcf52x2/config.mk | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/cpu/mcf52x2/config.mk b/cpu/mcf52x2/config.mk
index 8292736..c4726af 100644
--- a/cpu/mcf52x2/config.mk
+++ b/cpu/mcf52x2/config.mk
@@ -33,9 +33,11 @@ is5272:=$(shell grep CONFIG_M5272 $(TOPDIR)/include/$(cfg))
is5275:=$(shell grep CONFIG_M5275 $(TOPDIR)/include/$(cfg))
is5282:=$(shell grep CONFIG_M5282 $(TOPDIR)/include/$(cfg))
+# If gcc 4.2 or greater use -mcpu= otherwise use -m5307 on gcc 4.1 and older
+GCC_SUPPORTS_MCPU = $(shell if [ `echo __GNUC__ __GNUC_MINOR__ | $(CC) -E -xc - \
+ | tail -n 1 | sed -e 's/ /0/'` -gt 401 ];then echo yes; else echo no; fi)
-ifneq ($(findstring 4.1,$(shell $(CC) --version)),4.1)
-
+ifeq ($(GCC_SUPPORTS_MCPU),yes)
ifneq (,$(findstring CONFIG_M5249,$(is5249)))
PLATFORM_CPPFLAGS += -mcpu=5249
endif
--
1.5.6.5
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [U-Boot] [PATCH] Coldire: mcf52x2: Improve gcc version detection
2009-03-19 14:32 [U-Boot] [PATCH] Coldire: mcf52x2: Improve gcc version detection Richard Retanubun
@ 2009-03-19 21:14 ` Wolfgang Denk
2009-03-20 13:27 ` Richard Retanubun
0 siblings, 1 reply; 4+ messages in thread
From: Wolfgang Denk @ 2009-03-19 21:14 UTC (permalink / raw)
To: u-boot
Dear Richard Retanubun,
In message <49C25764.8010804@RuggedCom.com> you wrote:
>
> --- a/cpu/mcf52x2/config.mk
> +++ b/cpu/mcf52x2/config.mk
> @@ -33,9 +33,11 @@ is5272:=$(shell grep CONFIG_M5272 $(TOPDIR)/include/$(cfg))
> is5275:=$(shell grep CONFIG_M5275 $(TOPDIR)/include/$(cfg))
> is5282:=$(shell grep CONFIG_M5282 $(TOPDIR)/include/$(cfg))
>
> +# If gcc 4.2 or greater use -mcpu= otherwise use -m5307 on gcc 4.1 and older
> +GCC_SUPPORTS_MCPU = $(shell if [ `echo __GNUC__ __GNUC_MINOR__ | $(CC) -E -xc - \
> + | tail -n 1 | sed -e 's/ /0/'` -gt 401 ];then echo yes; else echo no; fi)
>
> -ifneq ($(findstring 4.1,$(shell $(CC) --version)),4.1)
> -
> +ifeq ($(GCC_SUPPORTS_MCPU),yes)
> ifneq (,$(findstring CONFIG_M5249,$(is5249)))
> PLATFORM_CPPFLAGS += -mcpu=5249
> endif
What makes you think that
echo __GNUC__ __GNUC_MINOR__ | $(CC) -E -xc - \
| tail -n 1 | sed -e 's/ /0/'
would be any better than parsing the output of "$(CC) --version"?
The fact that it takes 4 processes instead of one (or say two if we
add the filtering) is not a recommendation.
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"Most people would like to be delivered from temptation but would
like it to keep in touch." - Robert Orben
^ permalink raw reply [flat|nested] 4+ messages in thread
* [U-Boot] [PATCH] Coldire: mcf52x2: Improve gcc version detection
2009-03-19 21:14 ` Wolfgang Denk
@ 2009-03-20 13:27 ` Richard Retanubun
2009-03-20 13:44 ` Wolfgang Denk
0 siblings, 1 reply; 4+ messages in thread
From: Richard Retanubun @ 2009-03-20 13:27 UTC (permalink / raw)
To: u-boot
Hi Wolfgang,
> What makes you think that
>
> echo __GNUC__ __GNUC_MINOR__ | $(CC) -E -xc - \
> | tail -n 1 | sed -e 's/ /0/'
>
> would be any better than parsing the output of "$(CC) --version"?
>
> The fact that it takes 4 processes instead of one (or say two if we
> add the filtering) is not a recommendation.
>
Thanks for the comments,
sorry if I'm (re)stating the obvious, but just to be clear:
ifneq ($(findstring 4.1,$(shell $(CC) --version)),4.1)
while simple, will cause gcc-4.0.x or gcc-3.x.x to try to use the -mcpu option
which is not supported yet until gcc-4.2.+ (if I am not mistaken).
I realize the world is always moving forward and this is an increasingly moot argument,
but the embedded world is often very attached to our toolchains :P
I am sure there are many better ways of extracting the version string, my attempt is to
highlight one way that converts the version to a number and use the '-gt' to compare on it.
Feel free to educate me in 'the better way', my user-space kung-fu is not that strong yet :)
Regards,
- Richard Retanubun
^ permalink raw reply [flat|nested] 4+ messages in thread
* [U-Boot] [PATCH] Coldire: mcf52x2: Improve gcc version detection
2009-03-20 13:27 ` Richard Retanubun
@ 2009-03-20 13:44 ` Wolfgang Denk
0 siblings, 0 replies; 4+ messages in thread
From: Wolfgang Denk @ 2009-03-20 13:44 UTC (permalink / raw)
To: u-boot
Dear Richard Retanubun,
In message <49C399AA.2030107@RuggedCom.com> you wrote:
>
> > echo __GNUC__ __GNUC_MINOR__ | $(CC) -E -xc - \
> > | tail -n 1 | sed -e 's/ /0/'
> >
> > would be any better than parsing the output of "$(CC) --version"?
> >
> > The fact that it takes 4 processes instead of one (or say two if we
> > add the filtering) is not a recommendation.
>
> sorry if I'm (re)stating the obvious, but just to be clear:
>
> ifneq ($(findstring 4.1,$(shell $(CC) --version)),4.1)
>
> while simple, will cause gcc-4.0.x or gcc-3.x.x to try to use the -mcpu option
> which is not supported yet until gcc-4.2.+ (if I am not mistaken).
Well, when I say "parsing the output" I had a little more intelligent
testing in ming than a fixed string compare and decision between 4.1
or anything else.
> I am sure there are many better ways of extracting the version string, my attempt is to
> highlight one way that converts the version to a number and use the '-gt' to compare on it.
You get the number for free from "gcc -v".
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"You can have my Unix system when you pry it from my cold, dead
fingers." - Cal Keegan
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2009-03-20 13:44 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-19 14:32 [U-Boot] [PATCH] Coldire: mcf52x2: Improve gcc version detection Richard Retanubun
2009-03-19 21:14 ` Wolfgang Denk
2009-03-20 13:27 ` Richard Retanubun
2009-03-20 13:44 ` Wolfgang Denk
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.