瀏覽代碼

- 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

Bernhard Reutner-Fischer 18 年之前
父節點
當前提交
4687e00808
共有 2 個文件被更改,包括 18 次插入5 次删除
  1. 13 1
      toolchain/gcc/Makefile.in
  2. 5 4
      toolchain/gcc/gcc-uclibc-3.x.mk

+ 13 - 1
toolchain/gcc/Makefile.in

@@ -30,18 +30,30 @@ SOFT_FLOAT_CONFIG_OPTION:=--with-float=soft
 else
 else
 SOFT_FLOAT_CONFIG_OPTION:=--without-float
 SOFT_FLOAT_CONFIG_OPTION:=--without-float
 endif
 endif
+
 # again... there must be a better way
 # again... there must be a better way
 ifeq ($(findstring 4.,$(GCC_VERSION)),4.)
 ifeq ($(findstring 4.,$(GCC_VERSION)),4.)
 SOFT_FLOAT_CONFIG_OPTION:=--with-float=soft
 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
 endif
+else # not gcc-4.x
 TARGET_SOFT_FLOAT:=-msoft-float
 TARGET_SOFT_FLOAT:=-msoft-float
+endif
 ARCH_FPU_SUFFIX:=_nofpu
 ARCH_FPU_SUFFIX:=_nofpu
-else
+else # no softfloat support
 SOFT_FLOAT_CONFIG_OPTION:=
 SOFT_FLOAT_CONFIG_OPTION:=
 TARGET_SOFT_FLOAT:=
 TARGET_SOFT_FLOAT:=
 ARCH_FPU_SUFFIX:=
 ARCH_FPU_SUFFIX:=
 endif
 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)
 ifeq ($(strip $(BR2_PACKAGE_GCC_TARGET)),y)
 TARGETS+=gcc_target
 TARGETS+=gcc_target
 endif
 endif

+ 5 - 4
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 ; \
 	(cd $(GCC_BUILD_DIR3); rm -rf config.cache ; \
 		PATH=$(TARGET_PATH) \
 		PATH=$(TARGET_PATH) \
 		CC_FOR_BUILD="$(HOSTCC)" \
 		CC_FOR_BUILD="$(HOSTCC)" \
-		BOOT_CFLAGS="$(TARGET_CFLAGS)" \
+		CFLAGS_FOR_BUILD="-g -O2" \
+		$(TARGET_GCC_FLAGS) \
 		$(GCC_DIR)/configure \
 		$(GCC_DIR)/configure \
 		--prefix=/usr \
 		--prefix=/usr \
 		--build=$(GNU_HOST_NAME) \
 		--build=$(GNU_HOST_NAME) \
@@ -342,7 +343,6 @@ $(GCC_BUILD_DIR3)/.configured: $(GCC_BUILD_DIR3)/.prepared
 		--enable-languages=$(GCC_TARGET_LANGUAGES) \
 		--enable-languages=$(GCC_TARGET_LANGUAGES) \
 		--with-gxx-include-dir=/usr/include/c++ \
 		--with-gxx-include-dir=/usr/include/c++ \
 		--disable-__cxa_atexit \
 		--disable-__cxa_atexit \
-		--enable-target-optspace \
 		--with-gnu-ld \
 		--with-gnu-ld \
 		$(GCC_SHARED_LIBGCC) \
 		$(GCC_SHARED_LIBGCC) \
 		$(GCC_WITH_TARGET_GMP) \
 		$(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_WITH_CPU) $(GCC_WITH_ARCH) $(GCC_WITH_TUNE) \
 		$(GCC_USE_SJLJ_EXCEPTIONS) \
 		$(GCC_USE_SJLJ_EXCEPTIONS) \
 		$(DISABLE_LARGEFILE) \
 		$(DISABLE_LARGEFILE) \
-		$(EXTRA_GCC_CONFIG_OPTIONS));
+		$(EXTRA_GCC_CONFIG_OPTIONS) \
+		$(EXTRA_TARGET_GCC_CONFIG_OPTIONS));
 	touch $@
 	touch $@
 
 
 $(GCC_BUILD_DIR3)/.compiled: $(GCC_BUILD_DIR3)/.configured
 $(GCC_BUILD_DIR3)/.compiled: $(GCC_BUILD_DIR3)/.configured
 	PATH=$(TARGET_PATH) \
 	PATH=$(TARGET_PATH) \
-	$(MAKE) $(TARGET_GCC_ARGS) -C $(GCC_BUILD_DIR3) all
+	$(MAKE) -C $(GCC_BUILD_DIR3) all
 	touch $@
 	touch $@
 
 
 #
 #