diff options
author | olonho@google.com <olonho@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-12 14:17:08 +0000 |
---|---|---|
committer | olonho@google.com <olonho@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-12 14:17:08 +0000 |
commit | bb794ddf11e17b02716b5e3394ee10805874116d (patch) | |
tree | c6ff89e2228c019b743d2da3220cb34d25f2350a | |
parent | 24ebb593d7d613004e46ecc203e605c9b3f7ac46 (diff) | |
download | chromium_src-bb794ddf11e17b02716b5e3394ee10805874116d.zip chromium_src-bb794ddf11e17b02716b5e3394ee10805874116d.tar.gz chromium_src-bb794ddf11e17b02716b5e3394ee10805874116d.tar.bz2 |
ARM Mono support in buildbots.
BUG=None
TEST=Script builds Mono
Review URL: https://chromiumcodereview.appspot.com/11369049
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167174 0039d316-1c4b-4281-b951-d872f2087c98
-rwxr-xr-x | native_client_sdk/src/build_tools/nacl-mono-builder.py | 11 | ||||
-rwxr-xr-x | native_client_sdk/src/build_tools/nacl-mono-runtime.sh | 59 |
2 files changed, 57 insertions, 13 deletions
diff --git a/native_client_sdk/src/build_tools/nacl-mono-builder.py b/native_client_sdk/src/build_tools/nacl-mono-builder.py index 46062bff..d9bc8d5 100755 --- a/native_client_sdk/src/build_tools/nacl-mono-builder.py +++ b/native_client_sdk/src/build_tools/nacl-mono-builder.py @@ -92,14 +92,17 @@ def main(args): buildbot_common.Run(['git', 'checkout', git_rev], cwd=MONO_DIR) arch_to_bitsize = {'x86-32': '32', - 'x86-64': '64'} - arch_to_output_folder = {'x86-32': 'runtime-build', - 'x86-64': 'runtime64-build'} + 'x86-64': '64', + 'arm': 'pnacl'} + arch_to_output_folder = {'x86-32': 'runtime-x86-32-build', + 'x86-64': 'runtime-x86-64-build', + 'arm': 'runtime-arm-build'} buildbot_common.BuildStep(build_prefix + 'Configure Mono') os.environ['NACL_SDK_ROOT'] = sdk_dir + os.environ['TARGET_ARCH'] = options.arch os.environ['TARGET_BITSIZE'] = arch_to_bitsize[options.arch] - buildbot_common.Run(['./autogen.sh'], cwd=MONO_DIR) + buildbot_common.Run(['./autogen.sh'], cwd=MONO_DIR) buildbot_common.Run(['make', 'distclean'], cwd=MONO_DIR) buildbot_common.BuildStep(build_prefix + 'Build and Install Mono') diff --git a/native_client_sdk/src/build_tools/nacl-mono-runtime.sh b/native_client_sdk/src/build_tools/nacl-mono-runtime.sh index 7354a86..b65d4e0d 100755 --- a/native_client_sdk/src/build_tools/nacl-mono-runtime.sh +++ b/native_client_sdk/src/build_tools/nacl-mono-runtime.sh @@ -24,19 +24,45 @@ fi set -e cd $ORIGINAL_CWD -if [ $TARGET_BITSIZE == "32" ]; then +case "${TARGET_ARCH}" in +x86-32) + readonly USE_PNACL=0 readonly NACL_CROSS_PREFIX_DASH=i686-nacl- readonly CONFIG_OPTS="--host=i686-pc-linux-gnu \ --build=i686-pc-linux-gnu \ --target=i686-pc-linux-gnu" readonly LIBDIR=lib32 -else + ;; +x86-64) + readonly USE_PNACL=0 readonly NACL_CROSS_PREFIX_DASH=x86_64-nacl- readonly CONFIG_OPTS="--host=x86_64-pc-linux-gnu \ --build=x86_64-pc-linux-gnu \ --target=x86_64-pc-linux-gnu" readonly LIBDIR=lib -fi + ;; +arm) + readonly USE_PNACL=1 + readonly NACL_CROSS_PREFIX_DASH=pnacl- + readonly PNACL_LINK_ARGS="-arch armv7 -O2" + readonly CONFIG_OPTS="--host=armv7l-unknown-linux-gnueabi \ + --build=x86_64-pc-linux-gnu \ + --target=armv7l-unknown-linux-gnueabi" + readonly LIBDIR=libarm + # TODO(olonho): move it to Mono's configure, once nacl target implemented. + readonly CUSTOM_CFLAGS="\ +-D__arm__ \ +-D__ARM_ARCH_7__ \ +-D__portable_native_client__ \ +-DARM_FPU_VFP=1 \ +-Dtimezone=_timezone \ +-DDISABLE_SOCKETS \ +-DDISABLE_ATTACH \ +-DUSE_NEWLIB \ +" + readonly CUSTOM_LDFLAGS=${PNACL_LINK_ARGS} + ;; +esac # UGLY hack to allow dynamic linking sed -i -e s/elf_i386/elf_nacl/ -e s/elf_x86_64/elf64_nacl/ \ @@ -52,18 +78,33 @@ cd ${BUILD_DIR} mkdir -p ${INSTALL_DIR} -readonly NACL_BIN_PATH=${NACL_SDK_ROOT}/toolchain/linux_x86_glibc/bin -readonly NACLCC=${NACL_BIN_PATH}/${NACL_CROSS_PREFIX_DASH}gcc -readonly NACLCXX=${NACL_BIN_PATH}/${NACL_CROSS_PREFIX_DASH}g++ +if [ ${USE_PNACL} == 1 ]; then + readonly NACL_BIN_PATH="\ +${NACL_SDK_ROOT}/toolchain/linux_x86_pnacl/newlib/bin" + readonly NACLCC=${NACL_BIN_PATH}/pnacl-clang + readonly NACLCXX=${NACL_BIN_PATH}/pnacl-clang++ +else + readonly NACL_BIN_PATH=${NACL_SDK_ROOT}/toolchain/linux_x86_glibc/bin + readonly NACLCC=${NACL_BIN_PATH}/${NACL_CROSS_PREFIX_DASH}gcc + readonly NACLCXX=${NACL_BIN_PATH}/${NACL_CROSS_PREFIX_DASH}g++ +fi readonly NACLAR=${NACL_BIN_PATH}/${NACL_CROSS_PREFIX_DASH}ar readonly NACLRANLIB=${NACL_BIN_PATH}/${NACL_CROSS_PREFIX_DASH}ranlib readonly NACLLD=${NACL_BIN_PATH}/${NACL_CROSS_PREFIX_DASH}ld +readonly NACLOBJDUMP=${NACL_BIN_PATH}/${NACL_CROSS_PREFIX_DASH}objdump +readonly NACLSTRIP=${NACL_BIN_PATH}/${NACL_CROSS_PREFIX_DASH}strip + +CFLAGS="-g -O2 -D_POSIX_PATH_MAX=256 -DPATH_MAX=256 $CUSTOM_CFLAGS" +LDFLAGS="$CUSTOM_LDFLAGS" +LIBS="-lnacl_dyncode -lc -lg -lnosys -lpthread" -CC=${NACLCC} CXX=${NACLCXX} AR=${NACLAR} RANLIB=${NACLRANLIB} LD=${NACLLD} \ +CC=${NACLCC} CXX=${NACLCXX} LD=${NACLLD} \ +STRIP=${NACLSTRIP} AR=${NACLAR} RANLIB=${NACLRANLIB} OBJDUMP=${NACLOBJDUMP} \ PKG_CONFIG_LIBDIR= \ PATH=${NACL_BIN_PATH}:${PATH} \ -LIBS="-lnacl_dyncode -lc -lg -lnosys -lnacl" \ -CFLAGS="-g -O2 -D_POSIX_PATH_MAX=256 -DPATH_MAX=256" \ +LIBS="${LIBS}" \ +CFLAGS="${CFLAGS}" \ +LDFLAGS="${LDFLAGS}" \ ${MONO_DIR}/configure ${CONFIG_OPTS} \ --exec-prefix=${INSTALL_DIR} \ --libdir=${INSTALL_DIR}/${LIBDIR} \ |