diff options
author | Manuel Novoa III <mjn3@codepoet.org> | 2004-09-14 11:52:26 +0000 |
---|---|---|
committer | Manuel Novoa III <mjn3@codepoet.org> | 2004-09-14 11:52:26 +0000 |
commit | bfa9ce0e4c5a8c823f94f32bb0e097f4bab10597 (patch) | |
tree | ca7b68caf55ce583719d5e49a7eb66f7ad04eb19 /make | |
parent | 693752617dda88a1013000bfc9f917e10cc519d0 (diff) | |
download | buildroot-novena-bfa9ce0e4c5a8c823f94f32bb0e097f4bab10597.tar.gz buildroot-novena-bfa9ce0e4c5a8c823f94f32bb0e097f4bab10597.zip |
Add back in support for 3.3.4 soft float toolchains, although arm would
require reenabling linking with -lfloat in uClibc.
Diffstat (limited to 'make')
-rw-r--r-- | make/gcc-uclibc-3.x.mk | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/make/gcc-uclibc-3.x.mk b/make/gcc-uclibc-3.x.mk index ff44759cd..919f5be9c 100644 --- a/make/gcc-uclibc-3.x.mk +++ b/make/gcc-uclibc-3.x.mk @@ -187,6 +187,27 @@ endif $(GNU_TARGET_NAME)$${app##$(REAL_GNU_TARGET_NAME)}; \ done; \ ); + # + # Now for the ugly 3.3.x soft float hack... + # +ifeq ($(SOFT_FLOAT),true) +ifeq ($(findstring 3.3.,$(GCC_VERSION)),3.3.) + # Make sure we have a soft float specs file for this arch + if [ ! -f $(SOURCE_DIR)/gcc/$(GCC_VERSION)/specs-$(ARCH)-soft-float ] ; then \ + echo soft float configured but no specs file for this arch ; \ + /bin/false ; \ + fi; + # Replace specs file with one that defaults to soft float mode. + if [ ! -f $(STAGING_DIR)/lib/gcc-lib/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)/specs ] ; then \ + echo staging dir specs file is missing ; \ + /bin/false ; \ + fi; + cp $(SOURCE_DIR)/gcc/$(GCC_VERSION)/specs-$(ARCH)-soft-float $(STAGING_DIR)/lib/gcc-lib/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)/specs +endif +endif + # + # Ok... that's enough of that. + # touch $(GCC_BUILD_DIR2)/.installed $(TARGET_DIR)/lib/libgcc_s.so.1: $(GCC_BUILD_DIR2)/.installed @@ -255,6 +276,20 @@ $(TARGET_DIR)/usr/bin/gcc: $(GCC_BUILD_DIR3)/.compiled $(MAKE) $(JLEVEL) DESTDIR=$(TARGET_DIR) -C $(GCC_BUILD_DIR3) install # Remove broken specs file (cross compile flag is set). rm -f $(TARGET_DIR)/usr/$(GCC_LIB_SUBDIR)/specs + # + # Now for the ugly 3.3.x soft float hack... + # +ifeq ($(SOFT_FLOAT),true) +ifeq ($(findstring 3.3.,$(GCC_VERSION)),3.3.) + # Add a specs file that defaults to soft float mode. + cp $(SOURCE_DIR)/gcc/$(GCC_VERSION)/specs-$(ARCH)-soft-float $(TARGET_DIR)/usr/lib/gcc-lib/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)/specs + # Make sure gcc does not think we are cross compiling + $(SED) "s/^1/0/;" $(TARGET_DIR)/usr/lib/gcc-lib/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)/specs +endif +endif + # + # Ok... that's enough of that. + # -(cd $(TARGET_DIR)/bin; find -type f | xargs $(STRIP) > /dev/null 2>&1) -(cd $(TARGET_DIR)/usr/bin; find -type f | xargs $(STRIP) > /dev/null 2>&1) -(cd $(TARGET_DIR)/usr/$(GCC_LIB_SUBDIR); $(STRIP) cc1 cc1plus collect2 > /dev/null 2>&1) |