summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBryan Hundven <bryanhundven@gmail.com>2015-09-15 15:05:49 (GMT)
committerBryan Hundven <bryanhundven@gmail.com>2015-09-15 15:05:49 (GMT)
commitc2f3ec1defb49510afe42f934bd84f380e32f7a6 (patch)
tree79aa1f6dfaa0fec8455ab2c29e5c25a0009de13a
parente0f06d6258fc9d4988f4c15c12b24e9bc5203640 (diff)
parent9e905afb56a162882df2472d9537f72c82c83487 (diff)
Merge pull request #170 from jasmin-j/newlib_target_cflags
Newlib specific target cflags
-rw-r--r--config/libc/newlib.in14
-rw-r--r--scripts/build/libc/newlib.sh5
2 files changed, 18 insertions, 1 deletions
diff --git a/config/libc/newlib.in b/config/libc/newlib.in
index f32e4b3..8351fab 100644
--- a/config/libc/newlib.in
+++ b/config/libc/newlib.in
@@ -144,6 +144,20 @@ config LIBC_VERSION
Enter the tag you want to use.
Leave empty to use the 'head' of the repository.
+config LIBC_NEWLIB_TARGET_CFLAGS
+ string
+ prompt "Target CFLAGS for newlib"
+ default ""
+ help
+ Used to add specific options when compiling the target libraries
+ (eg. -ffunction-sections -fdata-sections), which can't be defined
+ in global TARGET_CFLAGS, because they shall be not used for the
+ gcc target libraries.
+ Note: Both TARGET_CFLAGS and LIBC_NEWLIB_TARGET_CFLAGS are used
+ to compile the libraries.
+
+ Leave blank if you don't know better.
+
comment "Architecture specific options"
config ATMEL_AVR32_HEADERS
diff --git a/scripts/build/libc/newlib.sh b/scripts/build/libc/newlib.sh
index 744c291..ca00a3f 100644
--- a/scripts/build/libc/newlib.sh
+++ b/scripts/build/libc/newlib.sh
@@ -72,6 +72,7 @@ do_libc_start_files() {
do_libc() {
local -a newlib_opts
+ local cflags_for_target
CT_DoStep INFO "Installing C library"
@@ -109,6 +110,8 @@ do_libc() {
[ "${CT_LIBC_NEWLIB_ENABLE_TARGET_OPTSPACE}" = "y" ] && newlib_opts+=("--enable-target-optspace")
+ cflags_for_target="${CT_TARGET_CFLAGS} ${CT_LIBC_NEWLIB_TARGET_CFLAGS}"
+
# Note: newlib handles the build/host/target a little bit differently
# than one would expect:
# build : not used
@@ -116,7 +119,7 @@ do_libc() {
# target : the machine newlib runs on
CT_DoExecLog CFG \
CC_FOR_BUILD="${CT_BUILD}-gcc" \
- CFLAGS_FOR_TARGET="${CT_TARGET_CFLAGS}" \
+ CFLAGS_FOR_TARGET="${cflags_for_target}" \
AR=${CT_TARGET}-ar \
RANLIB=${CT_TARGET}-ranlib \
"${CT_SRC_DIR}/newlib-${CT_LIBC_VERSION}/configure" \