[PATCH 2/5] libc/musl: Add options for optimization
Yann E. MORIN
yann.morin.1998@free.fr
Thu Sep 4 21:24:00 GMT 2014
Bryan, All,
On 2014-09-04 13:56 -0700, Bryan Hundven spake thusly:
> This commit adds configuration knobs for optimizing musl-libc.
>
> Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
> ---
> config/libc/musl.in.2 | 32 ++++++++++++++++++++++++++++++++
> scripts/build/libc/musl.sh | 14 +++++++++++++-
> 2 files changed, 45 insertions(+), 1 deletion(-)
> create mode 100644 config/libc/musl.in.2
>
> diff --git a/config/libc/musl.in.2 b/config/libc/musl.in.2
> new file mode 100644
> index 0000000..42f45e1
> --- /dev/null
> +++ b/config/libc/musl.in.2
> @@ -0,0 +1,32 @@
> +# musl second-part option
> +
> +choice
> + prompt "How to optimize musl-libc"
> + default LIBC_MUSL_OPTIMIZE_AUTO
> +
> +config LIBC_MUSL_OPTIMIZE_NONE
> + bool
> + prompt "Do not optimize musl-libc"
> + help
> + This option sets `--optimize=no'
> +
> +config LIBC_MUSL_OPTIMIZE_AUTO
> + bool
> + prompt "Optimize musl-libc based CFLAGS passed"
Wrong prompt (as already seen on IRC).
> + help
> + This option allows musl-libc's ./configure script to automatically
> + set the optimization.
> +
> +config LIBC_MUSL_OPTIMIZE_SPEED
> + bool
> + prompt "Optimize musl-libc for speed"
> + help
> + This option sets `--optimize=yes'
"Speed" vs. "yes" <-- correct?
> +config LIBC_MUSL_OPTIMIZE_SIZE
> + bool
> + prompt "Optimize musl-libc for size"
> + help
> + This option sets `--optimize=size'
> +
> +endchoice
What about adding:
config LIBC_MUSL_OPTIMIZE
string
default "no" if LIBC_MUSL_OPTIMIZE_NONE
default "auto" if LIBC_MUSL_OPTIMIZE_AUTO
default "yes" if LIBC_MUSL_OPTIMIZE_SPEED
default "size" if LIBC_MUSL_OPTIMIZE_SIZE
And then... [1]
> diff --git a/scripts/build/libc/musl.sh b/scripts/build/libc/musl.sh
> index 6dbf657..bd7ae2a 100644
> --- a/scripts/build/libc/musl.sh
> +++ b/scripts/build/libc/musl.sh
> @@ -37,6 +37,7 @@ do_libc_check_config() {
> do_libc_configure() {
> CT_DoLog EXTRA "Configuring C library"
> local -a extra_cflags
> + local -a extra_conf
extra_config [0]
> # From buildroot:
> # gcc constant folding bug with weak aliases workaround
> @@ -45,6 +46,16 @@ do_libc_configure() {
> extra_cflags+=("-fno-toplevel-reorder")
> fi
>
> + if [ "${CT_LIBC_MUSL_OPTIMIZE_NONE}" = "y" ]; then
> + extra_conf+=("--optimize=no")
> + elif [ "${CT_LIBC_MUSL_OPTIMIZE_AUTO}" = "y" ]; then
> + extra_conf+=("--optimize=auto")
> + elif [ "${CT_LIBC_MUSL_OPTIMIZE_SPEED}" = "y" ]; then
> + extra_conf+=("--optimize=yes")
> + elif [ "${CT_LIBC_MUSL_OPTIMIZE_SIZE}" = "y" ]; then
> + extra_conf+=("--optimize=size")
> + fi
[1] use it here instead of all the if-else blocks:
extra_config+=( "--optimize=${CT_LIBC_MUSL_OPTIMIZE}" )
> # NOTE: musl handles the build/host/target a little bit differently
> # then one would expect:
> # build : not used
> @@ -56,7 +67,8 @@ do_libc_configure() {
> ./configure \
> --host="${CT_TARGET}" \
> --target="${CT_TARGET}" \
> - --prefix="/usr"
> + --prefix="/usr" \
> + "${extra_config[@]}"
[0] Because that's what you're using here (and we are using everywhere
else, too.)
Regards,
Yann E. MORIN.
> }
>
> do_libc_start_files() {
> --
> 2.1.0
>
--
.-----------------.--------------------.------------------.--------------------.
| 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