endif
endif
-EXTRA_CONFIG += --build=$(BUILDTARGET)
+ifeq "$(MACHINE_TYPE)" "arm"
+ EXTRA_CONFIG += \
+ --host=$(BUILDTARGET) \
+ --build=$(BUILDTARGET) \
+ --target=$(BUILDTARGET) \
+ --with-abi=aapcs-linux \
+ --with-float=soft
++else
++ EXTRA_CONFIG += --build=$(BUILDTARGET)
+endif
###############################################################################
# Top-level Rules
@$(PREBUILD)
@rm -rf $(DIR_APP) $(DIR_SRC)/binutils-build && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
@mkdir $(DIR_SRC)/binutils-build
- cd $(DIR_SRC)/binutils-build && $(DIR_APP)/configure $(EXTRA_CONFIG)
+ cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-configure-1.patch
+ cd $(DIR_SRC)/binutils-build && MACHINE= $(DIR_APP)/configure $(EXTRA_CONFIG)
ifeq "$(PASS)" "1"
- cd $(DIR_SRC)/binutils-build && make configure-host
+ cd $(DIR_SRC)/binutils-build && make configure-host MAKEINFO=makeinfo MACHINE=
endif
- cd $(DIR_SRC)/binutils-build && make $(EXTRA_MAKE) $(MAKETUNING)
- cd $(DIR_SRC)/binutils-build && make $(EXTRA_INSTALL) install
+ cd $(DIR_SRC)/binutils-build && make $(EXTRA_MAKE) $(MAKETUNING) MAKEINFO=makeinfo MACHINE=
+ cd $(DIR_SRC)/binutils-build && make $(EXTRA_INSTALL) install MAKEINFO=makeinfo MACHINE=
ifeq "$(ROOT)" ""
- ifneq "$(LFS_PASS)" "install"
cp -v $(DIR_APP)/include/libiberty.h /usr/include
- endif
else
ifeq "$(PASS)" "1"
- cd $(DIR_SRC)/binutils-build && make -C ld clean
- cd $(DIR_SRC)/binutils-build && make -C ld LIB_PATH=/tools/lib
+ cd $(DIR_SRC)/binutils-build && make -C ld clean MACHINE=
+ cd $(DIR_SRC)/binutils-build && make -C ld LIB_PATH=/tools/lib MACHINE=
cd $(DIR_SRC)/binutils-build && cp -v ld/ld-new /tools/bin
else
- cd $(DIR_SRC)/binutils-build && make -C ld clean
- cd $(DIR_SRC)/binutils-build && make -C ld LIB_PATH=/usr/lib:/lib
+ cd $(DIR_SRC)/binutils-build && make -C ld clean MACHINE=
+ cd $(DIR_SRC)/binutils-build && make -C ld LIB_PATH=/usr/lib:/lib MACHINE=
cd $(DIR_SRC)/binutils-build && cp -v ld/ld-new /tools/bin
endif
endif
THISAPP = cleanup-toolchain
TARGET = $(DIR_INFO)/$(THISAPP)-$(PASS)-tools
- ifeq "$(MACHINE_TYPE)" "arm"
- GCC_VER = 4.1.2
- else
- GCC_VER = 4.0.4
- endif
++GCC_VER = 4.1.2
+
###############################################################################
# Top-level Rules
###############################################################################
--with-local-prefix=/tools \
--disable-nls \
--enable-shared \
- --enable-languages=c
- EXTRA_MAKE = bootstrap
- # BOOT_LDFLAGS="-static"
+ --enable-languages=c \
+ --disable-bootstrap
+ EXTRA_MAKE =
- #bootstrap BOOT_LDFLAGS="-static"
EXTRA_INSTALL =
else
TARGET = $(DIR_INFO)/$(THISAPP)-tools2
endif
endif
-EXTRA_CONFIG += --build=$(BUILDTARGET) --host=$(BUILDTARGET) --target=$(BUILDTARGET)
+ifeq "$(MACHINE_TYPE)" "arm"
+ EXTRA_CONFIG += \
+ --build=$(BUILDTARGET) \
+ --host=$(BUILDTARGET) \
+ --target=$(BUILDTARGET) \
+ --with-float=soft \
+ --disable-libmudflap \
+ --disable-libssp \
+ --disable-libgomp \
+ --enable-threads=posix \
+ --enable-long-long \
+ --enable-c99 \
+ --enable-__cxa_atexit \
+ --disable-multilib
++else
++ EXTRA_CONFIG += --build=$(BUILDTARGET) --host=$(BUILDTARGET) \
++ --target=$(BUILDTARGET)
+endif
+
+export XCFLAGS = $(CFLAGS)
+export TCFLAGS = $(CFLAGS)
###############################################################################
# Top-level Rules
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
@$(PREBUILD)
@rm -rf $(DIR_APP) $(DIR_SRC)/gcc-build && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+ cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-fix_linker_version_detection.patch
@mkdir $(DIR_SRC)/gcc-build
+
+ cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/gcc-4.1.2-gcc_eh.patch
+ cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/gcc-4.1.2-arm-linux-soft-float.patch
+
ifeq "$(ROOT)" ""
- ifeq "$(INST)" "1"
- cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/gcc-uclibc-conf.patch
- cd $(DIR_SRC)/gcc-build && $(DIR_APP)/configure $(EXTRA_CONFIG)
- cd $(DIR_SRC)/gcc-build && PATH=$(TARGET_PATH) make $(MAKETUNING) all-gcc
- cd $(DIR_SRC)/gcc-build && PATH=$(TARGET_PATH) make install-gcc
- cd /opt/$(MACHINE)-uClibc/bin && for i in `ls -w1 $(MACHINE)-linux-uclibc-*`; do \
- ln -svf $$i $(MACHINE)-linux-`echo $$i | cut -c 19-`; \
- done
- ln -svf $(MACHINE)-linux-uclibc /opt/$(MACHINE)-uClibc/$(MACHINE)-linux
- ln -svf gcc /opt/$(MACHINE)-uClibc/$(MACHINE)-linux-uclibc/bin/cc
- else
- ifeq "$(INST)" "2"
- cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/gcc-uclibc-conf.patch
- cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/gcc-uclibc-locale.patch
- cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/gcc-libstdc++-pic.patch
- cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/gcc-sdk-libstdc++-includes.patch
- ln -snf ../include /opt/$(MACHINE)-uClibc/$(MACHINE)-linux-uclibc/sys-include
- cd $(DIR_SRC)/gcc-build && $(DIR_APP)/configure $(EXTRA_CONFIG)
- cd $(DIR_SRC)/gcc-build && PATH=$(TARGET_PATH) make $(MAKETUNING) $(EXTRA_MAKE)
- cd $(DIR_SRC)/gcc-build && PATH=$(TARGET_PATH) make install $(EXTRA_INSTALL)
- cp -f /opt/$(MACHINE)-uClibc/lib/libgcc_s.so /lib
- cd /lib && ln -sf libgcc_s.so libgcc_s.so.1
- else
cd $(DIR_APP) && sed -i 's/install_to_$$(INSTALL_DEST) //' libiberty/Makefile.in
cd $(DIR_APP) && sed -i 's/^XCFLAGS =$$/& -fomit-frame-pointer/' gcc/Makefile.in
cd $(DIR_APP) && sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
EXTRA_INSTALL =
endif
-EXTRA_CONFIG += --build=$(BUILDTARGET)
+ifeq "$(MACHINE_TYPE)" "arm"
+ # Disable hardware FP for ARM.
+ EXTRA_CONFIG += \
+ --build=arm \
+ --host=$(BUILDTARGET) \
+ --without-fp
++else
++ EXTRA_CONFIG += --build=$(BUILDTARGET)
+endif
###############################################################################
# Top-level Rules
DL_FROM = $(URL_IPFIRE)
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
+SUP_ARCH = i586
PROG = qemu
- PAK_VER = 11
+ PAK_VER = 13
DEPS = "sdl"
prepareenv
beautify build_stage "Toolchain compilation - Native GCC: `gcc --version | grep GCC | awk {'print $3'}`"
buildtoolchain
- echo "`date -u '+%b %e %T'`: Create toolchain tar.gz for $BUILDMACHINE" | tee -a $LOGFILE
+ echo "`date -u '+%b %e %T'`: Create toolchain tar.gz for $MACHINE" | tee -a $LOGFILE
test -d $BASEDIR/cache/toolchains || mkdir -p $BASEDIR/cache/toolchains
- cd $BASEDIR && tar -zc --exclude='log/_build.*.log' -f cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$BUILDMACHINE.tar.gz \
+ cd $BASEDIR && tar -zc --exclude='log/_build.*.log' -f cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$MACHINE.tar.gz \
build/{bin,etc,usr/bin,usr/local} \
- build/tools/{bin,etc,*-linux-gnu,include,lib,libexec,sbin,share,var} \
+ build/tools/{bin,etc,*-linux-gnu*,include,lib,libexec,sbin,share,var} \
log >> $LOGFILE
- md5sum cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$BUILDMACHINE.tar.gz \
- > cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$BUILDMACHINE.md5
+ md5sum cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$MACHINE.tar.gz \
+ > cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$MACHINE.md5
stdumount
;;
gettoolchain)