summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2007-01-26 14:51:38 +0000
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2007-01-26 14:51:38 +0000
commit4687e008086b44312cf45610a16a945ab4e89fa4 (patch)
tree164a96b37a9b9811bb9558af7f80029f91b3da75
parent9e6af6c004a16bc981616cc7db702ddc3a1bf80f (diff)
- for the native target gcc, drop --enable-optspace in favour of using the configured flags (that default to -Os anyway).
Saves about 20% size without additional configure args: text data bss dec hex filename 4685000 17280 566360 5268640 5064a0 optspace/i586-linux-uclibc/4.2.0/cc1 3630655 15184 562172 4208011 40358b usrflags/i586-linux-uclibc/4.2.0/cc1 4853646 23532 568528 5445706 53184a optspace/i586-linux-uclibc/4.2.0/f951 3772121 21292 564148 4357561 427db9 usrflags/i586-linux-uclibc/4.2.0/f951
-rw-r--r--toolchain/gcc/Makefile.in14
-rw-r--r--toolchain/gcc/gcc-uclibc-3.x.mk9
2 files changed, 18 insertions, 5 deletions
diff --git a/toolchain/gcc/Makefile.in b/toolchain/gcc/Makefile.in
index 41e23cf59..1b6e24133 100644
--- a/toolchain/gcc/Makefile.in
+++ b/toolchain/gcc/Makefile.in
@@ -30,18 +30,30 @@ SOFT_FLOAT_CONFIG_OPTION:=--with-float=soft
else
SOFT_FLOAT_CONFIG_OPTION:=--without-float
endif
+
# again... there must be a better way
ifeq ($(findstring 4.,$(GCC_VERSION)),4.)
SOFT_FLOAT_CONFIG_OPTION:=--with-float=soft
+ifeq ($(BR2_SOFT_FLOAT_FP),y)
+TARGET_SOFT_FLOAT:=-mfloat-abi=softfp
+else # no fp at all
+TARGET_SOFT_FLOAT:=-mfloat-abi=soft
endif
+else # not gcc-4.x
TARGET_SOFT_FLOAT:=-msoft-float
+endif
ARCH_FPU_SUFFIX:=_nofpu
-else
+else # no softfloat support
SOFT_FLOAT_CONFIG_OPTION:=
TARGET_SOFT_FLOAT:=
ARCH_FPU_SUFFIX:=
endif
+TARGET_GCC_FLAGS= CFLAGS_FOR_TARGET="$(TARGET_CFLAGS) $(TARGET_SOFT_FLOAT)" \
+ CXXFLAGS_FOR_TARGET="$(TARGET_CFLAGS) $(TARGET_SOFT_FLOAT)" \
+ CFLAGS="$(TARGET_CFLAGS) $(TARGET_SOFT_FLOAT)" \
+ BOOT_CFLAGS="$(TARGET_CFLAGS) $(TARGET_SOFT_FLOAT)"
+
ifeq ($(strip $(BR2_PACKAGE_GCC_TARGET)),y)
TARGETS+=gcc_target
endif
diff --git a/toolchain/gcc/gcc-uclibc-3.x.mk b/toolchain/gcc/gcc-uclibc-3.x.mk
index 9eb6d776c..c67a2699d 100644
--- a/toolchain/gcc/gcc-uclibc-3.x.mk
+++ b/toolchain/gcc/gcc-uclibc-3.x.mk
@@ -333,7 +333,8 @@ $(GCC_BUILD_DIR3)/.configured: $(GCC_BUILD_DIR3)/.prepared
(cd $(GCC_BUILD_DIR3); rm -rf config.cache ; \
PATH=$(TARGET_PATH) \
CC_FOR_BUILD="$(HOSTCC)" \
- BOOT_CFLAGS="$(TARGET_CFLAGS)" \
+ CFLAGS_FOR_BUILD="-g -O2" \
+ $(TARGET_GCC_FLAGS) \
$(GCC_DIR)/configure \
--prefix=/usr \
--build=$(GNU_HOST_NAME) \
@@ -342,7 +343,6 @@ $(GCC_BUILD_DIR3)/.configured: $(GCC_BUILD_DIR3)/.prepared
--enable-languages=$(GCC_TARGET_LANGUAGES) \
--with-gxx-include-dir=/usr/include/c++ \
--disable-__cxa_atexit \
- --enable-target-optspace \
--with-gnu-ld \
$(GCC_SHARED_LIBGCC) \
$(GCC_WITH_TARGET_GMP) \
@@ -354,12 +354,13 @@ $(GCC_BUILD_DIR3)/.configured: $(GCC_BUILD_DIR3)/.prepared
$(GCC_WITH_CPU) $(GCC_WITH_ARCH) $(GCC_WITH_TUNE) \
$(GCC_USE_SJLJ_EXCEPTIONS) \
$(DISABLE_LARGEFILE) \
- $(EXTRA_GCC_CONFIG_OPTIONS));
+ $(EXTRA_GCC_CONFIG_OPTIONS) \
+ $(EXTRA_TARGET_GCC_CONFIG_OPTIONS));
touch $@
$(GCC_BUILD_DIR3)/.compiled: $(GCC_BUILD_DIR3)/.configured
PATH=$(TARGET_PATH) \
- $(MAKE) $(TARGET_GCC_ARGS) -C $(GCC_BUILD_DIR3) all
+ $(MAKE) -C $(GCC_BUILD_DIR3) all
touch $@
#