Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(59)

Unified Diff: tools/llvm/unsupported/llvm-cs-toolchain-creator.sh

Issue 8391032: Part 2 of 3: Moving tools/llvm to pnacl/ (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client/
Patch Set: '' Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/llvm/unsupported/driver/pnacl-pexecheck.py ('k') | tools/llvm/unsupported/non_bitcode_symbols.txt » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/llvm/unsupported/llvm-cs-toolchain-creator.sh
===================================================================
--- tools/llvm/unsupported/llvm-cs-toolchain-creator.sh (revision 7025)
+++ tools/llvm/unsupported/llvm-cs-toolchain-creator.sh (working copy)
@@ -1,296 +0,0 @@
-#!/bin/bash
-# Copyright 2010 The Native Client Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can
-# be found in the LICENSE file.
-#
-#@ This script builds and llvm/cs based cross toolchain for
-#@ benchmarking puposes
-#@ NOTE: It must be run from the native_client/ directory.
-
-######################################################################
-# Config
-######################################################################
-
-set -o nounset
-set -o errexit
-
-# NOTE: gcc and llvm have to be synchronized
-# we have chosen toolchains which both are based on gcc-4.2.1
-
-readonly INSTALL_ROOT=$(pwd)/toolchain/llvm-cs
-
-readonly CROSS_TARGET=arm-none-linux-gnueabi
-readonly LLVM_INSTALL_DIR="${INSTALL_ROOT}/${CROSS_TARGET}/llvm"
-readonly LLVMGCC_INSTALL_DIR="${INSTALL_ROOT}/${CROSS_TARGET}/llvm-gcc-4.2"
-
-readonly LLVMGCC_TARBALL=$(pwd)/../third_party/llvm/llvm-gcc-4.2-88663.tar.bz2
-readonly LLVM_TARBALL=$(pwd)/../third_party/llvm/llvm-88663.tar.bz2
-
-readonly MAKE_OPTS="-j8 VERBOSE=1"
-
-readonly TMP=/tmp/llvm-cs
-
-# These are simple compiler wrappers to force 32bit builds
-readonly CC32=$(readlink -f tools/llvm/mygcc32)
-readonly CXX32=$(readlink -f tools/llvm/myg++32)
-
-
-readonly CODE_SOURCERY_ROOT=${INSTALL_ROOT}/codesourcery
-readonly CROSS_TARGET_AS="${CODE_SOURCERY_ROOT}/arm-2007q3/bin/${CROSS_TARGET}-as"
-readonly CROSS_TARGET_LD="${CODE_SOURCERY_ROOT}/arm-2007q3/bin/${CROSS_TARGET}-ld"
-
-readonly SYSROOT="${CODE_SOURCERY_ROOT}/arm-2007q3/${CROSS_TARGET}/libc"
-
-readonly CS_URL=http://www.codesourcery.com/sgpp/lite/arm/portal/package1787/public/arm-none-linux-gnueabi/arm-2007q3-51-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
-
-######################################################################
-# Helper
-######################################################################
-
-Banner() {
- echo "######################################################################"
- echo "$@"
- echo "######################################################################"
-}
-
-
-SubBanner() {
- echo "......................................................................"
- echo "$@"
- echo "......................................................................"
-}
-
-
-Usage() {
- egrep "^#@" $0 | cut --bytes=3-
-}
-
-
-DownloadOrCopy() {
- if [[ -f "$2" ]] ; then
- echo "$2 already in place"
- elif [[ $1 =~ 'http://' ]] ; then
- SubBanner "downloading from $1"
- wget $1 -O $2
- else
- SubBanner "copying from $1"
- cp $1 $2
- fi
-}
-
-
-# Use this when not a lot of output is expected
-Run() {
- local message=$1
- shift
- SubBanner "${message}"
- echo "COMMMAND: $@"
- "$@" || {
- echo
- Banner "ERROR: $@"
- exit -1
- }
-}
-
-
-RunWithLog() {
- local message=$1
- local log=$2
- shift 2
- SubBanner "${message}"
- echo "LOGFILE: ${log}"
- echo "PWD: $(pwd)"
- echo "COMMMAND: $@"
- "$@" > ${log} 2>&1 || {
- tail -1000 ${log}
- echo
- Banner "ERROR"
- echo "LOGFILE: ${log}"
- echo "PWD: $(pwd)"
- echo "COMMMAND: $@"
- exit -1
- }
-}
-
-######################################################################
-#
-######################################################################
-
-# some sanity checks to make sure this script is run from the right place
-PathSanityCheck() {
- if [[ $(basename $(pwd)) != "native_client" ]] ; then
- echo "ERROR: run this script from the native_client/ dir"
- exit -1
- fi
-
- if ! mkdir -p "${INSTALL_ROOT}" ; then
- echo "ERROR: ${INSTALL_ROOT} can't be created."
- exit -1
- fi
-}
-
-
-# TODO(robertm): consider wiping all of ${BASE_DIR}
-ClearInstallDir() {
- Banner "clearing dirs in ${INSTALL_ROOT}"
- rm -rf ${INSTALL_ROOT}/*
-}
-
-
-DownloadOrCopyAndInstallSourcery() {
- local tarball="${TMP}/${CS_URL##*/}"
- DownloadOrCopy ${CS_URL} ${tarball}
- rm -rf ${CODE_SOURCERY_ROOT}
- mkdir -p ${CODE_SOURCERY_ROOT}
- tar jxf ${tarball} -C ${CODE_SOURCERY_ROOT}
-
- # Verify our CodeSourcery toolchain installation.
- if [[ ! -d "${SYSROOT}" ]]; then
- echo -n "Error: CodeSourcery does not contain libc for ${CROSS_TARGET}: "
- echo "${SYSROOT} not found."
- exit -1
- fi
-
- for tool in ${CROSS_TARGET_AS} ${CROSS_TARGET_LD}; do
- if [[ ! -e $tool ]]; then
- echo "${tool} not found; exiting."
- exit -1
- fi
- done
-}
-
-
-
-# Build basic llvm tools
-ConfigureAndBuildLlvm() {
- local saved_dir=$(pwd)
- local tmpdir=${TMP}/llvm
- Banner "Building llvm in ${tmpdir}"
- rm -rf ${tmpdir}
- mkdir -p ${tmpdir}
- cd ${tmpdir}
-
- Run "Untaring" tar jxf ${LLVM_TARBALL}
- cd llvm
-
- RunWithLog "Configure" ${TMP}/llvm.configure.log\
- env -i PATH=/usr/bin/:/bin \
- CC=${CC32} \
- CXX=${CXX32} \
- ./configure \
- --disable-jit \
- --enable-optimized \
- --enable-targets=arm \
- --target=arm-none-linux-gnueabi \
- --prefix=${LLVM_INSTALL_DIR} \
- --with-llvmgccdir=${LLVMGCC_INSTALL_DIR}
-
- RunWithLog "Make" ${TMP}/llvm.make.log \
- env -i PATH=/usr/bin/:/bin \
- CC=${CC32} \
- CXX=${CXX32} \
- make ${MAKE_OPTS}
-
- RunWithLog "Installing LLVM" ${TMP}/llvm-install.log \
- make ${MAKE_OPTS} install
-
- cd ${saved_dir}
-}
-
-
-ConfigureAndBuildGcc() {
- local tmpdir=${TMP}/llvm-gcc
- local saved_dir=$(pwd)
-
- Banner "Building llvmgcc in ${tmpdir}"
-
- rm -rf ${tmpdir}
- mkdir -p ${tmpdir}
- cd ${tmpdir}
-
- Run "Untaring llvm-gcc" \
- tar jxf ${LLVMGCC_TARBALL}
-
- # NOTE: you cannot build llvm-gcc inside the source directory
- mkdir -p build
- cd build
- # TODO(robertm): do we really need CROSS_TARGET_*
- RunWithLog "Configure" ${TMP}/llvm-gcc.configure.log \
- env -i PATH=/usr/bin/:/bin \
- CC=${CC32} \
- CXX=${CXX32} \
- CFLAGS="-Dinhibit_libc" \
- CXXFLAGS="-Dinhibit_libc" \
- ../llvm-gcc-4.2/configure \
- --prefix=${LLVMGCC_INSTALL_DIR} \
- --enable-llvm=${LLVM_INSTALL_DIR} \
- --program-prefix=llvm- \
- --disable-libmudflap \
- --disable-decimal-float \
- --disable-libssp \
- --disable-libgomp \
- --enable-languages=c,c++ \
- --disable-threads \
- --disable-libstdcxx-pch \
- --disable-shared \
- --target=${CROSS_TARGET} \
- --with-arch=armv6 \
- --with-fpu=vfp \
- --with-as=${CROSS_TARGET_AS} \
- --with-ld=${CROSS_TARGET_LD} \
- --with-sysroot=${SYSROOT}
-
- RunWithLog "Make" ${TMP}/llvm-gcc.make.log \
- env -i PATH=/usr/bin/:/bin:${CODE_SOURCERY_ROOT}/arm-2007q3/bin \
- CC=${CC32} \
- CXX=${CXX32} \
- make \
- ${MAKE_OPTS}
-
- RunWithLog "Install" ${TMP}/llvm-gcc.install.log \
- env -i PATH=/usr/bin/:/bin:${CODE_SOURCERY_ROOT}/arm-2007q3/bin \
- make install
-
- cd ${saved_dir}
-}
-
-
-
-######################################################################
-# Main
-######################################################################
-if [ $# -eq 0 ] ; then
- echo
- echo "ERROR: you must specify a mode on the commandline:"
- echo
- Usage
- exit -1
-fi
-
-MODE=$1
-shift
-
-#@
-#@ help
-#@
-#@ print help for all modes
-if [ $MODE} = 'help' ] ; then
- Usage
- exit 0
-fi
-
-#@
-#@ toolchain
-#@
-#@ create an llvm/cs based toolchain
-if [ ${MODE} = 'toolchain' ] ; then
- mkdir -p ${TMP}
- PathSanityCheck
- ClearInstallDir
- DownloadOrCopyAndInstallSourcery
- ConfigureAndBuildLlvm
- ConfigureAndBuildGcc
-fi
-
-echo "ERROR: unknown mode ${MODE}"
-exit -1
« no previous file with comments | « tools/llvm/unsupported/driver/pnacl-pexecheck.py ('k') | tools/llvm/unsupported/non_bitcode_symbols.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698