Chromium Code Reviews| Index: pnacl/build.sh |
| diff --git a/pnacl/build.sh b/pnacl/build.sh |
| index 46791781957cb5e1cd95deb6ef9082596148db87..b5ead8f21e057a7ddb52ea010f4da7e7310aa3e7 100755 |
| --- a/pnacl/build.sh |
| +++ b/pnacl/build.sh |
| @@ -46,17 +46,19 @@ readonly PNACL_CONCURRENCY=${PNACL_CONCURRENCY:-8} |
| readonly PNACL_MERGE_TESTING=${PNACL_MERGE_TESTING:-false} |
| PNACL_PRUNE=${PNACL_PRUNE:-false} |
| PNACL_BUILD_ARM=true |
| +# PNACL_BUILD_MIPS=true |
| if ${BUILD_PLATFORM_MAC} || ${BUILD_PLATFORM_WIN}; then |
| # We don't yet support building ARM tools for mac or windows. |
|
Brad Chen
2012/04/12 00:51:34
Please update this comment.
petarj
2012/04/12 13:21:01
Ok.
|
| PNACL_BUILD_ARM=false |
| + PNACL_BUILD_MIPS=false |
| fi |
| readonly SB_JIT=${SB_JIT:-false} |
| # TODO(pdox): Decide what the target should really permanently be |
| readonly CROSS_TARGET_ARM=arm-none-linux-gnueabi |
| -readonly BINUTILS_TARGET=arm-pc-nacl |
| +readonly BINUTILS_TARGET=pc-nacl |
| readonly REAL_CROSS_TARGET=pnacl |
| readonly NACL64_TARGET=x86_64-nacl |
| @@ -244,9 +246,9 @@ GetInstallDir() { |
| SBTC_PRODUCTION=${SBTC_PRODUCTION:-false} |
| # Which toolchain to use for each arch. |
| -SBTC_BUILD_WITH_PNACL="armv7 i686 x86_64" |
| +SBTC_BUILD_WITH_PNACL="armv7 mips32 i686 x86_64" |
| if ${PNACL_IN_CROS_CHROOT}; then |
| - SBTC_BUILD_WITH_PNACL="armv7" |
| + SBTC_BUILD_WITH_PNACL="armv7 mips32" |
| fi |
| # Current milestones in each repo |
| @@ -809,7 +811,8 @@ everything-post-hg() { |
| clean-logs |
| llvm |
| - binutils |
| + binutils arm |
| + binutils mipsel |
| binutils-gold |
| driver |
| @@ -1829,6 +1832,21 @@ arm-ncval-core ${INSTALL_ROOT}/tools-x86 |
| else |
| StepBanner "MISC-ARM" "Skipping ARM validator (Not yet supported on Mac)" |
| fi |
| + |
| + if ${BUILD_PLATFORM_LINUX} ; then |
| + StepBanner "MISC-MIPS" "Building validator (MIPS32)" |
| + spushd "${NACL_ROOT}" |
| + RunWithLog mips_ncval_core \ |
| + ./scons MODE=opt-host \ |
| + targetplatform=mips32 \ |
| + sysinfo=0 \ |
| + mips-ncval-core |
| + cp scons-out/opt-linux-x86-32-to-mips32/obj/src/trusted/validator_mips/\ |
| +mips-ncval-core ${INSTALL_ROOT}/tools-x86/mips-ncval-core |
| + spopd |
| + else |
| + StepBanner "MISC-MIPS" "Skipping MIPS validator (Not yet supported on Mac)" |
| + fi |
| } |
| ######################################################################### |
| @@ -1886,34 +1904,37 @@ libelf-sb() { |
| #+------------------------------------------------------------------------- |
| #+ binutils - Build and install binutils (cross-tools) |
| binutils() { |
| - StepBanner "BINUTILS (HOST)" |
| + local arch=$1 |
| + StepBanner "BINUTILS (HOST) for ${arch}" |
| local srcdir="${TC_SRC_BINUTILS}" |
| assert-dir "${srcdir}" "You need to checkout binutils." |
| - if binutils-needs-configure; then |
| - binutils-clean |
| - binutils-configure |
| + if binutils-needs-configure ${arch}; then |
| + binutils-clean ${arch} |
| + binutils-configure ${arch} |
| else |
| SkipBanner "BINUTILS" "configure" |
| fi |
| - binutils-dlwrap |
| - binutils-make |
| - binutils-install |
| + binutils-dlwrap ${arch} |
| + binutils-make ${arch} |
| + binutils-install ${arch} |
| } |
| #+ binutils-clean - Clean binutils |
| binutils-clean() { |
| + local arch=$1 |
| StepBanner "BINUTILS" "Clean" |
| - local objdir="${TC_BUILD_BINUTILS}" |
| + local objdir="${TC_BUILD_BINUTILS}-${arch}" |
| rm -rf ${objdir} |
| } |
| binutils-dlwrap() { |
| + local arch=$1 |
| local srcdir="${TC_SRC_BINUTILS}" |
| - local objdir="${TC_BUILD_BINUTILS}" |
| + local objdir="${TC_BUILD_BINUTILS}-${arch}" |
| if ! [ -f "${LLVM_GOLD_PLUGIN}" ]; then |
| Fatal "LLVM must be installed before building binutils." |
| @@ -1928,12 +1949,17 @@ binutils-dlwrap() { |
| spopd |
| } |
| -#+ binutils-configure- Configure binutils for ARM |
| +#+ binutils-configure- Configure binutils for ARM or MIPS |
| binutils-configure() { |
| + local arch=$1 |
| + local enable_gold='yes' |
| + if [ ${arch} == 'mips' ]; then |
| + enable_gold='no' |
| + fi |
| StepBanner "BINUTILS" "Configure" |
| local srcdir="${TC_SRC_BINUTILS}" |
| - local objdir="${TC_BUILD_BINUTILS}" |
| + local objdir="${TC_BUILD_BINUTILS}-${arch}" |
| # enable multiple targets so that we can use the same ar with all .o files |
| local targ="arm-pc-nacl,i686-pc-nacl,x86_64-pc-nacl" |
| @@ -1948,7 +1974,7 @@ binutils-configure() { |
| # binutils instead. |
| local flags="-DNACL_ALIGN_BYTES=32 -DNACL_ALIGN_POW2=5 \ |
| -I${TC_SRC_BINUTILS}/dlwrap -DENABLE_DLWRAP" |
| - RunWithLog binutils.configure \ |
| + RunWithLog binutils-${arch}.configure \ |
| env -i \ |
| PATH="/usr/bin:/bin" \ |
| CC="${CC}" \ |
| @@ -1957,9 +1983,9 @@ binutils-configure() { |
| CFLAGS="${flags}" \ |
| CXXFLAGS="${flags}" \ |
| ${srcdir}/binutils-2.20/configure --prefix="${BINUTILS_INSTALL_DIR}" \ |
| - --target=${BINUTILS_TARGET} \ |
| + --target=${arch}-${BINUTILS_TARGET} \ |
| --enable-targets=${targ} \ |
| - --enable-gold=yes \ |
| + --enable-gold=${enable_gold} \ |
| --enable-ld=yes \ |
| --enable-plugins \ |
| --disable-werror \ |
| @@ -1974,20 +2000,22 @@ binutils-configure() { |
| } |
| binutils-needs-configure() { |
| - [ ! -f "${TC_BUILD_BINUTILS}/config.status" ] |
| + local arch=$1 |
| + [ ! -f "${TC_BUILD_BINUTILS}-${arch}/config.status" ] |
| return $? |
| } |
| -#+ binutils-make - Make binutils for ARM |
| +#+ binutils-make - Make binutils for ARM or MIPS |
| binutils-make() { |
| + local arch=$1 |
| StepBanner "BINUTILS" "Make" |
| local srcdir="${TC_SRC_BINUTILS}" |
| - local objdir="${TC_BUILD_BINUTILS}" |
| + local objdir="${TC_BUILD_BINUTILS}-${arch}" |
| spushd "${objdir}" |
| ts-touch-open "${objdir}" |
| - RunWithLog binutils.make \ |
| + RunWithLog binutils-${arch}.make \ |
| env -i PATH="/usr/bin:/bin" \ |
| make ${MAKE_OPTS} |
| @@ -1996,13 +2024,14 @@ binutils-make() { |
| spopd |
| } |
| -#+ binutils-install - Install binutils for ARM |
| +#+ binutils-install - Install binutils for ARM or MIPS |
| binutils-install() { |
| + local arch=$1 |
| StepBanner "BINUTILS" "Install" |
| - local objdir="${TC_BUILD_BINUTILS}" |
| + local objdir="${TC_BUILD_BINUTILS}-${arch}" |
| spushd "${objdir}" |
| - RunWithLog binutils.install \ |
| + RunWithLog binutils-${arch}.install \ |
| env -i PATH="/usr/bin:/bin" \ |
| make \ |
| install ${MAKE_OPTS} |
| @@ -2266,7 +2295,8 @@ llvm-sb-configure() { |
| i686) targets=x86 ;; |
| x86_64) targets=x86_64 ;; |
| armv7) targets=arm ;; |
| - universal) targets=x86,x86_64,arm ;; |
| + mips32) targets=mips ;; |
| + universal) targets=x86,x86_64,arm,mips ;; |
| esac |
| spushd "${objdir}" |
| @@ -2455,6 +2485,7 @@ binutils-sb-setup() { |
| x86_64) BINUTILS_SB_ELF_TARGETS=x86_64-pc-nacl ;; |
| armv7) BINUTILS_SB_ELF_TARGETS=arm-pc-nacl ;; |
| universal) BINUTILS_SB_ELF_TARGETS=arm-pc-nacl,i686-pc-nacl,x86_64-pc-nacl ;; |
| + mips32) BINUTILS_SB_ELF_TARGETS=mipsel-pc-nacl ;; |
| esac |
| } |
| @@ -2517,7 +2548,7 @@ binutils-sb-configure() { |
| "${BINUTILS_SB_CONFIGURE_ENV[@]}" \ |
| --prefix=${installdir} \ |
| --host=nacl \ |
| - --target=${BINUTILS_TARGET} \ |
| + --target=${BINUTILS_SB_ARCH}-${BINUTILS_TARGET} \ |
| --enable-targets=${BINUTILS_SB_ELF_TARGETS} \ |
| --disable-nls \ |
| --disable-werror \ |
| @@ -3233,9 +3264,9 @@ driver-install() { |
| echo "LIBMODE=${libmode}" > "${destdir}"/driver.conf |
| # Install readelf and size |
| - cp -a "${BINUTILS_INSTALL_DIR}/bin/${BINUTILS_TARGET}-readelf" \ |
| + cp -a "${BINUTILS_INSTALL_DIR}/bin/arm-${BINUTILS_TARGET}-readelf" \ |
|
Brad Chen
2012/04/12 00:51:34
Why do these names need to be changed? Where are t
petarj
2012/04/12 13:21:01
This patch tends to contain minimal (yet self-suff
|
| "${destdir}/readelf" |
| - cp -a "${BINUTILS_INSTALL_DIR}/bin/${BINUTILS_TARGET}-size" \ |
| + cp -a "${BINUTILS_INSTALL_DIR}/bin/arm-${BINUTILS_TARGET}-size" \ |
| "${destdir}/size" |
| # On windows, copy the cygwin DLLs needed by the driver tools |