[PATCH] Allow CC_EXTRA_CONFIG_ARRAY on baremetal
Cody P Schafer
dev@codyps.com
Sun May 11 20:42:00 GMT 2014
Yep, that looks like that is actually what I was looking for.
On Sun, May 11, 2014 at 5:39 AM, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> 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