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"
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"
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"
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"
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"
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"
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"
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
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
libc_cv_forced_unwind=yes
libc_cv_c_cleanup=yes
libc_cv_gnu89_inline=yes
+libc_cv_ssp=no
EOF
# Configure options:
--- /dev/null
+#!/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
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
--host=${CLFS_HOST} \
--target=${CLFS_TARGET} \
--with-sysroot=${CLFS} \
+ --with-local-prefix=/tools \
--disable-nls \
--disable-shared \
--with-mpfr=/cross-tools \
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
# 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 \
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"
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 $?
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 $?
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 $?
# 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"