From 1311fe88ef53309942180e2ef9b6031d2a0edcf7 Mon Sep 17 00:00:00 2001 From: gobo72 Date: Sun, 31 Oct 2010 21:34:36 +0000 Subject: [PATCH] Upgraded to gcc-4.5.1 --- packages-list | 19 ++++++++++-------- stage0/cis-binutils | 17 ++++++++++++----- stage0/cis-eglibc | 8 ++++++-- stage0/cis-gcc-common | 37 ++++++++++++++++++++++++++++++++++++ stage0/cis-gcc-pass1 | 36 +++-------------------------------- stage0/cis-gcc-pass2 | 36 +++-------------------------------- stage0/install-1 | 7 +++++++ stage0/packages-update | 5 +++-- stage1/install-linux-minimal | 19 +++++------------- stage2/cis-kernel | 21 ++++++-------------- sysinfos | 4 +--- 11 files changed, 94 insertions(+), 115 deletions(-) create mode 100755 stage0/cis-gcc-common diff --git a/packages-list b/packages-list index b345995..ad511bb 100644 --- a/packages-list +++ b/packages-list @@ -25,7 +25,7 @@ BASH="bash-4.0" BC="bc-1.06" BISON="bison-2.4.1" BIND="bind-9.6.1-P3" -BINUTILS="binutils-2.20" +BINUTILS="binutils-2.20.1" ARM_BINUTILS=${BINUTILS} AVR_BINUTILS=${BINUTILS} BRIDGE_UTILS="bridge-utils-1.4" @@ -37,7 +37,7 @@ CDRTOOLS="cdrtools-2.01" CDRDAO="cdrdao-1.2.2" CKERMIT="ckermit-8.0.211" CLAMAV="clamav-0.93.3" -CLOOG_PPL="cloog-ppl-0.15.7" +CLOOG_PPL="cloog-ppl-0.15.9" CONSOLEKIT="ConsoleKit-0.4.1" COREUTILS="coreutils-7.6" CPIO="cpio-2.9" @@ -69,8 +69,8 @@ E2FSPROGS="e2fsprogs-1.41.9" EASYTAG="easytag-2.1" ED="ed-1.4" EGGDBUS="eggdbus-0.6" -EGLIBC="eglibc-2.10.2-20100305-r9381" -EGLIBC_PORTS="eglibc-ports-2.10.2-20100305-r9381" +EGLIBC="eglibc-2.12-20100725-r11059" +EGLIBC_PORTS="eglibc-ports-2.12-20100725-r11059" UCLIBC="uClibc-0.9.30.1" EMACS="emacs-23.1" ESOUND="esound-0.2.37" @@ -80,7 +80,7 @@ FCRON="fcron-3.0.0" FETCHMAIL="fetchmail-6.3.12" FFMPEG="ffmpeg-svn-20539" FIREFOX="firefox-3.6.source" -FILE_PKG="file-5.03" +FILE_PKG="file-5.04" FINDUTILS="findutils-4.4.2" FLAC="flac-1.2.1" FLEX="flex-2.5.35" @@ -91,7 +91,9 @@ FUSE="fuse-2.8.3" GAWK="gawk-3.1.7" GC="gc6.8" -GCC="gcc-4.4.2" +GCC="gcc-4.5.1" +# Specify bug-fixing patches manually +#GCC_PATCHES="branch_update-1" GDB="gdb-6.4" GDBM="gdbm-1.8.3" GIT="git-1.6.6.1" @@ -182,7 +184,7 @@ GNOME_VOLUME_MANAGER="gnome-volume-manager-2.17.0" GNOME_SOUND_JUICER="sound-juicer-2.16.4" GNOME_TOTEM="totem-2.28.1" GDM="gdm-2.28.1" -GMP="gmp-4.3.1" +GMP="gmp-5.0.1" GNOME_MOUNT="gnome-mount-0.6" GNUTLS="gnutls-2.8.5" GOBJECT_INSTROSPECTION="gobject-introspection-0.6.5" @@ -299,7 +301,8 @@ MFOUR="m4-1.4.13" MILTER_GREYLIST="milter-greylist-4.0" MILTER_SPF="smf-spf-2.0.1" MODULE_INIT_TOOLS="module-init-tools-3.11.1" -MPFR="mpfr-2.4.2" +MPC="mpc-0.8.2" +MPFR="mpfr-3.0.0" MUTT="mutt-1.5.20" MYSQL="mysql-5.1.42" diff --git a/stage0/cis-binutils b/stage0/cis-binutils index ab33892..336b1ac 100755 --- a/stage0/cis-binutils +++ b/stage0/cis-binutils @@ -17,15 +17,22 @@ case "${HVL_TARGET}" in esac # --prefix=/cross-tools -# This tells the configure script to prepare to install the package in the /cross-tools directory. +# This tells the configure script to prepare to install the package in the +# /cross-tools directory. # --host=${CLFS_HOST} -# When used with --target, this creates a cross-architecture executable that creates files for ${CLFS_TARGET} but runs on ${CLFS_HOST}. +# When used with --target, this creates a cross-architecture executable +# that creates files for ${CLFS_TARGET} but runs on ${CLFS_HOST}. # --target=${CLFS_TARGET} -# When used with --host, this creates a cross-architecture executable that creates files for ${CLFS_TARGET} but runs on ${CLFS_HOST}. +# When used with --host, this creates a cross-architecture executable that +# creates files for ${CLFS_TARGET} but runs on ${CLFS_HOST}. # --with-lib-path=/tools/lib -# This tells the configure script to specify the library search path during the compilation of Binutils, resulting in /tools/lib being passed to the linker. This prevents the linker from searching through library directories on the host. +# This tells the configure script to specify the library search path during +# the compilation of Binutils, resulting in /tools/lib being passed to the +# linker. This prevents the linker from searching through library +# directories on the host. # --disable-nls -# This disables internationalization as i18n is not needed for the cross-compile tools. +# This disables internationalization as i18n is not needed for the +# cross-compile tools. # --enable-shared # Enable the creation of the shared libraries. # --disable-multilib diff --git a/stage0/cis-eglibc b/stage0/cis-eglibc index 6172ee0..0591177 100755 --- a/stage0/cis-eglibc +++ b/stage0/cis-eglibc @@ -9,13 +9,16 @@ source ../packages-list case "${HVL_TARGET}" in "x86" | "x86_64") # Manually apply patch - apply_patch ${1}-rpath.patch ${1} + #apply_patch ${1}-rpath.patch ${1} ;; esac case "${HVL_TARGET}" in "x86") - TMP_CFLAGS="-march=$(cut -d- -f1 <<< ${CLFS_TARGET}) -mtune=generic -g -O2" + TMP_CFLAGS="-march=$(cut -d- -f1 <<< ${CLFS_TARGET}) -mtune=native -g -O2" + ;; + "x86_64") + TMP_CFLAGS="-mtune=native -g -O2" ;; esac @@ -33,6 +36,7 @@ cat > config.cache << "EOF" libc_cv_forced_unwind=yes libc_cv_c_cleanup=yes libc_cv_gnu89_inline=yes +libc_cv_ssp=no EOF # Configure options: diff --git a/stage0/cis-gcc-common b/stage0/cis-gcc-common new file mode 100755 index 0000000..0e870b2 --- /dev/null +++ b/stage0/cis-gcc-common @@ -0,0 +1,37 @@ +#!/bin/bash + +# Manually applying patches if specified +if [ -n "${GCC_PATCHES}" ]; then + for p in ${GCC_PATCHES}; do + apply_patch ${1}-${p}.patch ${1} + done +fi + +case "${HVL_TARGET}" in + *) + TARGET_CONFIGURE_OPTS="--with-ppl=/cross-tools \ + --with-cloog=/cross-tools \ + --disable-multilib" + ;; +esac + +case "${HVL_TARGET}" in + "x86") + apply_patch ${1}-specs-1.patch ${1} + ;; + "x86_64") + apply_patch ${1}-pure64_specs-1.patch ${1} + ;; +esac + +cd ${LFS_TMP}/${1} + +# Change the StartFile Spec to point to the correct library location: +echo -en '#undef STANDARD_INCLUDE_DIR\n#define STANDARD_INCLUDE_DIR "/tools/include/"\n\n' >> gcc/config/linux.h +echo -en '\n#undef STANDARD_STARTFILE_PREFIX_1\n#define STANDARD_STARTFILE_PREFIX_1 "/tools/lib/"\n' >> gcc/config/linux.h +echo -en '\n#undef STANDARD_STARTFILE_PREFIX_2\n#define STANDARD_STARTFILE_PREFIX_2 ""\n' >> gcc/config/linux.h + +# Alter gcc's C preprocessor's default include search path to use /tools only: +cp -v gcc/Makefile.in{,.orig} +sed -e "s@\(^CROSS_SYSTEM_HEADER_DIR =\).*@\1 /tools/include@g" \ + gcc/Makefile.in.orig > gcc/Makefile.in diff --git a/stage0/cis-gcc-pass1 b/stage0/cis-gcc-pass1 index 4e665f8..961f61e 100755 --- a/stage0/cis-gcc-pass1 +++ b/stage0/cis-gcc-pass1 @@ -6,43 +6,12 @@ source ../sysinfos source ../functions source ../packages-list -# Manually applying patches -apply_patch ${1}-branch_update-1.patch ${1} - -case "${HVL_TARGET}" in - *) - TARGET_CONFIGURE_OPTS="--with-ppl=/cross-tools \ - --with-cloog=/cross-tools \ - --with-local-prefix=/tools \ - --disable-multilib" - ;; -esac - - -case "${HVL_TARGET}" in - "x86") - apply_patch ${1}-specs-1.patch ${1} - ;; - "x86_64") - apply_patch ${1}-pure64_specs-1.patch ${1} - ;; -esac - -cd ${LFS_TMP}/${1} - -# Change the StartFile Spec to point to the correct library location: -echo -en '#undef STANDARD_INCLUDE_DIR\n#define STANDARD_INCLUDE_DIR "/tools/include/"\n\n' >> gcc/config/linux.h -echo -en '\n#undef STANDARD_STARTFILE_PREFIX_1\n#define STANDARD_STARTFILE_PREFIX_1 "/tools/lib/"\n' >> gcc/config/linux.h -echo -en '\n#undef STANDARD_STARTFILE_PREFIX_2\n#define STANDARD_STARTFILE_PREFIX_2 ""\n' >> gcc/config/linux.h - -# Alter gcc's C preprocessor's default include search path to use /tools only: -cp -v gcc/Makefile.in{,.orig} -sed -e "s@\(^CROSS_SYSTEM_HEADER_DIR =\).*@\1 /tools/include@g" \ - gcc/Makefile.in.orig > gcc/Makefile.in +source ./cis-gcc-common # We will create a dummy limits.h so the build will not use the one provided by the host distro: touch /tools/include/limits.h +# Configure options: # --with-local-prefix=/tools # Remove /usr/local/include from gcc's include search path. This is not # absolutely essential, however, it helps to minimize the influence of the @@ -63,6 +32,7 @@ AR=ar LDFLAGS="-Wl,-rpath,/cross-tools/lib" \ --host=${CLFS_HOST} \ --target=${CLFS_TARGET} \ --with-sysroot=${CLFS} \ + --with-local-prefix=/tools \ --disable-nls \ --disable-shared \ --with-mpfr=/cross-tools \ diff --git a/stage0/cis-gcc-pass2 b/stage0/cis-gcc-pass2 index 4ec8626..2dea487 100755 --- a/stage0/cis-gcc-pass2 +++ b/stage0/cis-gcc-pass2 @@ -6,41 +6,9 @@ source ../sysinfos source ../functions source ../packages-list -# Manually applying patches -apply_patch ${1}-branch_update-1.patch ${1} - -case "${HVL_TARGET}" in - *) - TARGET_CONFIGURE_OPTS="--with-ppl=/cross-tools \ - --with-cloog=/cross-tools \ - --disable-multilib" - ;; -esac - -case "${HVL_TARGET}" in - "x86") - apply_patch ${1}-specs-1.patch ${1} - ;; - "x86_64") - apply_patch ${1}-pure64_specs-1.patch ${1} - ;; -esac - -cd ${LFS_TMP}/${1} - -# Change the StartFile Spec to point to the correct library location: -echo -en '#undef STANDARD_INCLUDE_DIR\n#define STANDARD_INCLUDE_DIR "/tools/include/"\n\n' >> gcc/config/linux.h -echo -en '\n#undef STANDARD_STARTFILE_PREFIX_1\n#define STANDARD_STARTFILE_PREFIX_1 "/tools/lib/"\n' >> gcc/config/linux.h -echo -en '\n#undef STANDARD_STARTFILE_PREFIX_2\n#define STANDARD_STARTFILE_PREFIX_2 ""\n' >> gcc/config/linux.h - -# Alter gcc's C preprocessor's default include search path to use /tools only: -cp -v gcc/Makefile.in{,.orig} -sed -e "s@\(^CROSS_SYSTEM_HEADER_DIR =\).*@\1 /tools/include@g" \ - gcc/Makefile.in.orig > gcc/Makefile.in +source ./cis-gcc-common # Configure options: -# --enable-languages=c,c++ -# This option ensures that only the C and C++ compilers are built. # --enable-__cxa_atexit # This option allows use of __cxa_atexit, rather than atexit, to register # C++ destructors for local @@ -54,6 +22,8 @@ sed -e "s@\(^CROSS_SYSTEM_HEADER_DIR =\).*@\1 /tools/include@g" \ # Enables long long support in the compiler. # --enable-threads=posix # This enables C++ exception handling for multi-threaded code. +# --enable-languages=c,c++ +# This option ensures that only the C and C++ compilers are built. cd ${LFS_TMP}/${1}-build AR=ar LDFLAGS="-Wl,-rpath,/cross-tools/lib" \ ../${1}/configure \ diff --git a/stage0/install-1 b/stage0/install-1 index 755a345..3207709 100755 --- a/stage0/install-1 +++ b/stage0/install-1 @@ -27,15 +27,22 @@ esac CPPFLAGS=-fexceptions \ ipkg_ac ${GMP} "--enable-cxx" + LDFLAGS="-Wl,-rpath,/cross-tools/lib" \ ipkg_ac ${MPFR} "--enable-shared --with-gmp=/cross-tools" +LDFLAGS="-Wl,-rpath,/cross-tools/lib" \ + ipkg_ac ${MPC} "--enable-shared \ + --with-gmp=/cross-tools \ + --with-mpfr=/cross-tools" + LDFLAGS="-Wl,-rpath,/cross-tools/lib" \ ipkg_ac ${PPL} "--enable-shared \ --enable-interfaces=c,cxx \ --disable-optimization \ --with-libgmp-prefix=/cross-tools \ --with-libgmpxx-prefix=/cross-tools" + LDFLAGS="-Wl,-rpath,/cross-tools/lib" \ ipkg_cust ${CLOOG_PPL} cis-cloog-ppl "--enable-shared --with-bits=gmp \ --with-gmp=/cross-tools --with-ppl=/cross-tools" diff --git a/stage0/packages-update b/stage0/packages-update index 7416d8c..2345293 100755 --- a/stage0/packages-update +++ b/stage0/packages-update @@ -23,12 +23,13 @@ fpkg ${FILE_PKG} "ftp://ftp.astron.com/pub/file" fpkg_gnu ${NCURSES} fpkg_gnu ${GMP} fpkg_gnu ${MPFR} +fpkg -e "tar.gz" ${MPC} "http://www.multiprecision.org/mpc/download" fpkg -s "$(get_pkg_ver ${PPL})" ${PPL} \ "http://www.cs.unipr.it/ppl/Download/ftp/releases" fpkg ${CLOOG_PPL} "ftp://gcc.gnu.org/pub/gcc/infrastructure" fpkg_gnu ${BINUTILS} fpkg_gnu ${GCC} "gcc/${GCC}" -fpkg_hv ${EGLIBC} -fpkg_hv ${EGLIBC_PORTS} +fpkg ${EGLIBC} "http://cross-lfs.org/files/packages/svn" +fpkg ${EGLIBC_PORTS} "http://cross-lfs.org/files/packages/svn" exit $? diff --git a/stage1/install-linux-minimal b/stage1/install-linux-minimal index f1d918f..b464d8e 100755 --- a/stage1/install-linux-minimal +++ b/stage1/install-linux-minimal @@ -20,36 +20,27 @@ VERSION=$(get_pkg_ver ${PACKAGE}) SCRIPT=${LFS}/usr/src/compile-kernel-minimal echo "#!/bin/bash" > ${SCRIPT} +echo "set -o errexit" >> ${SCRIPT} echo "KERNEL_VERSION=${VERSION}" >> ${SCRIPT} echo "KERNEL_NAME=clfs-\${KERNEL_VERSION}" >> ${SCRIPT} echo "DEST=${LFS}/boot" >> ${SCRIPT} echo "PATH=\${PATH}:${LFS}/cross-tools/bin" >> ${SCRIPT} echo "" >> ${SCRIPT} -echo "make ARCH=${CLFS_ARCH} CROSS_COMPILE=${CLFS_TARGET}- menuconfig &&" >> ${SCRIPT} +echo "make ARCH=${CLFS_ARCH} CROSS_COMPILE=${CLFS_TARGET}- menuconfig" >> ${SCRIPT} # Compile the kernel image: -echo "make ARCH=${CLFS_ARCH} CROSS_COMPILE=${CLFS_TARGET}- &&" >> ${SCRIPT} +echo "make ARCH=${CLFS_ARCH} CROSS_COMPILE=${CLFS_TARGET}-" >> ${SCRIPT} # Install the kernel: -echo "cp -v arch/${CLFS_ARCH}/boot/bzImage \${DEST}/vmlinuz-\${KERNEL_NAME} &&" >> ${SCRIPT} +echo "cp -v arch/${CLFS_ARCH}/boot/bzImage \${DEST}/vmlinuz-\${KERNEL_NAME}" >> ${SCRIPT} # Install map file: -echo "cp -v System.map \${DEST}/System.map-\${KERNEL_NAME} &&" >> ${SCRIPT} +echo "cp -v System.map \${DEST}/System.map-\${KERNEL_NAME}" >> ${SCRIPT} # Install config file: echo "cp -v .config \${DEST}/config-\${KERNEL_NAME}" >> ${SCRIPT} -cat >> ${SCRIPT} << "EOF" - -if [ $? -ne 0 ]; then - echo "*** Kernel compilation error ***." - exit 1 -fi - -exit 0 -EOF - chmod -v u+x ${SCRIPT} exit $? diff --git a/stage2/cis-kernel b/stage2/cis-kernel index acc2b8b..9c6705b 100755 --- a/stage2/cis-kernel +++ b/stage2/cis-kernel @@ -29,29 +29,20 @@ VERSION=$(get_pkg_ver ${PACKAGE}) SCRIPT=/usr/src/compile-kernel echo "#!/bin/bash" > ${SCRIPT} +echo "set -o errexit" >> ${SCRIPT} echo "KERNEL_VERSION=${VERSION}" >> ${SCRIPT} echo "KERNEL_NAME=clfs-\${KERNEL_VERSION}" >> ${SCRIPT} echo "DEST=/boot" >> ${SCRIPT} echo "ARCH=${HVL_TARGET}" >> ${SCRIPT} echo "unset CROSS_COMPILE" >> ${SCRIPT} echo "" >> ${SCRIPT} -echo "make &&" >> ${SCRIPT} -echo "make modules &&" >> ${SCRIPT} -echo "make modules_install &&" >> ${SCRIPT} -echo "cp -v arch/${HVL_TARGET}/boot/bzImage \${DEST}/vmlinuz-\${KERNEL_NAME} &&" >> ${SCRIPT} -echo "cp -v System.map \${DEST}/System.map-\${KERNEL_NAME} &&" >> ${SCRIPT} +echo "make" >> ${SCRIPT} +echo "make modules" >> ${SCRIPT} +echo "make modules_install" >> ${SCRIPT} +echo "cp -v arch/${HVL_TARGET}/boot/bzImage \${DEST}/vmlinuz-\${KERNEL_NAME}" >> ${SCRIPT} +echo "cp -v System.map \${DEST}/System.map-\${KERNEL_NAME}" >> ${SCRIPT} echo "cp -v .config \${DEST}/config-\${KERNEL_NAME}" >> ${SCRIPT} -cat >> ${SCRIPT} << "EOF" - -if [ $? -ne 0 ]; then - echo "*** Kernel compilation error ***." - exit 1 -fi - -exit 0 -EOF - chmod -v u+x ${SCRIPT} exit $? diff --git a/sysinfos b/sysinfos index d9158d1..7cd21be 100644 --- a/sysinfos +++ b/sysinfos @@ -16,9 +16,7 @@ REGUSER="hugo" # Destination path where to install new Linux-HV system. This is usually where # you have mounted your new LFS partition, but it can also be any directory. -# After stage 1, this must be set to "". -#LFS="/mnt/hvlinux" -LFS="" +LFS="/mnt/hvlinux" # Destination partition where to install new Linux-HV system LFS_PARTITION="/dev/sdb7" -- 2.20.1