diff options
author | Manuel Novoa III <mjn3@codepoet.org> | 2004-01-16 19:08:39 +0000 |
---|---|---|
committer | Manuel Novoa III <mjn3@codepoet.org> | 2004-01-16 19:08:39 +0000 |
commit | 93e576b799bacbe419b1c442d116b41734f8d03b (patch) | |
tree | 649a06c045b54355eb421b7d1f71c80038b5f419 /make | |
parent | 2d472b2334f683eff884f3e9c8e63f0c02bfa6b7 (diff) | |
download | buildroot-novena-93e576b799bacbe419b1c442d116b41734f8d03b.tar.gz buildroot-novena-93e576b799bacbe419b1c442d116b41734f8d03b.zip |
Get soft float working for gcc 3.3.2. Support for arm, mips, mipsel, powerpc.
Diffstat (limited to 'make')
-rw-r--r-- | make/gcc-uclibc-3.3.mk | 19 | ||||
-rw-r--r-- | make/uclibc.mk | 7 |
2 files changed, 26 insertions, 0 deletions
diff --git a/make/gcc-uclibc-3.3.mk b/make/gcc-uclibc-3.3.mk index 8d2d20db2..532373a19 100644 --- a/make/gcc-uclibc-3.3.mk +++ b/make/gcc-uclibc-3.3.mk @@ -160,6 +160,14 @@ $(GCC_BUILD_DIR2)/.installed: $(GCC_BUILD_DIR2)/.compiled $(GNU_TARGET_NAME)$${app##$(REAL_GNU_TARGET_NAME)}; \ done; \ ); +ifeq ($(SOFT_FLOAT),true) + # Replace specs file with one that defaults to soft float mode. + if [ ! -f $(STAGING_DIR)/usr/lib/gcc-lib/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)/specs ] ; then \ + echo staging dir specs file is missing ; \ + /bin/false ; \ + fi; + cp $(SOURCE_DIR)/specs-$(ARCH)-soft-float $(STAGING_DIR)/usr/lib/gcc-lib/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)/specs +endif touch $(GCC_BUILD_DIR2)/.installed gcc3_3: uclibc-configured binutils gcc3_3_initial $(LIBFLOAT_TARGET) uclibc \ @@ -209,8 +217,19 @@ $(GCC_BUILD_DIR3)/.compiled: $(GCC_BUILD_DIR3)/.configured $(TARGET_DIR)/usr/bin/gcc: $(GCC_BUILD_DIR3)/.compiled PATH=$(TARGET_PATH) \ $(MAKE) $(JLEVEL) DESTDIR=$(TARGET_DIR) -C $(GCC_BUILD_DIR3) install +ifeq ($(SOFT_FLOAT),true) + # Replace specs file with one that defaults to soft float mode. + if [ ! -f $(TARGET_DIR)/usr/lib/gcc-lib/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)/specs ] ; then \ + echo target dir specs file is missing ; \ + /bin/false ; \ + fi; + cp $(SOURCE_DIR)/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 +else # Remove broken specs file (cross compile flag is set). rm -f $(TARGET_DIR)/usr/lib/gcc-lib/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)/specs +endif -(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/lib/gcc-lib/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION); $(STRIP) cc1 cc1plus collect2 > /dev/null 2>&1) diff --git a/make/uclibc.mk b/make/uclibc.mk index 7bdad88a9..4d138ffe4 100644 --- a/make/uclibc.mk +++ b/make/uclibc.mk @@ -33,6 +33,13 @@ $(DL_DIR)/$(UCLIBC_SOURCE): $(WGET) -P $(DL_DIR) $(UCLIBC_SITE)/$(UCLIBC_SOURCE) $(UCLIBC_DIR)/.unpacked: $(DL_DIR)/$(UCLIBC_SOURCE) +ifeq ($(SOFT_FLOAT),true) + # Make sure we have a soft float specs file for this arch + if [ ! -f $(SOURCE_DIR)/specs-$(ARCH)-soft-float ] ; then \ + echo soft float configured but no specs file for this arch ; \ + /bin/false ; \ + fi; +endif bzcat $(DL_DIR)/$(UCLIBC_SOURCE) | tar -C $(BUILD_DIR) -xvf - #(cd $(BUILD_DIR) ; ln -s $(DL_DIR)/uClibc) #-mkdir $(UCLIBC_DIR) |