[PATCH 2/5] libc/musl: Add options for optimization
Bryan Hundven
bryanhundven@gmail.com
Thu Sep 4 20:57:00 GMT 2014
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"
+ 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'
+
+config LIBC_MUSL_OPTIMIZE_SIZE
+ bool
+ prompt "Optimize musl-libc for size"
+ help
+ This option sets `--optimize=size'
+
+endchoice
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
# 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
+
# 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[@]}"
}
do_libc_start_files() {
--
2.1.0
--
For unsubscribe information see http://sourceware.org/lists.html#faq
More information about the crossgcc
mailing list