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

Side by Side Diff: pnacl/build.sh

Issue 22859030: Remove wrapper-link-and-translate from PNaCl and pnacl_shared_newlib from SCons. (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client
Patch Set: one more reference Created 7 years, 4 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « SConstruct ('k') | pnacl/driver/pnacl-translate.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/bin/bash 1 #!/bin/bash
2 # Copyright (c) 2012 The Native Client Authors. All rights reserved. 2 # Copyright (c) 2012 The Native Client Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 # 5 #
6 #@ PNaCl toolchain build script 6 #@ PNaCl toolchain build script
7 #@------------------------------------------------------------------- 7 #@-------------------------------------------------------------------
8 #@ This script builds the ARM and PNaCl untrusted toolchains. 8 #@ This script builds the ARM and PNaCl untrusted toolchains.
9 #@ It MUST be run from the native_client/ directory. 9 #@ It MUST be run from the native_client/ directory.
10 ###################################################################### 10 ######################################################################
(...skipping 665 matching lines...) Expand 10 before | Expand all | Expand 10 after
676 676
677 #+ translator-clean <arch> - 677 #+ translator-clean <arch> -
678 #+ Clean one translator install/build 678 #+ Clean one translator install/build
679 translator-clean() { 679 translator-clean() {
680 local arch=$1 680 local arch=$1
681 StepBanner "TRANSLATOR" "Clean ${arch}" 681 StepBanner "TRANSLATOR" "Clean ${arch}"
682 rm -rf "$(GetTranslatorInstallDir ${arch})" 682 rm -rf "$(GetTranslatorInstallDir ${arch})"
683 rm -rf "$(GetTranslatorBuildDir ${arch})" 683 rm -rf "$(GetTranslatorBuildDir ${arch})"
684 } 684 }
685 685
686 newlib-shared() {
687 StepBanner "NEWLIB-SHARED"
688 local naclgcc_base="${NNACL_GLIBC_ROOT}/${NACL64_TARGET}"
689 mkdir -p "${INSTALL_LIB_X8632}"
690 mkdir -p "${INSTALL_LIB_X8664}"
691 mkdir -p "${INSTALL_LIB_ARM}"
692
693 StepBanner "NEWLIB-SHARED" "clean out glibc stuff"
694 local LIBS_TO_CLEAN="libstdc++.so.6 \
695 libgcc_s.so.1 \
696 libc_nonshared.a \
697 libc.so.* \
698 libm.so.* \
699 libdl.so.* \
700 librt.so.* \
701 libmemusage.so \
702 libpthread_nonshared.a \
703 libpthread.so.* \
704 runnable-ld.so \
705 ld-2.9.so"
706 for lib in ${LIBS_TO_CLEAN} ; do
707 echo "${lib}"
708 # TODO(robertm): fix relaxed quoting due to wildcard usage
709 rm -rf ${INSTALL_LIB_X8664}/${lib}
710 rm -rf ${INSTALL_LIB_X8632}/${lib}
711 done
712
713 StepBanner "NEWLIB-SHARED" "stealing shared loader"
714 local glibc_libs_to_copy="runnable-ld.so ld-2.9.so ld-nacl-x86-*.so.1"
715 local lib
716 for lib in ${glibc_libs_to_copy} ; do
717 # TODO(robertm): fix relaxed quoting due to wildcard usage
718 echo "${lib}"
719 cp -a ${naclgcc_base}/lib32/${lib} "${INSTALL_LIB_X8632}"
720 cp -a ${naclgcc_base}/lib/${lib} "${INSTALL_LIB_X8664}"
721 done
722
723 StepBanner "NEWLIB-SHARED" "build native libgcc_eh"
724 # TBD
725
726 StepBanner "NEWLIB-SHARED" "building newlib shared libs"
727 local newlib_libs_to_convert="libc libg libm libstdc++"
728 for lib in ${newlib_libs_to_convert} ; do
729 echo "translating ${lib}"
730 archive_in=${NEWLIB_INSTALL_DIR}/lib/${lib}.a
731 pso_out=${NEWLIB_INSTALL_DIR}/lib/${lib}.pso
732 soname=${lib}.so
733 ${PNACL_CC_GLIBC} \
734 -nodefaultlibs \
735 -shared \
736 -Wl,--whole-archive \
737 ${archive_in} \
738 -Wl,--no-whole-archive \
739 -Wl,-soname=${soname} \
740 -o ${pso_out}
741 # This is not a long term solution we probably should not
742 # translate stuff we have in pso form in this script.
743 # However, it allow some reuse of the glibc infrastructure.
744 # NOTE: arm support missing
745 # NOTE: This overwrites glibc libraries as we done not have
746 # separate directories for native libs
747 ${PNACL_TRANSLATE} \
748 --newlib-shared-experiment -nostdlib -shared -fPIC \
749 -arch x86-32 ${pso_out} -o ${INSTALL_LIB_X8632}/${soname}
750 ${PNACL_TRANSLATE} \
751 --newlib-shared-experiment -nostdlib -shared -fPIC \
752 -arch x86-64 ${pso_out} -o ${INSTALL_LIB_X8664}/${soname}
753 done
754 }
755
756 # Builds crt1.bc for GlibC, which is just sysdeps/nacl/start.c and csu/init.c 686 # Builds crt1.bc for GlibC, which is just sysdeps/nacl/start.c and csu/init.c
757 glibc-crt1() { 687 glibc-crt1() {
758 StepBanner "GLIBC" "Building crt1.bc" 688 StepBanner "GLIBC" "Building crt1.bc"
759 local tmpdir="${TC_BUILD}/glibc-crt1" 689 local tmpdir="${TC_BUILD}/glibc-crt1"
760 local flags="-DUSE_IN_LIBIO -I${TC_SRC_GLIBC}/sysdeps/gnu" 690 local flags="-DUSE_IN_LIBIO -I${TC_SRC_GLIBC}/sysdeps/gnu"
761 local cc_cmd="${PNACL_CC_GLIBC} ${flags}" 691 local cc_cmd="${PNACL_CC_GLIBC} ${flags}"
762 local ld_cmd="${PNACL_LD_GLIBC}" 692 local ld_cmd="${PNACL_LD_GLIBC}"
763 693
764 rm -rf "${tmpdir}" 694 rm -rf "${tmpdir}"
765 mkdir -p "${tmpdir}" 695 mkdir -p "${tmpdir}"
(...skipping 2313 matching lines...) Expand 10 before | Expand all | Expand 10 after
3079 # has not already been built, just symlink the bin dirs together. 3009 # has not already been built, just symlink the bin dirs together.
3080 if [[ ! -d "${INSTALL_NEWLIB_BIN}" ]]; then 3010 if [[ ! -d "${INSTALL_NEWLIB_BIN}" ]]; then
3081 mkdir -p "${INSTALL_NEWLIB}" 3011 mkdir -p "${INSTALL_NEWLIB}"
3082 ln -s ${bindir} "${INSTALL_NEWLIB_BIN}" 3012 ln -s ${bindir} "${INSTALL_NEWLIB_BIN}"
3083 fi 3013 fi
3084 fi 3014 fi
3085 # This directory (the ${INSTALL_ROOT}/${libmode} part) 3015 # This directory (the ${INSTALL_ROOT}/${libmode} part)
3086 # should be kept in sync with INSTALL_NEWLIB_BIN et al. 3016 # should be kept in sync with INSTALL_NEWLIB_BIN et al.
3087 local destdir="${INSTALL_ROOT}/${libmode}/${bindir}" 3017 local destdir="${INSTALL_ROOT}/${libmode}/${bindir}"
3088 3018
3089 driver-install-python "${destdir}" "pnacl-*.py" "wrapper-*.py" 3019 driver-install-python "${destdir}" "pnacl-*.py"
3090 3020
3091 # Tell the driver the library mode and host arch 3021 # Tell the driver the library mode and host arch
3092 echo """LIBMODE=${libmode} 3022 echo """LIBMODE=${libmode}
3093 HAS_FRONTEND=1 3023 HAS_FRONTEND=1
3094 HOST_ARCH=${HOST_ARCH}""" > "${destdir}"/driver.conf 3024 HOST_ARCH=${HOST_ARCH}""" > "${destdir}"/driver.conf
3095 3025
3096 # On windows, copy the cygwin DLLs needed by the driver tools 3026 # On windows, copy the cygwin DLLs needed by the driver tools
3097 if ${BUILD_PLATFORM_WIN}; then 3027 if ${BUILD_PLATFORM_WIN}; then
3098 StepBanner "DRIVER" "Copying cygwin libraries" 3028 StepBanner "DRIVER" "Copying cygwin libraries"
3099 local deps="gcc_s-1 iconv-2 win1 intl-8 stdc++-6 z" 3029 local deps="gcc_s-1 iconv-2 win1 intl-8 stdc++-6 z"
(...skipping 583 matching lines...) Expand 10 before | Expand all | Expand 10 after
3683 3613
3684 if [ "$(type -t $1)" != "function" ]; then 3614 if [ "$(type -t $1)" != "function" ]; then
3685 #Usage 3615 #Usage
3686 echo "ERROR: unknown function '$1'." >&2 3616 echo "ERROR: unknown function '$1'." >&2
3687 echo "For help, try:" 3617 echo "For help, try:"
3688 echo " $0 help" 3618 echo " $0 help"
3689 exit 1 3619 exit 1
3690 fi 3620 fi
3691 3621
3692 "$@" 3622 "$@"
OLDNEW
« no previous file with comments | « SConstruct ('k') | pnacl/driver/pnacl-translate.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698