From 51f9e7ace124dbf23d2c4ebf8bfb1aa475c71bb9 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Fri, 2 Sep 2011 12:06:09 +0000 Subject: [PATCH] Add support to build an ARM toolchain. --- lfs/binutils | 42 +- lfs/cleanup-toolchain | 28 +- lfs/coreutils | 1 + lfs/gcc | 41 +- lfs/glibc | 63 ++- lfs/linux | 30 +- lfs/util-linux | 1 + make.sh | 104 ++-- src/patches/coreutils-5.96-rename-tee.patch | 51 ++ .../gcc-4.1.2-arm-linux-soft-float.patch | 30 ++ src/patches/gcc-4.1.2-gcc_eh.patch | 24 + src/patches/gcc-4.1.2-specs-1.patch | 507 ++++++++++++++++++ ...glibc-ports-avoid-using-asm-procinfo.patch | 340 ++++++++++++ .../util-linux-2.12r-umount-no-special.patch | 11 + tools/make-functions | 14 +- 15 files changed, 1208 insertions(+), 79 deletions(-) create mode 100644 src/patches/coreutils-5.96-rename-tee.patch create mode 100644 src/patches/gcc-4.1.2-arm-linux-soft-float.patch create mode 100644 src/patches/gcc-4.1.2-gcc_eh.patch create mode 100644 src/patches/gcc-4.1.2-specs-1.patch create mode 100644 src/patches/glibc-ports-avoid-using-asm-procinfo.patch create mode 100644 src/patches/util-linux-2.12r-umount-no-special.patch diff --git a/lfs/binutils b/lfs/binutils index 464ac52fc3..8ad6902e85 100644 --- a/lfs/binutils +++ b/lfs/binutils @@ -24,13 +24,20 @@ include Config -VER = 2.17 +ifeq "$(MACHINE)" "arm" + VER = 2.18 +else + VER = 2.17 +endif THISAPP = binutils-$(VER) DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) +# XXX maybe we can remove that ugly MACHINE= by this +#unexport MACHINE + # Normal build or /tools build. # ifeq "$(ROOT)" "" @@ -55,7 +62,7 @@ else ifeq "$(PASS)" "1" TARGET = $(DIR_INFO)/$(THISAPP)-tools1 EXTRA_CONFIG = --prefix=/tools --disable-nls --disable-werror --disable-gprof - EXTRA_MAKE = LDFLAGS="-all-static" + #EXTRA_MAKE = LDFLAGS="-all-static" EXTRA_INSTALL = else TARGET = $(DIR_INFO)/$(THISAPP)-tools2 @@ -65,6 +72,15 @@ else endif endif +ifeq "$(MACHINE)" "arm" + EXTRA_CONFIG += \ + --host=$(BUILDTARGET) \ + --build=$(BUILDTARGET) \ + --target=$(BUILDTARGET) \ + --with-abi=aapcs-linux \ + --with-float=soft +endif + ############################################################################### # Top-level Rules ############################################################################### @@ -73,7 +89,11 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = e26e2e06b6e4bf3acf1dc8688a94c0d1 +ifeq "$(MACHINE)" "arm" + $(DL_FILE)_MD5 = 9d22ee4dafa3a194457caf4706f9cf01 +else + $(DL_FILE)_MD5 = e26e2e06b6e4bf3acf1dc8688a94c0d1 +endif install : $(TARGET) @@ -104,24 +124,24 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(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_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 diff --git a/lfs/cleanup-toolchain b/lfs/cleanup-toolchain index 06d4231193..445ff73a14 100644 --- a/lfs/cleanup-toolchain +++ b/lfs/cleanup-toolchain @@ -29,6 +29,12 @@ VER = ipfire THISAPP = cleanup-toolchain TARGET = $(DIR_INFO)/$(THISAPP)-$(PASS)-tools +ifeq "$(MACHINE)" "arm" + GCC_VER = 4.1.2 +else + GCC_VER = 4.0.4 +endif + ############################################################################### # Top-level Rules ############################################################################### @@ -51,14 +57,14 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) ifeq "$(PASS)" "1" mv -v /tools/bin/{ld,ld-old} - mv -v /tools/i686-pc-linux-gnu/bin/{ld,ld-old} + mv -v /tools/$(BUILDTARGET)/bin/{ld,ld-old} cp -v /tools/bin/{ld-new,ld} - ln -sv /tools/bin/ld /tools/i686-pc-linux-gnu/bin/ld - gcc -dumpspecs > /tools/lib/gcc/i686-pc-linux-gnu/4.0.4/specs - sed 's@^/lib/ld-linux.so.2@/tools&@g' /tools/lib/gcc/i686-pc-linux-gnu/4.0.4/specs > tempspecfile - mv -vf tempspecfile /tools/lib/gcc/i686-pc-linux-gnu/4.0.4/specs - find /tools/lib/gcc/i686-pc-linux-gnu/4.0.4/include/* -maxdepth 0 -xtype d -exec rm -rvf '{}' \; - rm -vf `grep -l "DO NOT EDIT THIS FILE" /tools/lib/gcc/i686-pc-linux-gnu/4.0.4/include/*` + ln -sv /tools/bin/ld /tools/$(BUILDTARGET)/bin/ld + gcc -dumpspecs > /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/specs + sed 's@/lib/ld-linux.so@/tools&@g' /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/specs > tempspecfile + mv -vf tempspecfile /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/specs + find /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/include/* -maxdepth 0 -xtype d -exec rm -rvf '{}' \; + rm -vf `grep -l "DO NOT EDIT THIS FILE" /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/include/*` endif ifeq "$(PASS)" "2" -strip --strip-debug /tools/lib/* @@ -68,12 +74,12 @@ ifeq "$(PASS)" "2" endif ifeq "$(PASS)" "3" mv -v /tools/bin/{ld,ld-old} - mv -v /tools/i686-pc-linux-gnu/bin/{ld,ld-old} + mv -v /tools/$(BUILDTARGET)/bin/{ld,ld-old} mv -v /tools/bin/{ld-new,ld} - ln -sv /tools/bin/ld /tools/i686-pc-linux-gnu/bin/ld + ln -sv /tools/bin/ld /tools/$(BUILDTARGET)/bin/ld gcc -dumpspecs | \ - perl -p -e 's@/tools/lib/ld-linux.so.2@/lib/ld-linux.so.2@g;' \ + perl -p -e 's@/tools/lib/ld-linux.so@/lib/ld-linux.so@g;' \ -e 's@\*startfile_prefix_spec:\n@$$_/usr/lib/ @g;' > \ - /tools/lib/gcc/i686-pc-linux-gnu/4.0.4/specs + /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/specs endif @$(POSTBUILD) diff --git a/lfs/coreutils b/lfs/coreutils index 9b6ddc7c4f..4f3d56e922 100644 --- a/lfs/coreutils +++ b/lfs/coreutils @@ -83,6 +83,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/coreutils-5.96-rename-tee.patch ifeq "$(ROOT)" "" cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-uname-1.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-suppress_uptime_kill_su-1.patch diff --git a/lfs/gcc b/lfs/gcc index b6a261ae9b..4b36c5bd82 100644 --- a/lfs/gcc +++ b/lfs/gcc @@ -24,7 +24,11 @@ include Config -VER = 4.0.4 +ifeq "$(MACHINE)" "arm" + VER = 4.1.2 +else + VER = 4.0.4 +endif THISAPP = gcc-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -93,7 +97,8 @@ ifeq "$(PASS)" "1" --with-local-prefix=/tools \ --disable-nls \ --enable-shared \ - --enable-languages=c + --enable-languages=c \ + --disable-bootstrap EXTRA_MAKE = #bootstrap BOOT_LDFLAGS="-static" EXTRA_INSTALL = @@ -112,6 +117,25 @@ else endif endif +ifeq "$(MACHINE)" "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 +endif + +export XCFLAGS = $(CFLAGS) +export TCFLAGS = $(CFLAGS) + ############################################################################### # Top-level Rules ############################################################################### @@ -119,7 +143,11 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 8970debbc55bea85ee80961d733080f0 +ifeq "$(MACHINE)" "arm" + $(DL_FILE)_MD5 = a4a3eb15c96030906d8494959eeda23c +else + $(DL_FILE)_MD5 = 8970debbc55bea85ee80961d733080f0 +endif install : $(TARGET) @@ -150,6 +178,10 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) $(DIR_SRC)/gcc-build && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) @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 @@ -192,6 +224,9 @@ ifeq "$(PASS)" "1" cd $(DIR_SRC)/gcc-build && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_SRC)/gcc-build && make $(EXTRA_INSTALL) install ln -sfv gcc /tools/bin/cc + ln -sf ccache $(ROOT)/usr/local/bin/$(BUILDTARGET)-gcc + ln -sf ccache $(ROOT)/usr/local/bin/$(BUILDTARGET)-g++ + ln -sf ccache $(ROOT)/usr/local/bin/$(BUILDTARGET)-cc else cd $(DIR_APP) && cp -v gcc/Makefile.in{,.orig} cd $(DIR_APP) && sed 's@\./fixinc\.sh@-c true@' gcc/Makefile.in.orig > gcc/Makefile.in diff --git a/lfs/glibc b/lfs/glibc index c540b98faa..beb6b789a9 100644 --- a/lfs/glibc +++ b/lfs/glibc @@ -24,28 +24,30 @@ include Config -VER = 2.3.6 +ifeq "$(MACHINE)" "arm" + VER = 2.5 +else + VER = 2.3.6 +endif THISAPP = glibc-$(VER) DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) -CFLAGS = -CXXFLAGS = # Normal build or /tools build. # ifeq "$(ROOT)" "" TARGET = $(DIR_INFO)/$(THISAPP) EXTRA_CONFIG = --prefix=/usr \ - --disable-profile --enable-add-ons \ + --disable-profile \ --enable-kernel=2.6.0 --libexecdir=/usr/lib/glibc EXTRA_MAKE = EXTRA_INSTALL = else TARGET = $(DIR_INFO)/$(THISAPP)-tools EXTRA_CONFIG = --prefix=/tools \ - --disable-profile --enable-add-ons \ + --disable-profile \ --enable-kernel=2.6.0 --with-binutils=/tools/bin \ --without-gd --with-headers=/tools/include \ --without-selinux @@ -53,6 +55,17 @@ else EXTRA_INSTALL = endif +ifeq "$(MACHINE)" "arm" + # Disable hardware FP for ARM. + EXTRA_CONFIG += \ + --build=$(MACHINE) \ + --host=$(BUILDTARGET) \ + --without-fp \ + --enable-add-ons=nptl,ports +else + EXTRA_CONFIG += --enable-add-ons +endif + ############################################################################### # Top-level Rules ############################################################################### @@ -63,8 +76,20 @@ objects = $(DL_FILE) \ $(DL_FILE) = $(DL_FROM)/$(DL_FILE) glibc-libidn-$(VER).tar.bz2 = $(DL_FROM)/glibc-libidn-$(VER).tar.bz2 -$(DL_FILE)_MD5 = bfdce99f82d6dbcb64b7f11c05d6bc96 -glibc-libidn-$(VER).tar.bz2_MD5 = 49dbe06ce830fc73874d6b38bdc5b4db +ifeq "$(MACHINE)" "arm" + $(DL_FILE)_MD5 = 1fb29764a6a650a4d5b409dda227ac9f + glibc-libidn-$(VER).tar.bz2_MD5 = 8787868ba8962d9b125997ec2f25ac01 +else + $(DL_FILE)_MD5 = bfdce99f82d6dbcb64b7f11c05d6bc96 + glibc-libidn-$(VER).tar.bz2_MD5 = 49dbe06ce830fc73874d6b38bdc5b4db +endif + +# ARM needs glibc-ports +ifeq "$(MACHINE)" "arm" + objects += glibc-ports-$(VER).tar.bz2 + glibc-ports-$(VER).tar.bz2 = $(DL_FROM)/glibc-ports-$(VER).tar.bz2 + glibc-ports-$(VER).tar.bz2_MD5 = 183f6d46e8fa5e4b2aff240ab1586c2e +endif install : $(TARGET) @@ -95,23 +120,42 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) $(DIR_SRC)/glibc-build && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) @mkdir $(DIR_SRC)/glibc-build +ifeq "$(MACHINE)" "arm" + cd $(DIR_APP) && tar jxf $(DIR_DL)/glibc-ports-$(VER).tar.bz2 + cd $(DIR_APP) && mv -v glibc-ports-$(VER) ports + + cd $(DIR_APP)/ports && patch -Np1 -i $(DIR_SRC)/src/patches/glibc-ports-avoid-using-asm-procinfo.patch + + # asm/page.h should not be included in sysdeps/unix/sysv/linux/arm/ioperm.c. + cd $(DIR_APP) && sed "/asm\/page.h/d" -i ports/sysdeps/unix/sysv/linux/arm/ioperm.c +else cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/$(THISAPP)-dont_use_origin_on_privil_exec.patch +endif ifeq "$(ROOT)" "" +ifeq "$(MACHINE)" "i586" cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/$(THISAPP)-linux_types-1.patch cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/$(THISAPP)-inotify-1.patch +endif # This locale causes a loop on bash login - exclude it cd $(DIR_APP) && sed -i '/vi_VN.TCVN/d' localedata/SUPPORTED +ifeq "$(MACHINE)" "arm" + cd $(DIR_APP) && sed -i 's|libs -o|libs -L/usr/lib -Wl,-dynamic-linker=/lib/ld-linux.so.3 -o|' \ + scripts/test-installation.pl +else cd $(DIR_APP) && sed -i 's|libs -o|libs -L/usr/lib -Wl,-dynamic-linker=/lib/ld-linux.so.2 -o|' \ scripts/test-installation.pl endif - cd $(DIR_SRC)/glibc-build && $(DIR_APP)/configure $(EXTRA_CONFIG) +endif + cd $(DIR_SRC)/glibc-build && CFLAGS="$(CFLAGS)" $(DIR_APP)/configure $(EXTRA_CONFIG) ifeq "$(ROOT)" "" touch /etc/ld.so.conf cd $(DIR_SRC)/glibc-build && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_SRC)/glibc-build && make $(EXTRA_INSTALL) install +ifeq "$(MACHINE)" "i586" cp -v $(DIR_APP)/sysdeps/unix/sysv/linux/inotify.h /usr/include/sys +endif else -mkdir /tools/etc touch /tools/etc/ld.so.conf @@ -124,7 +168,8 @@ ifeq "$(ROOT)" "" mkdir -p /usr/lib/locale cd $(DIR_SRC)/glibc-build && localedef -i en_US -f ISO-8859-1 en_US cd $(DIR_SRC)/glibc-build && localedef -i en_US -f UTF-8 en_US.utf8 - cp -f /usr/share/zoneinfo/GMT /etc/localtime + # XXX zoneinfo stuff is not installed + #cp -f /usr/share/zoneinfo/GMT /etc/localtime endif @rm -rf $(DIR_APP) $(DIR_SRC)/glibc-build @$(POSTBUILD) diff --git a/lfs/linux b/lfs/linux index cb36d5f8d2..ebbfedaddf 100644 --- a/lfs/linux +++ b/lfs/linux @@ -51,7 +51,23 @@ else endif endif -TARGET = $(DIR_INFO)/linux-$(VER)-$(VERSUFIX) +ifeq "$(HEADERS)" "1" +ifeq "$(TOOLS)" "1" + TARGET = $(DIR_INFO)/linux-libc-headers-$(VER)-$(VERSUFIX)-tools + HEADERS_PREFIX = /tools +else + TARGET = $(DIR_INFO)/linux-libc-headers-$(VER)-$(VERSUFIX) + HEADERS_PREFIX = /usr +endif +else + TARGET = $(DIR_INFO)/linux-$(VER)-$(VERSUFIX) +endif + +ifeq "$(MACHINE)" "arm" + HEADERS_ARCH=arm +else + HEADERS_ARCH=x86 +endif ############################################################################### # Top-level Rules @@ -105,7 +121,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) $(DIR_SRC)/linux $(DIR_SRC)/linux-*-suse_xen_patches $(DIR_SRC)/xen-* && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) - ln -s linux-$(VER) /usr/src/linux + ln -svf linux-$(VER) $(DIR_SRC)/linux ifeq "$(XEN)" "1" # Apply gentoo Xen patches @@ -149,12 +165,19 @@ endif cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.27_ipg-fix-driver-name.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.27_mcs7830-fix-driver-name.patch +ifeq "$(HEADERS)" "1" + # Install the header files + cd $(DIR_APP) && make ARCH=$(HEADERS_ARCH) INSTALL_HDR_PATH=dest headers_install + -mkdir -pv $(BUILDROOT)/$(HEADERS_PREFIX)/include + cd $(DIR_APP) && find dest/include \( -name .install -o -name ..install.cmd \) -delete + cd $(DIR_APP) && cp -rv dest/include/* $(BUILDROOT)/$(HEADERS_PREFIX)/include +else + # Install ipfire logo cd $(DIR_APP) && cp -vf $(DIR_SRC)/config/kernel/ipfire_logo.ppm \ drivers/video/logo/logo_linux_clut224.ppm # Cleanup kernel source - cp $(DIR_SRC)/config/kernel/kernel.config.$(MACHINE)-$(VERSUFIX) $(DIR_APP)/.config cd $(DIR_APP) && make CC="$(KGCC)" oldconfig cd $(DIR_APP) && make CC="$(KGCC)" clean @@ -211,6 +234,7 @@ endif # Disable geode_aes modul mv /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/crypto/geode-aes.ko \ /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/crypto/geode-aes.ko.off +endif @rm -rf $(DIR_SRC)/patch-o-matic* $(DIR_SRC)/iptables* $(DIR_SRC)/squashfs* $(DIR_SRC)/netfilter-layer7-* @$(POSTBUILD) diff --git a/lfs/util-linux b/lfs/util-linux index b5038801af..61d5567d1a 100644 --- a/lfs/util-linux +++ b/lfs/util-linux @@ -81,6 +81,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/util-linux-2.12r-umount-no-special.patch ifeq "$(ROOT)" "" ifeq "$(LFS_PASS)" "install" cd $(DIR_APP) && CFLAGS="-Os -fomit-frame-pointer" ./configure diff --git a/make.sh b/make.sh index 45185ba5d0..3a17c444a3 100755 --- a/make.sh +++ b/make.sh @@ -243,15 +243,19 @@ buildtoolchain() { LOGFILE="$BASEDIR/log/_build.toolchain.log" export LOGFILE - ORG_PATH=$PATH NATIVEGCC=`gcc --version | grep GCC | awk {'print $3'}` export NATIVEGCC GCCmajor=${NATIVEGCC:0:1} GCCminor=${NATIVEGCC:2:1} GCCrelease=${NATIVEGCC:4:1} + ORG_PATH=$PATH + export PATH=$BASEDIR/build/usr/local/bin:$BASEDIR/build/tools/bin:$PATH lfsmake1 ccache PASS=1 lfsmake1 make PASS=1 lfsmake1 binutils PASS=1 lfsmake1 gcc PASS=1 - export PATH=$BASEDIR/build/usr/local/bin:$BASEDIR/build/tools/bin:$PATH - lfsmake1 linux-libc-header + if [ "${MACHINE}" = "arm" ]; then + lfsmake1 linux TOOLS=1 HEADERS=1 + else + lfsmake1 linux-libc-header + fi lfsmake1 glibc lfsmake1 cleanup-toolchain PASS=1 lfsmake1 tcl @@ -286,7 +290,11 @@ buildbase() { LOGFILE="$BASEDIR/log/_build.base.log" export LOGFILE lfsmake2 stage2 - lfsmake2 linux-libc-header + if [ "${MACHINE}" = "arm" ]; then + lfsmake2 linux HEADERS=1 + else + lfsmake2 linux-libc-header + fi lfsmake2 man-pages lfsmake2 glibc lfsmake2 cleanup-toolchain PASS=3 @@ -340,7 +348,11 @@ buildbase() { lfsmake2 udev lfsmake2 util-linux lfsmake2 vim - lfsmake2 grub + + # ARM cannot use grub. + if [ "${MACHINE}" != "arm" ]; then + lfsmake2 grub + fi } buildipfire() { @@ -359,39 +371,49 @@ buildipfire() { ipfiremake xz ipfiremake linux-firmware ipfiremake zd1211-firmware - ipfiremake linux XEN=1 - ipfiremake kqemu XEN=1 - ipfiremake v4l-dvb XEN=1 - ipfiremake madwifi XEN=1 - ipfiremake mISDN XEN=1 - ipfiremake dahdi XEN=1 KMOD=1 - ipfiremake cryptodev XEN=1 - ipfiremake compat-wireless XEN=1 - ipfiremake r8169 XEN=1 - ipfiremake r8168 XEN=1 - ipfiremake r8101 XEN=1 - ipfiremake e1000 XEN=1 - ipfiremake e1000e XEN=1 - ipfiremake igb XEN=1 - ipfiremake linux PAE=1 - ipfiremake kqemu PAE=1 - ipfiremake kvm-kmod PAE=1 - ipfiremake v4l-dvb PAE=1 - ipfiremake madwifi PAE=1 - ipfiremake alsa PAE=1 KMOD=1 - ipfiremake mISDN PAE=1 - ipfiremake dahdi PAE=1 KMOD=1 - ipfiremake cryptodev PAE=1 - ipfiremake compat-wireless PAE=1 -# ipfiremake r8169 PAE=1 -# ipfiremake r8168 PAE=1 -# ipfiremake r8101 PAE=1 - ipfiremake e1000 PAE=1 - ipfiremake e1000e PAE=1 - ipfiremake igb PAE=1 + + # The xen and PAE kernels are only available for x86 + if [ "${MACHINE}" != "arm" ]; then + ipfiremake linux XEN=1 + ipfiremake kqemu XEN=1 + ipfiremake v4l-dvb XEN=1 + ipfiremake madwifi XEN=1 + ipfiremake mISDN XEN=1 + ipfiremake dahdi XEN=1 KMOD=1 + ipfiremake cryptodev XEN=1 + ipfiremake compat-wireless XEN=1 + ipfiremake r8169 XEN=1 + ipfiremake r8168 XEN=1 + ipfiremake r8101 XEN=1 + ipfiremake e1000 XEN=1 + ipfiremake e1000e XEN=1 + ipfiremake igb XEN=1 + ipfiremake linux PAE=1 + ipfiremake kqemu PAE=1 + ipfiremake kvm-kmod PAE=1 + ipfiremake v4l-dvb PAE=1 + ipfiremake madwifi PAE=1 + ipfiremake alsa PAE=1 KMOD=1 + ipfiremake mISDN PAE=1 + ipfiremake dahdi PAE=1 KMOD=1 + ipfiremake cryptodev PAE=1 + ipfiremake compat-wireless PAE=1 +# ipfiremake r8169 PAE=1 +# ipfiremake r8168 PAE=1 +# ipfiremake r8101 PAE=1 + ipfiremake e1000 PAE=1 + ipfiremake e1000e PAE=1 + ipfiremake igb PAE=1 + fi + + # Default kernel build ipfiremake linux - ipfiremake kqemu - ipfiremake kvm-kmod + + # Virtualization helpers are only available for x86. + if [ "${MACHINE}" != "arm" ]; then + ipfiremake kqemu + ipfiremake kvm-kmod + fi ipfiremake v4l-dvb ipfiremake madwifi ipfiremake alsa KMOD=1 @@ -915,7 +937,8 @@ downloadsrc) for i in *; do if [ -f "$i" -a "$i" != "Config" ]; then echo -ne "Loading $i" - make -s -f $i LFS_BASEDIR=$BASEDIR MESSAGE="$i\t ($c/$MAX_RETRIES)" download >> $LOGFILE 2>&1 + make -s -f $i LFS_BASEDIR=$BASEDIR MACHINE=$MACHINE \ + MESSAGE="$i\t ($c/$MAX_RETRIES)" download >> $LOGFILE 2>&1 if [ $? -ne 0 ]; then beautify message FAIL FINISHED=0 @@ -931,7 +954,8 @@ downloadsrc) ERROR=0 for i in *; do if [ -f "$i" -a "$i" != "Config" ]; then - make -s -f $i LFS_BASEDIR=$BASEDIR MESSAGE="$i\t " md5 >> $LOGFILE 2>&1 + make -s -f $i LFS_BASEDIR=$BASEDIR MACHINE=$MACHINE \ + MESSAGE="$i\t " md5 >> $LOGFILE 2>&1 if [ $? -ne 0 ]; then echo -ne "MD5 difference in lfs/$i" beautify message FAIL @@ -957,7 +981,7 @@ toolchain) 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 \ 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 diff --git a/src/patches/coreutils-5.96-rename-tee.patch b/src/patches/coreutils-5.96-rename-tee.patch new file mode 100644 index 0000000000..60afab4410 --- /dev/null +++ b/src/patches/coreutils-5.96-rename-tee.patch @@ -0,0 +1,51 @@ +From b50508742035812f8ae8671eedc6623fac53f51d Mon Sep 17 00:00:00 2001 +From: Jim Meyering +Date: Thu, 22 Jun 2006 12:50:32 +0000 +Subject: [PATCH] * src/tee.c (tee_files): Rename from tee, to avoid conflict with + the function in glibc's . Reported by Andreas Schwab. + +--- + src/tee.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/tee.c b/src/tee.c +index f99642d..f612181 100644 +--- a/src/tee.c ++++ b/src/tee.c +@@ -1,5 +1,5 @@ + /* tee - read from standard input and write to standard output and files. +- Copyright (C) 85,1990-2005 Free Software Foundation, Inc. ++ Copyright (C) 85,1990-2006 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by +@@ -31,7 +31,7 @@ + + #define AUTHORS "Mike Parker", "Richard M. Stallman", "David MacKenzie" + +-static bool tee (int nfiles, const char **files); ++static bool tee_files (int nfiles, const char **files); + + /* If true, append to output files rather than truncating them. */ + static bool append; +@@ -121,7 +121,7 @@ main (int argc, char **argv) + /* Do *not* warn if tee is given no file arguments. + POSIX requires that it work when given no arguments. */ + +- ok = tee (argc - optind, (const char **) &argv[optind]); ++ ok = tee_files (argc - optind, (const char **) &argv[optind]); + if (close (STDIN_FILENO) != 0) + error (EXIT_FAILURE, errno, _("standard input")); + +@@ -133,7 +133,7 @@ main (int argc, char **argv) + Return true if successful. */ + + static bool +-tee (int nfiles, const char **files) ++tee_files (int nfiles, const char **files) + { + FILE **descriptors; + char buffer[BUFSIZ]; +-- +1.7.2.5 + diff --git a/src/patches/gcc-4.1.2-arm-linux-soft-float.patch b/src/patches/gcc-4.1.2-arm-linux-soft-float.patch new file mode 100644 index 0000000000..c22bc385bc --- /dev/null +++ b/src/patches/gcc-4.1.2-arm-linux-soft-float.patch @@ -0,0 +1,30 @@ +diff -u -r gcc-4.0.2/gcc/config/arm/t-linux gcc-4.0.2/gcc/config/arm.new/t-linux +--- gcc-4.0.2/gcc/config/arm/t-linux 2005-10-18 22:04:44.000000000 +1000 ++++ gcc-4.0.2/gcc/config/arm.new/t-linux 2005-10-18 22:05:03.000000000 +1000 +@@ -4,7 +4,12 @@ TARGET_LIBGCC2_CFLAGS = -fomit-frame-poi + LIBGCC2_DEBUG_CFLAGS = -g0 + + LIB1ASMSRC = arm/lib1funcs.asm +-LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx ++LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \ ++ _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \ ++ _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \ ++ _fixsfsi _fixunssfsi _floatdidf _floatdisf \ ++ _bb_init_func _call_via_rX _interwork_call_via_rX \ ++ _lshrdi3 _ashrdi3 _ashldi3 + + # MULTILIB_OPTIONS = mhard-float/msoft-float + # MULTILIB_DIRNAMES = hard-float soft-float + + +--- gcc-4.1.1/gcc/config/arm/linux-elf.h 2007-01-06 11:17:51.000000000 +0000 ++++ gcc-4.1.1/gcc/config/arm/linux-elf-soft.h 2007-01-06 11:22:01.000000000 +0000 +@@ -49,7 +49,7 @@ + %{shared:-lc} \ + %{!shared:%{profile:-lc_p}%{!profile:-lc}}" + +-#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc" ++/* #define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc" */ + + #define LINUX_TARGET_INTERPRETER "/lib/ld-linux.so.2" + diff --git a/src/patches/gcc-4.1.2-gcc_eh.patch b/src/patches/gcc-4.1.2-gcc_eh.patch new file mode 100644 index 0000000000..9a2589a81c --- /dev/null +++ b/src/patches/gcc-4.1.2-gcc_eh.patch @@ -0,0 +1,24 @@ +diff -ur gcc-4.1.2/gcc/cp/g++spec.c gcc-4.1.2-gcc_eh/gcc/cp/g++spec.c +--- gcc-4.1.2/gcc/cp/g++spec.c 2005-06-25 02:59:41.000000000 +0200 ++++ gcc-4.1.2-gcc_eh/gcc/cp/g++spec.c 2007-08-03 14:46:03.000000000 +0200 +@@ -251,7 +251,7 @@ + #endif + + /* Make sure to have room for the trailing NULL argument. */ +- num_args = argc + added + need_math + shared_libgcc + (library > 0) + 1; ++ num_args = argc + added + need_math + shared_libgcc + 2 * (library > 0) + 1; + arglist = xmalloc (num_args * sizeof (char *)); + + i = 0; +@@ -311,7 +311,10 @@ + { + arglist[j] = saw_profile_flag ? LIBSTDCXX_PROFILE : LIBSTDCXX; + if (arglist[j][0] != '-' || arglist[j][1] == 'l') +- added_libraries++; ++ { ++ arglist[++j] = "-lgcc_eh"; ++ added_libraries += 2; ++ } + j++; + } + if (saw_math) diff --git a/src/patches/gcc-4.1.2-specs-1.patch b/src/patches/gcc-4.1.2-specs-1.patch new file mode 100644 index 0000000000..28ebb433f2 --- /dev/null +++ b/src/patches/gcc-4.1.2-specs-1.patch @@ -0,0 +1,507 @@ +diff -Naur gcc-4.1.2.orig/gcc/config/alpha/linux-elf.h gcc-4.1.2/gcc/config/alpha/linux-elf.h +--- gcc-4.1.2.orig/gcc/config/alpha/linux-elf.h 2005-06-25 01:22:41.000000000 +0000 ++++ gcc-4.1.2/gcc/config/alpha/linux-elf.h 2011-09-01 17:11:11.000000000 +0000 +@@ -27,7 +27,7 @@ + #define SUBTARGET_EXTRA_SPECS \ + { "elf_dynamic_linker", ELF_DYNAMIC_LINKER }, + +-#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2" ++#define ELF_DYNAMIC_LINKER "/tools/lib/ld-linux.so.2" + + #define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ + %{O*:-O3} %{!O*:-O1} \ +diff -Naur gcc-4.1.2.orig/gcc/config/arm/linux-eabi.h gcc-4.1.2/gcc/config/arm/linux-eabi.h +--- gcc-4.1.2.orig/gcc/config/arm/linux-eabi.h 2005-11-15 14:32:13.000000000 +0000 ++++ gcc-4.1.2/gcc/config/arm/linux-eabi.h 2011-09-01 17:11:47.000000000 +0000 +@@ -53,7 +53,7 @@ + /* Use ld-linux.so.3 so that it will be possible to run "classic" + GNU/Linux binaries on an EABI system. */ + #undef LINUX_TARGET_INTERPRETER +-#define LINUX_TARGET_INTERPRETER "/lib/ld-linux.so.3" ++#define LINUX_TARGET_INTERPRETER "/tools/lib/ld-linux.so.3" + + /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to + use the GNU/Linux version, not the generic BPABI version. */ +diff -Naur gcc-4.1.2.orig/gcc/config/arm/linux-elf.h gcc-4.1.2/gcc/config/arm/linux-elf.h +--- gcc-4.1.2.orig/gcc/config/arm/linux-elf.h 2005-10-10 01:04:31.000000000 +0000 ++++ gcc-4.1.2/gcc/config/arm/linux-elf.h 2011-09-01 17:11:11.000000000 +0000 +@@ -51,7 +51,7 @@ + + #define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc" + +-#define LINUX_TARGET_INTERPRETER "/lib/ld-linux.so.2" ++#define LINUX_TARGET_INTERPRETER "/tools/lib/ld-linux.so.2" + + #define LINUX_TARGET_LINK_SPEC "%{h*} %{version:-v} \ + %{b} \ +diff -Naur gcc-4.1.2.orig/gcc/config/frv/linux.h gcc-4.1.2/gcc/config/frv/linux.h +--- gcc-4.1.2.orig/gcc/config/frv/linux.h 2005-06-25 01:22:41.000000000 +0000 ++++ gcc-4.1.2/gcc/config/frv/linux.h 2011-09-01 17:11:11.000000000 +0000 +@@ -41,7 +41,7 @@ + %{mfdpic: -m elf32frvfd -z text} %{shared} %{pie} \ + %{!shared: %{!static: \ + %{rdynamic:-export-dynamic} \ +- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ ++ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \ + %{static}}" + + /* Support for compile-time default CPU. */ +diff -Naur gcc-4.1.2.orig/gcc/config/i386/gnu.h gcc-4.1.2/gcc/config/i386/gnu.h +--- gcc-4.1.2.orig/gcc/config/i386/gnu.h 2004-09-08 00:17:19.000000000 +0000 ++++ gcc-4.1.2/gcc/config/i386/gnu.h 2011-09-01 17:11:11.000000000 +0000 +@@ -27,7 +27,7 @@ + %{!shared: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +- %{!dynamic-linker:-dynamic-linker /lib/ld.so}} \ ++ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so}} \ + %{static:-static}}" + + #undef STARTFILE_SPEC +diff -Naur gcc-4.1.2.orig/gcc/config/i386/linux64.h gcc-4.1.2/gcc/config/i386/linux64.h +--- gcc-4.1.2.orig/gcc/config/i386/linux64.h 2005-08-10 17:53:01.000000000 +0000 ++++ gcc-4.1.2/gcc/config/i386/linux64.h 2011-09-01 17:11:11.000000000 +0000 +@@ -60,8 +60,8 @@ + %{!shared: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +- %{m32:%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ +- %{!m32:%{!dynamic-linker:-dynamic-linker /lib64/ld-linux-x86-64.so.2}}} \ ++ %{m32:%{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \ ++ %{!m32:%{!dynamic-linker:-dynamic-linker /tools/lib64/ld-linux-x86-64.so.2}}} \ + %{static:-static}}" + + /* Similar to standard Linux, but adding -ffast-math support. */ +diff -Naur gcc-4.1.2.orig/gcc/config/i386/linux.h gcc-4.1.2/gcc/config/i386/linux.h +--- gcc-4.1.2.orig/gcc/config/i386/linux.h 2005-08-10 17:53:01.000000000 +0000 ++++ gcc-4.1.2/gcc/config/i386/linux.h 2011-09-01 17:11:11.000000000 +0000 +@@ -105,7 +105,7 @@ + /* If ELF is the default format, we should not use /lib/elf. */ + + #define LINK_EMULATION "elf_i386" +-#define DYNAMIC_LINKER "/lib/ld-linux.so.2" ++#define DYNAMIC_LINKER "/tools/lib/ld-linux.so.2" + + #undef SUBTARGET_EXTRA_SPECS + #define SUBTARGET_EXTRA_SPECS \ +diff -Naur gcc-4.1.2.orig/gcc/config/ia64/linux.h gcc-4.1.2/gcc/config/ia64/linux.h +--- gcc-4.1.2.orig/gcc/config/ia64/linux.h 2006-12-12 15:24:07.000000000 +0000 ++++ gcc-4.1.2/gcc/config/ia64/linux.h 2011-09-01 17:11:11.000000000 +0000 +@@ -43,7 +43,7 @@ + %{!shared: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +- %{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.2}} \ ++ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux-ia64.so.2}} \ + %{static:-static}}" + + #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}" +diff -Naur gcc-4.1.2.orig/gcc/config/ia64/linux.h.orig gcc-4.1.2/gcc/config/ia64/linux.h.orig +--- gcc-4.1.2.orig/gcc/config/ia64/linux.h.orig 1970-01-01 00:00:00.000000000 +0000 ++++ gcc-4.1.2/gcc/config/ia64/linux.h.orig 2006-12-12 15:24:07.000000000 +0000 +@@ -0,0 +1,59 @@ ++/* Definitions for ia64-linux target. */ ++ ++/* This macro is a C statement to print on `stderr' a string describing the ++ particular machine description choice. */ ++ ++#define TARGET_VERSION fprintf (stderr, " (IA-64) Linux"); ++ ++/* This is for -profile to use -lc_p instead of -lc. */ ++#undef CC1_SPEC ++#define CC1_SPEC "%{profile:-p} %{G*}" ++ ++/* Target OS builtins. */ ++#define TARGET_OS_CPP_BUILTINS() \ ++do { \ ++ LINUX_TARGET_OS_CPP_BUILTINS(); \ ++ builtin_define("_LONGLONG"); \ ++} while (0) ++ ++/* Need to override linux.h STARTFILE_SPEC, since it has crtbeginT.o in. */ ++#undef STARTFILE_SPEC ++#ifdef HAVE_LD_PIE ++#define STARTFILE_SPEC \ ++ "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}}\ ++ crti.o%s %{shared|pie:crtbeginS.o%s;:crtbegin.o%s}" ++#else ++#define STARTFILE_SPEC \ ++ "%{!shared: %{pg|p|profile:gcrt1.o%s;:crt1.o%s}}\ ++ crti.o%s %{shared|pie:crtbeginS.o%s;:crtbegin.o%s}" ++#endif ++ ++/* Similar to standard Linux, but adding -ffast-math support. */ ++#undef ENDFILE_SPEC ++#define ENDFILE_SPEC \ ++ "%{ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \ ++ %{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s" ++ ++/* Define this for shared library support because it isn't in the main ++ linux.h file. */ ++ ++#undef LINK_SPEC ++#define LINK_SPEC "\ ++ %{shared:-shared} \ ++ %{!shared: \ ++ %{!static: \ ++ %{rdynamic:-export-dynamic} \ ++ %{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.2}} \ ++ %{static:-static}}" ++ ++#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}" ++ ++#define JMP_BUF_SIZE 76 ++ ++/* Override linux.h LINK_EH_SPEC definition. ++ Signalize that because we have fde-glibc, we don't need all C shared libs ++ linked against -lgcc_s. */ ++#undef LINK_EH_SPEC ++#define LINK_EH_SPEC "" ++ ++#define MD_UNWIND_SUPPORT "config/ia64/linux-unwind.h" +diff -Naur gcc-4.1.2.orig/gcc/config/linux.h gcc-4.1.2/gcc/config/linux.h +--- gcc-4.1.2.orig/gcc/config/linux.h 2005-08-06 13:26:35.000000000 +0000 ++++ gcc-4.1.2/gcc/config/linux.h 2011-09-01 17:11:11.000000000 +0000 +@@ -104,3 +104,7 @@ + #define TARGET_C99_FUNCTIONS 1 + + #define TARGET_POSIX_IO ++ ++/* Remove /usr/include from the end of the include search path. */ ++#undef STANDARD_INCLUDE_DIR ++#define STANDARD_INCLUDE_DIR 0 +diff -Naur gcc-4.1.2.orig/gcc/config/m32r/linux.h gcc-4.1.2/gcc/config/m32r/linux.h +--- gcc-4.1.2.orig/gcc/config/m32r/linux.h 2005-07-08 10:00:15.000000000 +0000 ++++ gcc-4.1.2/gcc/config/m32r/linux.h 2011-09-01 17:11:11.000000000 +0000 +@@ -66,7 +66,7 @@ + %{!ibcs: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ ++ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \ + %{static:-static}}}" + #else + #define LINK_SPEC "%(link_cpu) -m m32relf_linux %{shared:-shared} \ +@@ -74,7 +74,7 @@ + %{!ibcs: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ ++ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \ + %{static:-static}}}" + #endif + +diff -Naur gcc-4.1.2.orig/gcc/config/m68k/linux.h gcc-4.1.2/gcc/config/m68k/linux.h +--- gcc-4.1.2.orig/gcc/config/m68k/linux.h 2005-06-25 01:22:41.000000000 +0000 ++++ gcc-4.1.2/gcc/config/m68k/linux.h 2011-09-01 17:11:11.000000000 +0000 +@@ -128,7 +128,7 @@ + %{!shared: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +- %{!dynamic-linker*:-dynamic-linker /lib/ld.so.1}} \ ++ %{!dynamic-linker*:-dynamic-linker /tools/lib/ld.so.1}} \ + %{static}}" + + /* For compatibility with linux/a.out */ +diff -Naur gcc-4.1.2.orig/gcc/config/mips/linux64.h gcc-4.1.2/gcc/config/mips/linux64.h +--- gcc-4.1.2.orig/gcc/config/mips/linux64.h 2005-06-25 01:22:41.000000000 +0000 ++++ gcc-4.1.2/gcc/config/mips/linux64.h 2011-09-01 17:11:11.000000000 +0000 +@@ -47,9 +47,9 @@ + %{!static: \ + %{rdynamic:-export-dynamic} \ + %{!dynamic-linker: \ +- %{mabi=n32: -dynamic-linker /lib32/ld.so.1} \ +- %{mabi=64: -dynamic-linker /lib64/ld.so.1} \ +- %{mabi=32: -dynamic-linker /lib/ld.so.1}}} \ ++ %{mabi=n32: -dynamic-linker /tools/lib32/ld.so.1} \ ++ %{mabi=64: -dynamic-linker /tools/lib64/ld.so.1} \ ++ %{mabi=32: -dynamic-linker /tools/lib/ld.so.1}}} \ + %{static:-static}}} \ + %{mabi=n32:-melf32%{EB:b}%{EL:l}tsmipn32} \ + %{mabi=64:-melf64%{EB:b}%{EL:l}tsmip} \ +diff -Naur gcc-4.1.2.orig/gcc/config/mips/linux.h gcc-4.1.2/gcc/config/mips/linux.h +--- gcc-4.1.2.orig/gcc/config/mips/linux.h 2006-12-17 13:57:31.000000000 +0000 ++++ gcc-4.1.2/gcc/config/mips/linux.h 2011-09-01 17:11:11.000000000 +0000 +@@ -112,7 +112,7 @@ + %{!ibcs: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ ++ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \ + %{static:-static}}}" + + #undef SUBTARGET_ASM_SPEC +diff -Naur gcc-4.1.2.orig/gcc/config/mn10300/linux.h gcc-4.1.2/gcc/config/mn10300/linux.h +--- gcc-4.1.2.orig/gcc/config/mn10300/linux.h 2005-06-25 01:22:41.000000000 +0000 ++++ gcc-4.1.2/gcc/config/mn10300/linux.h 2011-09-01 17:11:11.000000000 +0000 +@@ -37,7 +37,7 @@ + #define LINK_SPEC "%{mrelax:--relax} %{shared:-shared} \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ ++ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \ + %{static:-static}" + + #undef PROCESSOR_DEFAULT +diff -Naur gcc-4.1.2.orig/gcc/config/pa/pa-linux.h gcc-4.1.2/gcc/config/pa/pa-linux.h +--- gcc-4.1.2.orig/gcc/config/pa/pa-linux.h 2007-01-12 02:23:38.000000000 +0000 ++++ gcc-4.1.2/gcc/config/pa/pa-linux.h 2011-09-01 17:11:11.000000000 +0000 +@@ -55,7 +55,7 @@ + %{!shared: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ ++ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \ + %{static:-static}}" + + /* glibc's profiling functions don't need gcc to allocate counters. */ +diff -Naur gcc-4.1.2.orig/gcc/config/rs6000/linux64.h gcc-4.1.2/gcc/config/rs6000/linux64.h +--- gcc-4.1.2.orig/gcc/config/rs6000/linux64.h 2006-02-10 20:58:33.000000000 +0000 ++++ gcc-4.1.2/gcc/config/rs6000/linux64.h 2011-09-01 17:11:11.000000000 +0000 +@@ -339,11 +339,11 @@ + + #define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \ + %{rdynamic:-export-dynamic} \ +- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}" ++ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}}}" + + #define LINK_OS_LINUX_SPEC64 "-m elf64ppc %{!shared: %{!static: \ + %{rdynamic:-export-dynamic} \ +- %{!dynamic-linker:-dynamic-linker /lib64/ld64.so.1}}}" ++ %{!dynamic-linker:-dynamic-linker /tools/lib64/ld64.so.1}}}" + + #undef TOC_SECTION_ASM_OP + #define TOC_SECTION_ASM_OP \ +diff -Naur gcc-4.1.2.orig/gcc/config/rs6000/sysv4.h gcc-4.1.2/gcc/config/rs6000/sysv4.h +--- gcc-4.1.2.orig/gcc/config/rs6000/sysv4.h 2006-02-10 20:58:33.000000000 +0000 ++++ gcc-4.1.2/gcc/config/rs6000/sysv4.h 2011-09-01 17:11:11.000000000 +0000 +@@ -1041,7 +1041,7 @@ + + #define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \ + %{rdynamic:-export-dynamic} \ +- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}" ++ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}}}" + + #if defined(HAVE_LD_EH_FRAME_HDR) + # define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " +@@ -1072,7 +1072,7 @@ + + #define LINK_OS_GNU_SPEC "-m elf32ppclinux %{!shared: %{!static: \ + %{rdynamic:-export-dynamic} \ +- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}" ++ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}}}" + + #define CPP_OS_GNU_SPEC "-D__unix__ -D__gnu_hurd__ -D__GNU__ \ + %{!undef: \ +diff -Naur gcc-4.1.2.orig/gcc/config/s390/linux.h gcc-4.1.2/gcc/config/s390/linux.h +--- gcc-4.1.2.orig/gcc/config/s390/linux.h 2006-12-12 15:24:07.000000000 +0000 ++++ gcc-4.1.2/gcc/config/s390/linux.h 2011-09-01 17:11:11.000000000 +0000 +@@ -86,8 +86,8 @@ + %{!static: \ + %{rdynamic:-export-dynamic} \ + %{!dynamic-linker: \ +- %{m31:-dynamic-linker /lib/ld.so.1} \ +- %{m64:-dynamic-linker /lib/ld64.so.1}}}}" ++ %{m31:-dynamic-linker /tools/lib/ld.so.1} \ ++ %{m64:-dynamic-linker /tools/lib/ld64.so.1}}}}" + + #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}" + +diff -Naur gcc-4.1.2.orig/gcc/config/s390/linux.h.orig gcc-4.1.2/gcc/config/s390/linux.h.orig +--- gcc-4.1.2.orig/gcc/config/s390/linux.h.orig 1970-01-01 00:00:00.000000000 +0000 ++++ gcc-4.1.2/gcc/config/s390/linux.h.orig 2006-12-12 15:24:07.000000000 +0000 +@@ -0,0 +1,107 @@ ++/* Definitions for Linux for S/390. ++ Copyright (C) 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc. ++ Contributed by Hartmut Penner (hpenner@de.ibm.com) and ++ Ulrich Weigand (uweigand@de.ibm.com). ++ ++This file is part of GCC. ++ ++GCC is free software; you can redistribute it and/or modify it under ++the terms of the GNU General Public License as published by the Free ++Software Foundation; either version 2, or (at your option) any later ++version. ++ ++GCC is distributed in the hope that it will be useful, but WITHOUT ANY ++WARRANTY; without even the implied warranty of MERCHANTABILITY or ++FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++for more details. ++ ++You should have received a copy of the GNU General Public License ++along with GCC; see the file COPYING. If not, write to the Free ++Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ++02110-1301, USA. */ ++ ++#ifndef _LINUX_H ++#define _LINUX_H ++ ++/* Target specific version string. */ ++ ++#ifdef DEFAULT_TARGET_64BIT ++#undef TARGET_VERSION ++#define TARGET_VERSION fprintf (stderr, " (Linux for zSeries)"); ++#else ++#undef TARGET_VERSION ++#define TARGET_VERSION fprintf (stderr, " (Linux for S/390)"); ++#endif ++ ++ ++/* Target specific type definitions. */ ++ ++/* ??? Do we really want long as size_t on 31-bit? */ ++#undef SIZE_TYPE ++#define SIZE_TYPE (TARGET_64BIT ? "long unsigned int" : "long unsigned int") ++#undef PTRDIFF_TYPE ++#define PTRDIFF_TYPE (TARGET_64BIT ? "long int" : "int") ++ ++#undef WCHAR_TYPE ++#define WCHAR_TYPE "int" ++#undef WCHAR_TYPE_SIZE ++#define WCHAR_TYPE_SIZE 32 ++ ++ ++/* Target specific preprocessor settings. */ ++ ++#define TARGET_OS_CPP_BUILTINS() \ ++ do \ ++ { \ ++ LINUX_TARGET_OS_CPP_BUILTINS(); \ ++ if (flag_pic) \ ++ { \ ++ builtin_define ("__PIC__"); \ ++ builtin_define ("__pic__"); \ ++ } \ ++ } \ ++ while (0) ++ ++ ++/* Target specific assembler settings. */ ++ ++#undef ASM_SPEC ++#define ASM_SPEC "%{m31&m64}%{mesa&mzarch}%{march=*}" ++ ++ ++/* Target specific linker settings. */ ++ ++#ifdef DEFAULT_TARGET_64BIT ++#define MULTILIB_DEFAULTS { "m64" } ++#else ++#define MULTILIB_DEFAULTS { "m31" } ++#endif ++ ++#undef LINK_SPEC ++#define LINK_SPEC \ ++ "%{m31:-m elf_s390}%{m64:-m elf64_s390} \ ++ %{shared:-shared} \ ++ %{!shared: \ ++ %{static:-static} \ ++ %{!static: \ ++ %{rdynamic:-export-dynamic} \ ++ %{!dynamic-linker: \ ++ %{m31:-dynamic-linker /lib/ld.so.1} \ ++ %{m64:-dynamic-linker /lib/ld64.so.1}}}}" ++ ++#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}" ++ ++#define TARGET_ASM_FILE_END file_end_indicate_exec_stack ++ ++#define MD_UNWIND_SUPPORT "config/s390/linux-unwind.h" ++ ++#ifdef TARGET_LIBC_PROVIDES_SSP ++/* s390 glibc provides __stack_chk_guard in 0x14(tp), ++ s390x glibc provides it at 0x28(tp). */ ++#define TARGET_THREAD_SSP_OFFSET (TARGET_64BIT ? 0x28 : 0x14) ++#endif ++ ++/* Define if long doubles should be mangled as 'g'. */ ++#define TARGET_ALTERNATE_LONG_DOUBLE_MANGLING ++ ++#endif +diff -Naur gcc-4.1.2.orig/gcc/config/sh/linux.h gcc-4.1.2/gcc/config/sh/linux.h +--- gcc-4.1.2.orig/gcc/config/sh/linux.h 2005-06-25 01:22:41.000000000 +0000 ++++ gcc-4.1.2/gcc/config/sh/linux.h 2011-09-01 17:11:11.000000000 +0000 +@@ -60,7 +60,7 @@ + "%{shared:-shared} \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ ++ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \ + %{static:-static}" + + /* Output assembler code to STREAM to call the profiler. */ +diff -Naur gcc-4.1.2.orig/gcc/config/sparc/linux64.h gcc-4.1.2/gcc/config/sparc/linux64.h +--- gcc-4.1.2.orig/gcc/config/sparc/linux64.h 2006-02-11 08:38:51.000000000 +0000 ++++ gcc-4.1.2/gcc/config/sparc/linux64.h 2011-09-01 17:11:11.000000000 +0000 +@@ -162,21 +162,21 @@ + { "link_arch_default", LINK_ARCH_DEFAULT_SPEC }, \ + { "link_arch", LINK_ARCH_SPEC }, + +-#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \ ++#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/tools/lib %{shared:-shared} \ + %{!shared: \ + %{!ibcs: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ ++ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \ + %{static:-static}}} \ + " + +-#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,/usr/lib64 %{shared:-shared} \ ++#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,/tools/lib64 %{shared:-shared} \ + %{!shared: \ + %{!ibcs: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +- %{!dynamic-linker:-dynamic-linker /lib64/ld-linux.so.2}} \ ++ %{!dynamic-linker:-dynamic-linker /tools/lib64/ld-linux.so.2}} \ + %{static:-static}}} \ + " + +@@ -252,12 +252,12 @@ + #else /* !SPARC_BI_ARCH */ + + #undef LINK_SPEC +-#define LINK_SPEC "-m elf64_sparc -Y P,/usr/lib64 %{shared:-shared} \ ++#define LINK_SPEC "-m elf64_sparc -Y P,/tools/lib64 %{shared:-shared} \ + %{!shared: \ + %{!ibcs: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +- %{!dynamic-linker:-dynamic-linker /lib64/ld-linux.so.2}} \ ++ %{!dynamic-linker:-dynamic-linker /tools/lib64/ld-linux.so.2}} \ + %{static:-static}}} \ + %{mlittle-endian:-EL} \ + %{!mno-relax:%{!r:-relax}} \ +diff -Naur gcc-4.1.2.orig/gcc/config/sparc/linux.h gcc-4.1.2/gcc/config/sparc/linux.h +--- gcc-4.1.2.orig/gcc/config/sparc/linux.h 2006-02-11 08:38:51.000000000 +0000 ++++ gcc-4.1.2/gcc/config/sparc/linux.h 2011-09-01 17:11:11.000000000 +0000 +@@ -126,13 +126,13 @@ + /* If ELF is the default format, we should not use /lib/elf. */ + + #undef LINK_SPEC +-#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \ ++#define LINK_SPEC "-m elf32_sparc -Y P,/tools/lib %{shared:-shared} \ + %{!mno-relax:%{!r:-relax}} \ + %{!shared: \ + %{!ibcs: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ ++ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \ + %{static:-static}}}" + + /* The sun bundled assembler doesn't accept -Yd, (and neither does gas). +diff -Naur gcc-4.1.2.orig/gcc/config/xtensa/linux.h gcc-4.1.2/gcc/config/xtensa/linux.h +--- gcc-4.1.2.orig/gcc/config/xtensa/linux.h 2005-06-25 01:22:41.000000000 +0000 ++++ gcc-4.1.2/gcc/config/xtensa/linux.h 2011-09-01 17:11:11.000000000 +0000 +@@ -50,7 +50,7 @@ + %{!ibcs: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ ++ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \ + %{static:-static}}}" + + #undef LOCAL_LABEL_PREFIX diff --git a/src/patches/glibc-ports-avoid-using-asm-procinfo.patch b/src/patches/glibc-ports-avoid-using-asm-procinfo.patch new file mode 100644 index 0000000000..53a6d1b4d6 --- /dev/null +++ b/src/patches/glibc-ports-avoid-using-asm-procinfo.patch @@ -0,0 +1,340 @@ +# +# Submitted-By: Marc Kleine-Budde, 2006-11-22 +# Committed-By: Marc Kleine-Budde +# +# Error: +# +# try to compile glibc-ports with sanitized headers +# +# arm-v4t-linux-gnueabi-gcc ../ports/sysdeps/arm/eabi/setfpucw.c -c +#-std=gnu99 -O2 -Wall -Winline -Wwrite-strings -fmerge-all-constants +#-g -Wstrict-prototypes -Wno-uninitialized -D__NO_MATH_INLINES +#-D__LIBC_INTERNAL_MATH_INLINES -DNO_LONG_DOUBLE +#-D_Mlong_double_=double -I../include +#-I/home/mkl/pengutronix/ptxdist/build/OSELAS.Toolchain-trunk-headers/build-target/glibc-2.5-build/math +#-I/home/mkl/pengutronix/ptxdist/build/OSELAS.Toolchain-trunk-headers/build-target/glibc-2.5-build +#-I../ports/sysdeps/arm/elf +#-I../ports/sysdeps/unix/sysv/linux/arm/eabi/nptl +#-I../ports/sysdeps/unix/sysv/linux/arm/eabi +#-I../ports/sysdeps/unix/sysv/linux/arm/nptl +#-I../ports/sysdeps/unix/sysv/linux/arm +#-I../ports/sysdeps/unix/sysv/linux -I../nptl/sysdeps/unix/sysv/linux +#-I../nptl/sysdeps/pthread -I../sysdeps/pthread +#-I../sysdeps/unix/sysv/linux -I../sysdeps/gnu +#-I../sysdeps/unix/common -I../sysdeps/unix/mman +#-I../sysdeps/unix/inet -I../ports/sysdeps/unix/sysv +#-I../nptl/sysdeps/unix/sysv -I../sysdeps/unix/sysv +#-I../ports/sysdeps/unix/arm -I../ports/sysdeps/unix +#-I../nptl/sysdeps/unix -I../sysdeps/unix -I../sysdeps/posix +#-I../ports/sysdeps/arm/eabi -I../ports/sysdeps/arm/nptl +#-I../ports/sysdeps/arm -I../sysdeps/wordsize-32 +#-I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754/dbl-64 +#-I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic +#-I../ports -I../nptl -I.. -I../libio -I. -nostdinc -isystem +#/ptx/work/mkl/ptxdist/build/OSELAS.Toolchain-trunk-headers/install/arm-v4t-linux-gnueabi/gcc-4.1.1-glibc-2.5-linux-2.6.19-rc6-s/bin/../lib/gcc/arm-v4t-linux-gnueabi/4.1.1/include +#-isystem +#/home/mkl/pengutronix/ptxdist/build/OSELAS.Toolchain-trunk-headers/install/arm-v4t-linux-gnueabi/gcc-4.1.1-glibc-2.5-linux-2.6.19-rc6-s/sysroot-arm-v4t-linux-gnueabi/usr/include +#-D_LIBC_REENTRANT -include ../include/libc-symbols.h -o +#/home/mkl/pengutronix/ptxdist/build/OSELAS.Toolchain-trunk-headers/build-target/glibc-2.5-build/math/setfpucw.o +#-MD -MP -MF +#/home/mkl/pengutronix/ptxdist/build/OSELAS.Toolchain-trunk-headers/build-target/glibc-2.5-build/math/setfpucw.o.dt +#-MT +#/home/mkl/pengutronix/ptxdist/build/OSELAS.Toolchain-trunk-headers/build-target/glibc-2.5-build/math/setfpucw.o +# ../ports/sysdeps/arm/eabi/setfpucw.c:26:26: error: asm/procinfo.h: No such file or directory +# ../ports/sysdeps/arm/eabi/setfpucw.c: In function '__setfpucw': +# ../ports/sysdeps/arm/eabi/setfpucw.c:31: error: 'HWCAP_VFP' undeclared (first use in this function) +# ../ports/sysdeps/arm/eabi/setfpucw.c:31: error: (Each undeclared identifier is reported only once +# ../ports/sysdeps/arm/eabi/setfpucw.c:31: error: for each function it appears in.) +# +# Description: +# +# http://sourceware.org/ml/libc-ports/2006-10/msg00040.html +# +# State: +# +# added to glibc-ports on 10/31/2006 06:20 PM +# +Date: Tue, 24 Oct 2006 19:25:12 +0000 (UTC) +From: "Joseph S. Myers" +To: libc-ports@sourceware.org +Subject: Avoid using asm/procinfo.h + +I previously noted + that the +use of , a Linux-specific kernel header, in +sysdeps/arm/eabi, is an abstraction violation, and that in principle +all the files in sysdeps/arm/eabi should use sysdep.h not +asm/procinfo.h for HWCAP_VFP. + +The ARM kernel maintainers have now declared that +should not be used outside the kernel at all (and in particular that +headers_install is correct in not exporting it), and that these +definitions will move to a different kernel header. This gives a +concrete reason for making the change to use glibc's internal +definitions, which this patch does, thereby allowing glibc to build +with the exported headers. + +2006-10-24 Joseph S. Myers + + * sysdeps/arm/eabi/fclrexcpt.c: Include instead of + . Use HWCAP_ARM_VFP instead of HWCAP_VFP. + * sysdeps/arm/eabi/fedisblxcpt.c: Likewise. + * sysdeps/arm/eabi/feenablxcpt.c: Likewise. + * sysdeps/arm/eabi/fegetenv.c: Likewise. + * sysdeps/arm/eabi/fegetexcept.c: Likewise. + * sysdeps/arm/eabi/fegetround.c: Likewise. + * sysdeps/arm/eabi/feholdexcpt.c: Likewise. + * sysdeps/arm/eabi/fesetenv.c: Likewise. + * sysdeps/arm/eabi/fesetround.c: Likewise. + * sysdeps/arm/eabi/fraiseexcpt.c: Likewise. + * sysdeps/arm/eabi/fsetexcptflg.c: Likewise. + * sysdeps/arm/eabi/ftestexcept.c: Likewise. + * sysdeps/arm/eabi/setfpucw.c: Likewise. + +Index: glibc-ports-2.5/sysdeps/arm/eabi/fclrexcpt.c +=================================================================== +--- glibc-ports-2.5.orig/sysdeps/arm/eabi/fclrexcpt.c ++++ glibc-ports-2.5/sysdeps/arm/eabi/fclrexcpt.c +@@ -23,12 +23,12 @@ + #include + #include + #include +-#include ++#include + + int + __feclearexcept (int excepts) + { +- if (GLRO (dl_hwcap) & HWCAP_VFP) ++ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) + { + unsigned long int temp; + +Index: glibc-ports-2.5/sysdeps/arm/eabi/fedisblxcpt.c +=================================================================== +--- glibc-ports-2.5.orig/sysdeps/arm/eabi/fedisblxcpt.c ++++ glibc-ports-2.5/sysdeps/arm/eabi/fedisblxcpt.c +@@ -24,12 +24,12 @@ + #include + #include + #include +-#include ++#include + + int + fedisableexcept (int excepts) + { +- if (GLRO (dl_hwcap) & HWCAP_VFP) ++ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) + { + unsigned long int new_exc, old_exc; + +Index: glibc-ports-2.5/sysdeps/arm/eabi/feenablxcpt.c +=================================================================== +--- glibc-ports-2.5.orig/sysdeps/arm/eabi/feenablxcpt.c ++++ glibc-ports-2.5/sysdeps/arm/eabi/feenablxcpt.c +@@ -24,12 +24,12 @@ + #include + #include + #include +-#include ++#include + + int + feenableexcept (int excepts) + { +- if (GLRO (dl_hwcap) & HWCAP_VFP) ++ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) + { + unsigned long int new_exc, old_exc; + +Index: glibc-ports-2.5/sysdeps/arm/eabi/fegetenv.c +=================================================================== +--- glibc-ports-2.5.orig/sysdeps/arm/eabi/fegetenv.c ++++ glibc-ports-2.5/sysdeps/arm/eabi/fegetenv.c +@@ -23,12 +23,12 @@ + #include + #include + #include +-#include ++#include + + int + __fegetenv (fenv_t *envp) + { +- if (GLRO (dl_hwcap) & HWCAP_VFP) ++ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) + { + unsigned long int temp; + _FPU_GETCW (temp); +Index: glibc-ports-2.5/sysdeps/arm/eabi/fegetexcept.c +=================================================================== +--- glibc-ports-2.5.orig/sysdeps/arm/eabi/fegetexcept.c ++++ glibc-ports-2.5/sysdeps/arm/eabi/fegetexcept.c +@@ -24,12 +24,12 @@ + #include + #include + #include +-#include ++#include + + int + fegetexcept (void) + { +- if (GLRO (dl_hwcap) & HWCAP_VFP) ++ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) + { + unsigned long temp; + +Index: glibc-ports-2.5/sysdeps/arm/eabi/fegetround.c +=================================================================== +--- glibc-ports-2.5.orig/sysdeps/arm/eabi/fegetround.c ++++ glibc-ports-2.5/sysdeps/arm/eabi/fegetround.c +@@ -23,12 +23,12 @@ + #include + #include + #include +-#include ++#include + + int + fegetround (void) + { +- if (GLRO (dl_hwcap) & HWCAP_VFP) ++ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) + { + unsigned int temp; + +Index: glibc-ports-2.5/sysdeps/arm/eabi/feholdexcpt.c +=================================================================== +--- glibc-ports-2.5.orig/sysdeps/arm/eabi/feholdexcpt.c ++++ glibc-ports-2.5/sysdeps/arm/eabi/feholdexcpt.c +@@ -23,12 +23,12 @@ + #include + #include + #include +-#include ++#include + + int + feholdexcept (fenv_t *envp) + { +- if (GLRO (dl_hwcap) & HWCAP_VFP) ++ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) + { + unsigned long int temp; + +Index: glibc-ports-2.5/sysdeps/arm/eabi/fesetenv.c +=================================================================== +--- glibc-ports-2.5.orig/sysdeps/arm/eabi/fesetenv.c ++++ glibc-ports-2.5/sysdeps/arm/eabi/fesetenv.c +@@ -23,12 +23,12 @@ + #include + #include + #include +-#include ++#include + + int + __fesetenv (const fenv_t *envp) + { +- if (GLRO (dl_hwcap) & HWCAP_VFP) ++ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) + { + unsigned int temp; + +Index: glibc-ports-2.5/sysdeps/arm/eabi/fesetround.c +=================================================================== +--- glibc-ports-2.5.orig/sysdeps/arm/eabi/fesetround.c ++++ glibc-ports-2.5/sysdeps/arm/eabi/fesetround.c +@@ -23,12 +23,12 @@ + #include + #include + #include +-#include ++#include + + int + fesetround (int round) + { +- if (GLRO (dl_hwcap) & HWCAP_VFP) ++ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) + { + fpu_control_t temp; + +Index: glibc-ports-2.5/sysdeps/arm/eabi/fraiseexcpt.c +=================================================================== +--- glibc-ports-2.5.orig/sysdeps/arm/eabi/fraiseexcpt.c ++++ glibc-ports-2.5/sysdeps/arm/eabi/fraiseexcpt.c +@@ -24,12 +24,12 @@ + #include + #include + #include +-#include ++#include + + int + feraiseexcept (int excepts) + { +- if (GLRO (dl_hwcap) & HWCAP_VFP) ++ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) + { + int fpscr; + const float fp_zero = 0.0, fp_one = 1.0, fp_max = FLT_MAX, +Index: glibc-ports-2.5/sysdeps/arm/eabi/fsetexcptflg.c +=================================================================== +--- glibc-ports-2.5.orig/sysdeps/arm/eabi/fsetexcptflg.c ++++ glibc-ports-2.5/sysdeps/arm/eabi/fsetexcptflg.c +@@ -24,12 +24,12 @@ + #include + #include + #include +-#include ++#include + + int + __fesetexceptflag (const fexcept_t *flagp, int excepts) + { +- if (GLRO (dl_hwcap) & HWCAP_VFP) ++ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) + { + fexcept_t temp; + +Index: glibc-ports-2.5/sysdeps/arm/eabi/ftestexcept.c +=================================================================== +--- glibc-ports-2.5.orig/sysdeps/arm/eabi/ftestexcept.c ++++ glibc-ports-2.5/sysdeps/arm/eabi/ftestexcept.c +@@ -23,12 +23,12 @@ + #include + #include + #include +-#include ++#include + + int + fetestexcept (int excepts) + { +- if (GLRO (dl_hwcap) & HWCAP_VFP) ++ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) + { + fexcept_t temp; + +Index: glibc-ports-2.5/sysdeps/arm/eabi/setfpucw.c +=================================================================== +--- glibc-ports-2.5.orig/sysdeps/arm/eabi/setfpucw.c ++++ glibc-ports-2.5/sysdeps/arm/eabi/setfpucw.c +@@ -23,12 +23,12 @@ + #include + #include + #include +-#include ++#include + + void + __setfpucw (fpu_control_t set) + { +- if (GLRO (dl_hwcap) & HWCAP_VFP) ++ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) + { + fpu_control_t cw; + diff --git a/src/patches/util-linux-2.12r-umount-no-special.patch b/src/patches/util-linux-2.12r-umount-no-special.patch new file mode 100644 index 0000000000..d79598fc84 --- /dev/null +++ b/src/patches/util-linux-2.12r-umount-no-special.patch @@ -0,0 +1,11 @@ +--- util-linux-2.12r.old/mount/umount.c ++++ util-linux-2.12r/mount/umount.c +@@ -31,7 +31,7 @@ + #include + #endif + +-#if defined(MNT_FORCE) && !defined(__sparc__) && !defined(__arm__) ++#if defined(MNT_FORCE) + /* Interesting ... it seems libc knows about MNT_FORCE and presumably + about umount2 as well -- need not do anything */ + #else /* MNT_FORCE */ diff --git a/tools/make-functions b/tools/make-functions index 4ee4344fe8..1360808531 100644 --- a/tools/make-functions +++ b/tools/make-functions @@ -224,6 +224,14 @@ if [ 'x86_64' = $MACHINE -o 'i686' = $MACHINE -o 'i586' = $MACHINE ]; then CXXFLAGS="-O2 -march=i586 -pipe -fomit-frame-pointer" C2FLAGS="-O2 -march=i586 -mtune=i586 -pipe -fomit-frame-pointer" CXX2FLAGS="-O2 -march=i586 -mtune=i586 -pipe -fomit-frame-pointer" +elif [ 'armv5tejl' = $MACHINE -o 'armv5tel' = $MACHINE ]; then + echo "`date -u '+%b %e %T'`: Machine is ARM (or equivalent)" >> $LOGFILE + MACHINE=arm + BUILDTARGET=arm-unknown-linux-gnueabi + CFLAGS="-O2 -march=armv5te -fomit-frame-pointer -pipe" + CXXFLAGS="$CFLAGS" + C2FLAGS="$CFLAGS" + CXX2FLAGS="$CXXFLAGS" else echo "`date -u '+%b %e %T'`: Can't determine your architecture - $MACHINE" >> $LOGFILE exit 1 @@ -319,12 +327,14 @@ lfsmakecommoncheck() echo -ne "`date -u '+%b %e %T'`: Building $* " >> $LOGFILE - cd $BASEDIR/lfs && make -s -f $* LFS_BASEDIR=$BASEDIR MESSAGE="$1\t " download >> $LOGFILE 2>&1 + cd $BASEDIR/lfs && make -s -f $* LFS_BASEDIR=$BASEDIR MACHINE=$MACHINE \ + MESSAGE="$1\t " download >> $LOGFILE 2>&1 if [ $? -ne 0 ]; then exiterror "Download error in $1" fi - cd $BASEDIR/lfs && make -s -f $* LFS_BASEDIR=$BASEDIR MESSAGE="$1\t md5sum" md5 >> $LOGFILE 2>&1 + cd $BASEDIR/lfs && make -s -f $* LFS_BASEDIR=$BASEDIR MACHINE=$MACHINE \ + MESSAGE="$1\t md5sum" md5 >> $LOGFILE 2>&1 if [ $? -ne 0 ]; then exiterror "md5sum error in $1, check file in cache or signature" fi -- 2.39.2