toolchain: gcc: Update to 4.4.7.

This commit is contained in:
Michael Tremer
2012-08-11 17:52:06 -04:00
parent 35a8f5f0a5
commit 82b312a9d2
2 changed files with 122 additions and 61 deletions

150
lfs/gcc
View File

@@ -24,7 +24,10 @@
include Config include Config
VER = 4.1.2 VER = 4.4.7
GMP_VER = 5.0.5
MPFR_VER = 2.4.2
THISAPP = gcc-$(VER) THISAPP = gcc-$(VER)
DL_FILE = $(THISAPP).tar.bz2 DL_FILE = $(THISAPP).tar.bz2
@@ -48,24 +51,43 @@ ifeq "$(ROOT)" ""
else else
ifeq "$(PASS)" "1" ifeq "$(PASS)" "1"
TARGET = $(DIR_INFO)/$(THISAPP)-tools1 TARGET = $(DIR_INFO)/$(THISAPP)-tools1
EXTRA_CONFIG = --prefix=/tools \ EXTRA_CONFIG = \
--with-local-prefix=/tools \ --target=$(CROSSTARGET) \
--disable-nls \ --prefix=/tools \
--enable-shared \ --disable-nls \
--enable-languages=c \ --disable-shared \
--disable-bootstrap --disable-decimal-float \
--disable-threads \
--disable-libmudflap \
--disable-libssp \
--disable-libgomp \
--disable-libquadmath \
--with-newlib \
--without-headers \
--without-ppl \
--without-cloog \
--enable-languages=c
EXTRA_MAKE = EXTRA_MAKE =
EXTRA_INSTALL = EXTRA_INSTALL =
else else
TARGET = $(DIR_INFO)/$(THISAPP)-tools2 TARGET = $(DIR_INFO)/$(THISAPP)-tools2
EXTRA_CONFIG = --prefix=/tools \ EXTRA_ENV = \
--with-local-prefix=/tools \ CC="$(CROSSTARGET)-gcc -B/tools/lib/" \
--enable-clocale=gnu \ AR="$(CROSSTARGET)-ar" \
--enable-shared \ RANLIB="$(CROSSTARGET)-ranlib"
--enable-threads=posix \ EXTRA_CONFIG = \
--enable-__cxa_atexit \ --host=$(BUILDTARGET) \
--enable-languages=c,c++ \ --build=$(BUILDTARGET) \
--disable-libstdcxx-pch --target=$(BUILDTARGET) \
--prefix=/tools \
--with-local-prefix=/tools \
--enable-clocale=gnu \
--enable-shared \
--enable-threads=posix \
--enable-__cxa_atexit \
--enable-languages=c,c++ \
--disable-libstdcxx-pch \
--disable-bootstrap
EXTRA_MAKE = EXTRA_MAKE =
EXTRA_INSTALL = EXTRA_INSTALL =
endif endif
@@ -73,21 +95,7 @@ endif
ifeq "$(MACHINE_TYPE)" "arm" ifeq "$(MACHINE_TYPE)" "arm"
EXTRA_CONFIG += \ EXTRA_CONFIG += \
--build=$(BUILDTARGET) \ --with-float=soft
--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 endif
export XCFLAGS = $(CFLAGS) export XCFLAGS = $(CFLAGS)
@@ -96,11 +104,18 @@ export TCFLAGS = $(CFLAGS)
############################################################################### ###############################################################################
# Top-level Rules # Top-level Rules
############################################################################### ###############################################################################
objects = $(DL_FILE)
objects = $(DL_FILE) \
gmp-$(GMP_VER).tar.bz2 \
mpfr-$(MPFR_VER).tar.bz2
$(DL_FILE) = $(DL_FROM)/$(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
gmp-$(GMP_VER).tar.bz2 = $(DL_FROM)/gmp-$(GMP_VER).tar.bz2
mpfr-$(MPFR_VER).tar.bz2 = $(DL_FROM)/mpfr-$(MPFR_VER).tar.bz2
$(DL_FILE)_MD5 = a4a3eb15c96030906d8494959eeda23c $(DL_FILE)_MD5 = 295709feb4441b04e87dea3f1bab4281
gmp-$(GMP_VER).tar.bz2_MD5 = 041487d25e9c230b0c42b106361055fe
mpfr-$(MPFR_VER).tar.bz2_MD5 = 89e59fe665e2b3ad44a6789f40b059a0
install : $(TARGET) install : $(TARGET)
@@ -130,42 +145,55 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
@$(PREBUILD) @$(PREBUILD)
@rm -rf $(DIR_APP) $(DIR_SRC)/gcc-build && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) @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 @mkdir $(DIR_SRC)/gcc-build
cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/gcc-4.1.2-gcc_eh.patch ifneq "$(ROOT)" ""
cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/gcc-4.1.2-arm-linux-soft-float.patch # Build gmp and mpfr internally in toolchain.
cd $(DIR_APP) && tar xfa $(DIR_DL)/gmp-$(GMP_VER).tar.bz2
cd $(DIR_APP) && mv -v gmp-$(GMP_VER) gmp
cd $(DIR_APP) && tar xfa $(DIR_DL)/mpfr-$(MPFR_VER).tar.bz2
cd $(DIR_APP) && mv -v mpfr-$(MPFR_VER) mpfr
ifeq "$(ROOT)" "" ifeq "$(PASS)" "1"
cd $(DIR_APP) && sed -i 's/install_to_$$(INSTALL_DEST) //' libiberty/Makefile.in # GCC does not detect stack protection correctly, which causes problems
cd $(DIR_APP) && sed -i 's/^XCFLAGS =$$/& -fomit-frame-pointer/' gcc/Makefile.in # for the build of libresolv_pic.a.
cd $(DIR_APP) && sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in cd $(DIR_APP) && sed -i '/k prot/agcc_cv_libc_provides_ssp=yes' gcc/configure
cd $(DIR_APP) && sed -i 's/@have_mktemp_command@/yes/' gcc/gccbug.in endif
cd $(DIR_SRC)/gcc-build && $(DIR_APP)/configure $(EXTRA_CONFIG) ifeq "$(PASS)" "2"
cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/gcc-4.4.3-startfiles_fix-1.patch
cd $(DIR_APP) && sed -i gcc/Makefile.in \
-e 's@\./fixinc\.sh@-c true@' \
-e 's/^T_CFLAGS =$$/& -fomit-frame-pointer/'
for file in $$(find $(DIR_APP)/gcc/config -name linux64.h -o -name linux.h \
-o -name sysv4.h -o -name linux-eabi.h -o -name linux-elf.h); do \
echo "Processing $${file}..."; \
sed -i $${file} \
-e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@g' \
-e 's@/usr@/tools@g'; \
echo '#undef STANDARD_INCLUDE_DIR' >> $${file}; \
echo '#define STANDARD_INCLUDE_DIR 0' >> $${file}; \
echo '#define STANDARD_STARTFILE_PREFIX_1 ""' >> $${file}; \
echo '#define STANDARD_STARTFILE_PREFIX_2 ""' >> $${file}; \
done
endif
endif
# The actual build.
cd $(DIR_SRC)/gcc-build && \
$(EXTRA_ENV) \
$(DIR_APP)/configure \
$(EXTRA_CONFIG)
cd $(DIR_SRC)/gcc-build && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_SRC)/gcc-build && make $(MAKETUNING) $(EXTRA_MAKE)
cd $(DIR_SRC)/gcc-build && make $(EXTRA_INSTALL) install cd $(DIR_SRC)/gcc-build && make $(EXTRA_INSTALL) install
ln -sfv ../usr/bin/cpp /lib
ln -sfv gcc /usr/bin/cc ifneq "$(ROOT)" ""
ifeq "$(PASS)" "1"
ln -svf libgcc.a $$(/tools/bin/$(CROSSTARGET)-gcc -print-libgcc-file-name | sed 's/libgcc/&_eh/')
else else
ifeq "$(PASS)" "1" ln -svf gcc /tools/bin/cc
cd $(DIR_SRC)/gcc-build && $(DIR_APP)/configure $(EXTRA_CONFIG)
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
cd $(DIR_APP) && cp -v gcc/Makefile.in{,.tmp}
cd $(DIR_APP) && sed 's/^XCFLAGS =$\/& -fomit-frame-pointer/' gcc/Makefile.in.tmp \
> gcc/Makefile.in
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-specs-1.patch
cd $(DIR_SRC)/gcc-build && $(DIR_APP)/configure $(EXTRA_CONFIG)
cd $(DIR_SRC)/gcc-build && make $(MAKETUNING) $(EXTRA_MAKE)
cd $(DIR_SRC)/gcc-build && make $(EXTRA_INSTALL) install
endif endif
endif endif
@rm -rf $(DIR_APP) $(DIR_SRC)/gcc-build @rm -rf $(DIR_APP) $(DIR_SRC)/gcc-build

View File

@@ -0,0 +1,33 @@
Submitted By: Jeremy Huntwork (jhuntwork AT linuxfromscratch DOT org)
Date: 2008-12-05
Initial Package Version: 4.3.2
Upstream Status: See below.
Origin: DIY Linux, See below.
Description: Original patch follows:
# DIY Linux Patch
Date: 2008-09-09
Author: Refer Origin.
Origin: Partial revert of http://gcc.gnu.org/ml/gcc-cvs/2006-11/msg00416.html
Maker: Greg Schafer <gschafer@zip.com.au>
Upstream Status: Not applicable. Tweak only for Temptools phase GCC-Pass2.
Description: Partially revert GCC driver to pre-GCC-4.3 state to allow startfiles to be
found in $prefix when GCC is configured for a non-standard prefix eg: /temptools. Full
background info in thread starting here: http://gcc.gnu.org/ml/gcc/2008-03/msg00095.html
and GCC bugzilla here: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35532
diff -Naur gcc-4.3.0-RC-20080222.orig/gcc/gcc.c gcc-4.3.0-RC-20080222/gcc/gcc.c
--- gcc-4.3.0-RC-20080222.orig/gcc/gcc.c 2008-01-24 18:57:12.000000000 +0000
+++ gcc-4.3.0-RC-20080222/gcc/gcc.c 2008-03-02 06:07:36.000000000 +0000
@@ -6370,6 +6370,11 @@
machine_suffix,
standard_startfile_prefix, NULL),
NULL, PREFIX_PRIORITY_LAST, 0, 1);
+ add_prefix (&startfile_prefixes,
+ concat (standard_exec_prefix,
+ machine_suffix,
+ standard_startfile_prefix, NULL),
+ NULL, PREFIX_PRIORITY_LAST, 0, 1);
}
/* Sysrooted prefixes are relocated because target_system_root is