[PATCH] Allow CC_EXTRA_CONFIG_ARRAY on baremetal
Yann E. MORIN
yann.morin.1998@free.fr
Sun May 11 12:39:00 GMT 2014
Cody, All,
On 2014-05-11 13:07 +0200, Yann E. MORIN spake thusly:
> On 2014-05-09 19:14 -0700, Cody Schafer spake thusly:
> > # HG changeset patch
> > # User Cody Schafer <dev@codyps.com>
> > # Date 1399688029 25200
> > # Fri May 09 19:13:49 2014 -0700
> > # Node ID 22181e546ba746202489cda96887be0356be19c1
> > # Parent 2cc5b5a97e93a0f28a5801b3da34dc00aea74bba
> > Allow CC_EXTRA_CONFIG_ARRAY on baremetal
> >
> > diff --git a/config/cc/gcc.in.2 b/config/cc/gcc.in.2
> > --- a/config/cc/gcc.in.2
> > +++ b/config/cc/gcc.in.2
> > @@ -29,7 +29,6 @@
> > string
> > prompt "gcc extra config"
> > default ""
> > - depends on ! BARE_METAL
> > help
> > Extra flags to pass onto ./configure when configuring gcc.
>
> Although I understand the idea behind this change, I'm afraid it will
> not do what you expect it to do.
>
> The bare-metal compiler is built using the core backend, not the final
> backend. Thus it uses the CC_CORE_EXTRA_CONFIG_ARRAY variable.
>
> Setting the CC_EXTRA_CONFIG_ARRAY variable will thus havve no impact on
> the bare-metal compiler.
>
> I'll see what we can do, but it will be a bit more involved than just
> enabling this variable in the menuconfig.
What about this?
diff --git a/config/cc/gcc.in.2 b/config/cc/gcc.in.2
--- a/config/cc/gcc.in.2
+++ b/config/cc/gcc.in.2
@@ -15,6 +15,7 @@
string
prompt "Core gcc extra config"
default ""
+ depends on CC_CORE_PASS_1_NEEDED || CC_CORE_PASS_2_NEEDED
help
Extra flags to pass onto ./configure when configuring the core gcc.
@@ -29,7 +30,6 @@
string
prompt "gcc extra config"
default ""
- depends on ! BARE_METAL
help
Extra flags to pass onto ./configure when configuring gcc.
diff --git a/scripts/build/cc/gcc.sh b/scripts/build/cc/gcc.sh
--- a/scripts/build/cc/gcc.sh
+++ b/scripts/build/cc/gcc.sh
@@ -188,6 +188,7 @@
local -a extra_config
local -a core_LDFLAGS
local -a core_targets
+ local -a extra_user_config
local arg
for arg in "$@"; do
@@ -201,17 +202,20 @@
extra_config+=("--with-newlib")
extra_config+=("--enable-threads=no")
extra_config+=("--disable-shared")
+ extra_user_config=( "${CT_CC_CORE_EXTRA_CONFIG_ARRAY[@]}" )
copy_headers=y # For baremetal, as there's no headers to copy,
# we copy an empty directory. So, who
# cares?
;;
shared)
extra_config+=("--enable-shared")
+ extra_user_config=( "${CT_CC_CORE_EXTRA_CONFIG_ARRAY[@]}" )
copy_headers=y
;;
baremetal)
extra_config+=("--with-newlib")
extra_config+=("--enable-threads=no")
extra_config+=("--disable-shared")
+ extra_user_config=( "${CT_CC_EXTRA_CONFIG_ARRAY[@]}" )
copy_headers=n
;;
*)
@@ -391,7 +395,7 @@
${CC_CORE_SYSROOT_ARG} \
"${extra_config[@]}" \
--enable-languages="${lang_list}" \
- "${CT_CC_CORE_EXTRA_CONFIG_ARRAY[@]}"
+ "${extra_user_config[@]}"
if [ "${build_libgcc}" = "yes" ]; then
# HACK: we need to override SHLIB_LC from
# gcc/config/t-slibgcc-elf-ver or
It seems to be doing what you expected, right?
Regards,
Yann e. MORIN.
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
--
For unsubscribe information see http://sourceware.org/lists.html#faq
More information about the crossgcc
mailing list