Chromium Code Reviews| Index: tools/trusted_cross_toolchains/trusted-toolchain-creator.mipsel.wheezy.sh |
| diff --git a/tools/trusted_cross_toolchains/trusted-toolchain-creator.mipsel.squeeze.sh b/tools/trusted_cross_toolchains/trusted-toolchain-creator.mipsel.wheezy.sh |
| similarity index 80% |
| rename from tools/trusted_cross_toolchains/trusted-toolchain-creator.mipsel.squeeze.sh |
| rename to tools/trusted_cross_toolchains/trusted-toolchain-creator.mipsel.wheezy.sh |
| index 94709f0766554d6ae2dbc31dcd6d8387acd5162b..4e14ffe316878ae212b89a2b9b455a906d7cd0a9 100755 |
| --- a/tools/trusted_cross_toolchains/trusted-toolchain-creator.mipsel.squeeze.sh |
| +++ b/tools/trusted_cross_toolchains/trusted-toolchain-creator.mipsel.wheezy.sh |
| @@ -9,12 +9,6 @@ |
| # This script is intended to build a mipsel-linux-gnu cross compilation |
| # toolchain that runs on x86 linux and generates code for a little-endian, |
| # hard-float, mips32 target. |
| -# |
| -# It expects the host machine to have relatively recent versions of GMP (4.2.0 |
| -# or later), MPFR (2.4.2), and MPC (0.8.1) in order to build the GCC. |
| -# |
| -# Common way to get those is: |
| -# sudo apt-get install libmpfr-dev libmpc-dev libgmp3-dev |
| ###################################################################### |
| # Config |
| @@ -29,6 +23,15 @@ readonly SCRIPT_DIR=$(dirname $0) |
| readonly MAKE_OPTS="-j8" |
| readonly ARCH="mips32" |
| +readonly GMP_URL="http://ftp.gnu.org/gnu/gmp/gmp-4.3.2.tar.bz2" |
| +readonly GMP_SHA1SUM="c011e8feaf1bb89158bd55eaabd7ef8fdd101a2c" |
| + |
| +readonly MPFR_URL="http://ftp.gnu.org/gnu/mpfr/mpfr-2.4.2.tar.bz2" |
| +readonly MPFR_SHA1SUM="7ca93006e38ae6e53a995af836173cf10ee7c18c" |
| + |
| +readonly MPC_URL="http://ftp.gnu.org/gnu/mpc/mpc-1.0.1.tar.gz" |
| +readonly MPC_SHA1SUM="8c7e19ad0dd9b3b5cc652273403423d6cf0c5edf" |
| + |
| readonly GCC_URL="http://ftp.gnu.org/gnu/gcc/gcc-4.7.2/gcc-4.7.2.tar.bz2" |
| readonly GCC_SHA1SUM="a464ba0f26eef24c29bcd1e7489421117fb9ee35" |
| @@ -98,12 +101,15 @@ CheckoutOrCopy() { |
| exit 1 |
| fi |
| - if [ "${filetype}" == "svn" ]; then |
| - SubBanner "checkout from ${url} -> ${filename}" |
| - svn --force export -r ${revision} ${url} ${filename} |
| - else |
| - SubBanner "copying from ${url}" |
| - cp ${url} ${filename} |
| + if [ ! -f "${filename}/completed" ]; then |
| + if [ "${filetype}" == "svn" ]; then |
| + SubBanner "checkout from ${url} -> ${filename}" |
| + svn --force export -r ${revision} ${url} ${filename} |
| + else |
| + SubBanner "copying from ${url}" |
| + cp ${url} ${filename} |
| + fi |
| + touch ${filename}/completed |
| fi |
| } |
| @@ -175,7 +181,7 @@ SanityCheck() { |
| exit -1 |
| fi |
| - for tool in cleanlinks wget ; do |
| + for tool in wget ; do |
| if ! which ${tool} ; then |
| echo "Required binary $tool not found." |
| echo "Exiting." |
| @@ -188,6 +194,7 @@ SanityCheck() { |
| ClearInstallDir() { |
| Banner "clearing dirs in ${INSTALL_ROOT}" |
| rm -rf ${INSTALL_ROOT}/* |
| + |
|
Mark Seaborn
2013/06/18 15:26:21
Did you intend to add this empty line? It seems s
petarj
2013/06/19 23:12:33
Removed.
|
| mkdir -p ${JAIL_MIPS32} |
| } |
| @@ -207,13 +214,41 @@ CreateTarBall() { |
| DownloadOrCopyAndInstallToolchain() { |
| Banner "Installing toolchain" |
| - local tarball="${TMP}/${BINUTILS_URL##*/}" |
| - DownloadOrCopyAndVerify ${BINUTILS_URL} ${BINUTILS_SHA1SUM} |
| + tarball="${TMP}/${GCC_URL##*/}" |
| + DownloadOrCopyAndVerify ${GCC_URL} ${GCC_SHA1SUM} |
| SubBanner "extracting from ${tarball}" |
| tar jxf ${tarball} -C ${TMP} |
| - tarball="${TMP}/${GCC_URL##*/}" |
| - DownloadOrCopyAndVerify ${GCC_URL} ${GCC_SHA1SUM} |
| + pushd ${TMP}/gcc-* |
| + |
| + local tarball="${TMP}/${GMP_URL##*/}" |
| + DownloadOrCopyAndVerify ${GMP_URL} ${GMP_SHA1SUM} |
| + SubBanner "extracting from ${tarball}" |
| + tar jxf ${tarball} |
| + local filename=`ls | grep gmp\-` |
| + rm -f gmp |
| + ln -s ${filename} gmp |
| + |
| + local tarball="${TMP}/${MPFR_URL##*/}" |
| + DownloadOrCopyAndVerify ${MPFR_URL} ${MPFR_SHA1SUM} |
| + SubBanner "extracting from ${tarball}" |
| + tar jxf ${tarball} |
| + local filename=`ls | grep mpfr\-` |
| + rm -f mpfr |
| + ln -s ${filename} mpfr |
| + |
| + local tarball="${TMP}/${MPC_URL##*/}" |
| + DownloadOrCopyAndVerify ${MPC_URL} ${MPC_SHA1SUM} |
| + SubBanner "extracting from ${tarball}" |
| + tar zxf ${tarball} |
| + local filename=`ls | grep mpc\-` |
| + rm -f mpc |
| + ln -s ${filename} mpc |
| + |
| + popd |
| + |
| + local tarball="${TMP}/${BINUTILS_URL##*/}" |
| + DownloadOrCopyAndVerify ${BINUTILS_URL} ${BINUTILS_SHA1SUM} |
| SubBanner "extracting from ${tarball}" |
| tar jxf ${tarball} -C ${TMP} |
| @@ -248,6 +283,7 @@ DownloadOrCopyAndInstallToolchain() { |
| Banner "Building binutils" |
| + rm -rf ${BUILD_DIR}/binutils/ |
| mkdir -p ${BUILD_DIR}/binutils/ |
| pushd ${BUILD_DIR}/binutils/ |
| @@ -268,6 +304,7 @@ DownloadOrCopyAndInstallToolchain() { |
| Banner "Building GCC (initial)" |
| + rm -rf ${BUILD_DIR}/gcc/initial |
| mkdir -p ${BUILD_DIR}/gcc/initial |
| pushd ${BUILD_DIR}/gcc/initial |
| @@ -309,6 +346,8 @@ DownloadOrCopyAndInstallToolchain() { |
| Banner "Building EGLIBC (initial)" |
| mkdir -p ${JAIL_MIPS32}/usr/lib |
| + |
| + rm -rf ${BUILD_DIR}/eglibc/initial |
| mkdir -p ${BUILD_DIR}/eglibc/initial |
| pushd ${BUILD_DIR}/eglibc/initial |
| @@ -346,6 +385,7 @@ DownloadOrCopyAndInstallToolchain() { |
| Banner "Building GCC (intermediate)" |
| + rm -rf ${BUILD_DIR}/gcc/intermediate |
| mkdir -p ${BUILD_DIR}/gcc/intermediate |
| pushd ${BUILD_DIR}/gcc/intermediate |
| @@ -377,6 +417,7 @@ DownloadOrCopyAndInstallToolchain() { |
| Banner "Building EGLIBC (final)" |
| + rm -rf ${BUILD_DIR}/eglibc/final |
| mkdir -p ${BUILD_DIR}/eglibc/final |
| pushd ${BUILD_DIR}/eglibc/final |
| @@ -406,6 +447,7 @@ DownloadOrCopyAndInstallToolchain() { |
| Banner "Building GCC (final)" |
| + rm -rf ${BUILD_DIR}/gcc/final |
| mkdir -p ${BUILD_DIR}/gcc/final |
| pushd ${BUILD_DIR}/gcc/final |
| @@ -435,6 +477,7 @@ DownloadOrCopyAndInstallToolchain() { |
| Banner "Building GDB" |
| + rm -rf ${BUILD_DIR}/gdb/ |
| mkdir -p ${BUILD_DIR}/gdb/ |
| pushd ${BUILD_DIR}/gdb/ |
| @@ -472,18 +515,19 @@ InstallTrustedLinkerScript() { |
| # ---------------------------------------------------------------------- |
| readonly REPO_DEBIAN=http://ftp.debian.org/debian |
| -readonly MIPS32_PACKAGES=${REPO_DEBIAN}/dists/squeeze/main/binary-mipsel/Packages.bz2 |
| +readonly MIPS32_PACKAGES=${REPO_DEBIAN}/dists/wheezy/main/binary-mipsel/Packages.bz2 |
| -readonly BASE_PACKAGELIST_MIPS32=${SCRIPT_DIR}/packagelist.squeeze.mipsel.base |
| -readonly EXTRA_PACKAGELIST_MIPS32=${SCRIPT_DIR}/packagelist.squeeze.mipsel.extra |
| -readonly TMP_BASE_PKG_MIPS32=${TMP}/packagelist.generated.squeeze.mipsel.base |
| -readonly TMP_EXTRA_PKG_MIPS32=${TMP}/packagelist.generated.squeeze.mipsel.extra |
| +readonly BASE_PACKAGELIST_MIPS32=${SCRIPT_DIR}/packagelist.wheezy.mipsel.base |
| +readonly EXTRA_PACKAGELIST_MIPS32=${SCRIPT_DIR}/packagelist.wheezy.mipsel.extra |
| +readonly TMP_BASE_PKG_MIPS32=${TMP}/packagelist.generated.wheezy.mipsel.base |
| +readonly TMP_EXTRA_PKG_MIPS32=${TMP}/packagelist.generated.wheezy.mipsel.extra |
| GeneratePackageLists() { |
| local sdk_target=$1 |
| local packages= |
| local TMP_PACKAGELIST= |
| Banner "generating ${sdk_target} package lists for mips32" |
| + rm -f ${TMP}/Packages.bz2 |
| DownloadOrCopy ${MIPS32_PACKAGES} |
| bzcat ${TMP}/Packages.bz2\ |
| | egrep '^(Package:|Filename:)' > ${TMP}/Packages_mipsel |
| @@ -528,56 +572,77 @@ InstallMissingLibraries() { |
| dpkg --fsys-tarfile ${package}\ |
| | tar -xvf - --exclude=./usr/share -C ${JAIL_MIPS32} |
| done |
| - |
| - Banner "some cleanup" |
| - |
| - pushd ${JAIL_MIPS32}/usr/lib/ |
| - cleanlinks > /dev/null 2> /dev/null |
| - FixLibs |
| - popd |
| } |
| -FixLibs() { |
| - Banner "Fixing libraries" |
| - |
| - rm -f libbz2.so |
| - ln -s ../../lib/libbz2.so.1 libbz2.so |
| - |
| - rm -f libm.so |
| - ln -s ../../lib/libm.so.6 libm.so |
| - |
| - rm -f libdl.so |
| - ln -s ../../lib/libdl.so.2 libdl.so |
| - |
| - rm -f librt.so |
| - ln -s ../../lib/librt.so.1 librt.so |
| +FixIncludes() { |
| + Banner "Fixing includes" |
|
Mark Seaborn
2013/06/18 15:26:21
Is this doing something that the Debian packages'
petarj
2013/06/19 23:12:33
No, it is not a postinst step. The Wheezy version
Mark Seaborn
2013/06/20 01:38:17
OK, maybe you could add a comment that this is don
|
| + pushd ${JAIL_MIPS32}/usr/include/glib-2.0 |
| + ln -s ../../lib/glib-2.0/include/glibconfig.h . |
| + popd |
| - rm -f libpcre.so |
| - ln -s ../../lib/libpcre.so.3 libpcre.so |
| + pushd ${JAIL_MIPS32}/usr/include/gtk-2.0 |
| + ln -s ../../lib/gtk-2.0/include/gdkconfig.h . |
| + popd |
| - rm -f libresolv.so |
| - ln -s ../../lib/libresolv.so.2 libresolv.so |
| + pushd ${JAIL_MIPS32}/usr/include/dbus-1.0/dbus |
| + ln -s ../../../lib/dbus-1.0/include/dbus/dbus-arch-deps.h . |
| + popd |
| +} |
| - rm -f libglib-2.0.so |
| - ln -s ../../lib/libglib-2.0.so.0 libglib-2.0.so |
| +FixLinks() { |
| + Banner "Fixing links" |
| + pushd ${JAIL_MIPS32}/lib/ |
| + mv mipsel-linux-gnu/* . |
| + rm -rf mipsel-linux-gnu |
| + ln -s . mipsel-linux-gnu |
| + popd |
| - rm -f libudev.so |
| - ln -s ../../lib/libudev.so.0 libudev.so |
| + pushd ${JAIL_MIPS32}/usr/lib/ |
| + mkdir -p pkgconfig |
| + mv mipsel-linux-gnu/pkgconfig/* pkgconfig/ |
| + rm -rf mipsel-linux-gnu/pkgconfig |
| + mv mipsel-linux-gnu/* . |
| + rm -rf mipsel-linux-gnu |
| + ln -s . mipsel-linux-gnu |
| + popd |
| - rm -f libcom_err.so |
| - ln -s ../../lib/libcom_err.so.2 libcom_err.so |
| + pushd ${JAIL_MIPS32}/usr/lib/ |
| + rm -f libstdc++.so* |
| + ln -s ../../../mipsel-linux-gnu/lib/libstdc++.so.6.0.17 . |
| + ln -s libstdc++.so.6.0.17 libstdc++.so.6 |
| + ln -s libstdc++.so.6.0.17 libstdc++.so |
| + |
| + rm -f libgcc_s.so* |
| + ln -s ../../../mipsel-linux-gnu/lib/libgcc_s.so.1 . |
| + ln -s libgcc_s.so.1 libgcc_s.so |
| + popd |
| +} |
| - rm -f libXdmcp.so |
| - ln -s ../../lib/libXdmcp.so.6 libXdmcp.so |
| +FixLibs() { |
| + Banner "Fixing libraries" |
| - rm -f libstdc++.so* |
| - ln -s ../../../mipsel-linux-gnu/lib/libstdc++.so.6.0.17 . |
| - ln -s libstdc++.so.6.0.17 libstdc++.so.6 |
| - ln -s libstdc++.so.6.0.17 libstdc++.so |
| + readonly liblist="libbz2.so \ |
|
Mark Seaborn
2013/06/18 15:26:21
Make this '\' consistent with the following lines
petarj
2013/06/19 23:12:33
Done.
|
| + libcom_err.so \ |
| + libdbus-1.so \ |
| + libexpat.so \ |
| + libglib-2.0.so \ |
| + libgpg-error.so \ |
| + libkeyutils.so \ |
| + libpamc.so \ |
| + libpam_misc.so \ |
| + libpam.so \ |
| + libpci.so \ |
| + libpcre.so \ |
| + libpng12.so \ |
| + libudev.so \ |
| + libz.so" |
| - rm -f libgcc_s.so* |
| - ln -s ../../../mipsel-linux-gnu/lib/libgcc_s.so.1 . |
| - ln -s libgcc_s.so.1 libgcc_s.so |
| + pushd ${JAIL_MIPS32}/usr/lib/ |
| + for library in ${liblist}; do |
| + rm -f ${library} |
| + ln -s ../../lib/${library}.[0123] ${library} |
| + done |
| + popd |
| } |
| BuildAndInstallQemu() { |
| @@ -615,8 +680,7 @@ BuildAndInstallQemu() { |
| --disable-bsd-user \ |
| --target-list=mipsel-linux-user \ |
| --disable-sdl \ |
| - --disable-linux-aio \ |
| - --static |
|
Mark Seaborn
2013/06/18 15:26:21
Please add "BUG=https://code.google.com/p/nativecl
petarj
2013/06/19 23:12:33
Done.
|
| + --disable-linux-aio |
| SubBanner "Make" |
| env -i PATH=/usr/bin/:/bin \ |
| @@ -647,11 +711,14 @@ elif [[ $1 == "nacl_sdk" || $1 == "chrome_sdk" ]] ; then |
| DownloadOrCopyAndInstallToolchain |
| GeneratePackageLists $1 |
| InstallMissingLibraries $1 |
| + FixLinks |
| if [[ $1 == "nacl_sdk" ]] ; then |
| InstallTrustedLinkerScript |
| BuildAndInstallQemu |
| CreateTarBall $1 |
| else |
| + FixLibs |
| + FixIncludes |
| CreateTarBall ${CROSS_TARBALL} |
| fi |