mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-09 18:45:54 +02:00
toolchain: gcc: Update to 4.4.7.
This commit is contained in:
150
lfs/gcc
150
lfs/gcc
@@ -24,7 +24,10 @@
|
||||
|
||||
include Config
|
||||
|
||||
VER = 4.1.2
|
||||
VER = 4.4.7
|
||||
|
||||
GMP_VER = 5.0.5
|
||||
MPFR_VER = 2.4.2
|
||||
|
||||
THISAPP = gcc-$(VER)
|
||||
DL_FILE = $(THISAPP).tar.bz2
|
||||
@@ -48,24 +51,43 @@ ifeq "$(ROOT)" ""
|
||||
else
|
||||
ifeq "$(PASS)" "1"
|
||||
TARGET = $(DIR_INFO)/$(THISAPP)-tools1
|
||||
EXTRA_CONFIG = --prefix=/tools \
|
||||
--with-local-prefix=/tools \
|
||||
--disable-nls \
|
||||
--enable-shared \
|
||||
--enable-languages=c \
|
||||
--disable-bootstrap
|
||||
EXTRA_CONFIG = \
|
||||
--target=$(CROSSTARGET) \
|
||||
--prefix=/tools \
|
||||
--disable-nls \
|
||||
--disable-shared \
|
||||
--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_INSTALL =
|
||||
else
|
||||
TARGET = $(DIR_INFO)/$(THISAPP)-tools2
|
||||
EXTRA_CONFIG = --prefix=/tools \
|
||||
--with-local-prefix=/tools \
|
||||
--enable-clocale=gnu \
|
||||
--enable-shared \
|
||||
--enable-threads=posix \
|
||||
--enable-__cxa_atexit \
|
||||
--enable-languages=c,c++ \
|
||||
--disable-libstdcxx-pch
|
||||
EXTRA_ENV = \
|
||||
CC="$(CROSSTARGET)-gcc -B/tools/lib/" \
|
||||
AR="$(CROSSTARGET)-ar" \
|
||||
RANLIB="$(CROSSTARGET)-ranlib"
|
||||
EXTRA_CONFIG = \
|
||||
--host=$(BUILDTARGET) \
|
||||
--build=$(BUILDTARGET) \
|
||||
--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_INSTALL =
|
||||
endif
|
||||
@@ -73,21 +95,7 @@ endif
|
||||
|
||||
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)
|
||||
--with-float=soft
|
||||
endif
|
||||
|
||||
export XCFLAGS = $(CFLAGS)
|
||||
@@ -96,11 +104,18 @@ export TCFLAGS = $(CFLAGS)
|
||||
###############################################################################
|
||||
# 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)
|
||||
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)
|
||||
|
||||
@@ -130,42 +145,55 @@ $(subst %,%_MD5,$(objects)) :
|
||||
$(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
|
||||
ifneq "$(ROOT)" ""
|
||||
# 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)" ""
|
||||
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
|
||||
cd $(DIR_APP) && sed -i 's/@have_mktemp_command@/yes/' gcc/gccbug.in
|
||||
ifeq "$(PASS)" "1"
|
||||
# GCC does not detect stack protection correctly, which causes problems
|
||||
# for the build of libresolv_pic.a.
|
||||
cd $(DIR_APP) && sed -i '/k prot/agcc_cv_libc_provides_ssp=yes' gcc/configure
|
||||
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 $(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
|
||||
ifeq "$(PASS)" "1"
|
||||
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
|
||||
ln -svf gcc /tools/bin/cc
|
||||
endif
|
||||
endif
|
||||
@rm -rf $(DIR_APP) $(DIR_SRC)/gcc-build
|
||||
|
||||
33
src/patches/gcc-4.4.3-startfiles_fix-1.patch
Normal file
33
src/patches/gcc-4.4.3-startfiles_fix-1.patch
Normal 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
|
||||
Reference in New Issue
Block a user