X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=configure;h=59aa6ece6b2f1c230fa028f2ff722afc1b7758f5;hb=8b272238f1d10c9f0a77010f0a998cd697722748;hp=cff6f32d1466e3415ff2243a0affea92d2004021;hpb=cd6fb59ee266d0eeb60a9bcfdd1c513a88a50c5c;p=rust.git diff --git a/configure b/configure index cff6f32d146..59aa6ece6b2 100755 --- a/configure +++ b/configure @@ -348,6 +348,11 @@ case $CFG_CPUTYPE in CFG_CPUTYPE=arm ;; + armv7l) + CFG_CPUTYPE=arm + CFG_OSTYPE="${CFG_OSTYPE}eabihf" + ;; + x86_64 | x86-64 | x64 | amd64) CFG_CPUTYPE=x86_64 ;; @@ -401,6 +406,7 @@ opt optimize 1 "build optimized rust code" opt optimize-cxx 1 "build optimized C++ code" opt optimize-llvm 1 "build optimized LLVM" opt optimize-tests 1 "build tests with optimizations" +opt libcpp 1 "build with llvm with libc++ instead of libstdc++ when using clang" opt llvm-assertions 1 "build LLVM with assertions" opt debug 1 "build with extra debug fun" opt ratchet-bench 0 "ratchet benchmarks" @@ -410,15 +416,17 @@ opt mingw-cross 0 "cross-compile for win32 using mingw" opt clang 0 "prefer clang to gcc for building the runtime" opt ccache 0 "invoke gcc/clang via ccache to reuse object files between builds" opt local-rust 0 "use an installed rustc rather than downloading a snapshot" -opt pax-flags 0 "apply PaX flags to rustc binaries (required for GRSecurity/PaX-patched kernels)" opt inject-std-version 1 "inject the current compiler version of libstd into programs" opt llvm-static-stdcpp 0 "statically link to libstdc++ for LLVM" opt rpath 1 "build rpaths into rustc itself" opt nightly 0 "build nightly packages" opt verify-install 1 "verify installed binaries work" +opt jemalloc 1 "build liballoc with jemalloc" valopt prefix "/usr/local" "set installation prefix" valopt local-rust-root "/usr/local" "set prefix for local rust binary" valopt llvm-root "" "set LLVM root" +valopt jemalloc-root "" "set directory where libjemalloc_pic.a is located" +valopt libuv-root "" "set directory where libuv.a is located" valopt android-cross-path "/opt/ndk_standalone" "Android NDK standalone path" valopt mingw32-cross-path "" "MinGW32 cross compiler path" @@ -510,12 +518,6 @@ then fi fi -if [ "$CFG_OSTYPE" = "unknown-linux-gnu" ] -then - probe CFG_PAXCTL paxctl /sbin/paxctl - probe CFG_ZCAT zcat -fi - step_msg "looking for target specific programs" probe CFG_ADB adb @@ -538,51 +540,6 @@ then fi fi -if [ "$CFG_OSTYPE" = "unknown-linux-gnu" ] -then - if [ ! -z "$CFG_ENABLE_PAX_FLAGS" -a -z "$CFG_PAXCTL" ] - then - err "enabled PaX markings but no paxctl binary found" - fi - - if [ -z "$CFG_DISABLE_PAX_FLAGS" ] - then - # GRSecurity/PaX detection. This can be very flaky. - GRSEC_DETECTED= - - # /dev/grsec only exists if CONFIG_GRKERNSEC_NO_RBAC is not set. - # /proc/sys/kernel/grsecurity is not available if ÇONFIG_GRKERNSEC_SYSCTL is not set. - if [ -e /dev/grsec -o -d /proc/sys/kernel/grsecurity ] - then - GRSEC_DETECTED=1 - # /proc/config.gz is normally only available to root, and only if CONFIG_IKCONFIG_PROC has been set. - elif [ -r /proc/config.gz -a ! -z "$CFG_ZCAT" ] - then - if "$CFG_ZCAT" /proc/config.gz | grep --quiet "CONFIG_GRKERNSEC=y" - then - GRSEC_DETECTED=1 - fi - # Flaky. - elif grep --quiet grsec /proc/version - then - GRSEC_DETECTED=1 - fi - - if [ ! -z "$GRSEC_DETECTED" ] - then - step_msg "GRSecurity: yes" - if [ ! -z "$CFG_PAXCTL" ] - then - CFG_ENABLE_PAX_FLAGS=1 - else - warn "GRSecurity kernel detected but no paxctl binary found: not setting CFG_ENABLE_PAX_FLAGS" - fi - else - step_msg "GRSecurity: no" - fi - fi -fi - BIN_SUF= if [ "$CFG_OSTYPE" = "pc-mingw32" ] || [ "$CFG_OSTYPE" = "w64-mingw32" ] then @@ -912,6 +869,7 @@ do make_dir $h/test/debuginfo-lldb make_dir $h/test/codegen make_dir $h/test/doc-tutorial + make_dir $h/test/doc-guide make_dir $h/test/doc-guide-ffi make_dir $h/test/doc-guide-runtime make_dir $h/test/doc-guide-macros @@ -919,7 +877,6 @@ do make_dir $h/test/doc-guide-pointers make_dir $h/test/doc-guide-container make_dir $h/test/doc-guide-tasks - make_dir $h/test/doc-complement-cheatsheet make_dir $h/test/doc-rust done @@ -934,8 +891,25 @@ then msg "git: submodule sync" "${CFG_GIT}" submodule sync + msg "git: submodule init" + "${CFG_GIT}" submodule init + + # Disable submodules that we're not using + if [ ! -z "${CFG_LLVM_ROOT}" ]; then + msg "git: submodule deinit src/llvm" + "${CFG_GIT}" submodule deinit src/llvm + fi + if [ ! -z "${CFG_JEMALLOC_ROOT}" ]; then + msg "git: submodule deinit src/jemalloc" + "${CFG_GIT}" submodule deinit src/jemalloc + fi + if [ ! -z "${CFG_LIBUV_ROOT}" ]; then + msg "git: submodule deinit src/libuv" + "${CFG_GIT}" submodule deinit src/libuv + fi + msg "git: submodule update" - "${CFG_GIT}" submodule update --init + "${CFG_GIT}" submodule update need_ok "git failed" msg "git: submodule foreach sync" @@ -943,7 +917,7 @@ then need_ok "git failed" msg "git: submodule foreach update" - "${CFG_GIT}" submodule update --init --recursive + "${CFG_GIT}" submodule update --recursive need_ok "git failed" # NB: this is just for the sake of getting the submodule SHA1 values @@ -1043,31 +1017,29 @@ do case "$CFG_CC" in ("ccache clang") - LLVM_CXX_32="ccache clang++ -m32 -Qunused-arguments" - LLVM_CC_32="ccache clang -m32 -Qunused-arguments" + LLVM_CXX_32="ccache clang++ -Qunused-arguments" + LLVM_CC_32="ccache clang -Qunused-arguments" LLVM_CXX_64="ccache clang++ -Qunused-arguments" LLVM_CC_64="ccache clang -Qunused-arguments" - LLVM_OPTS="$LLVM_OPTS --enable-libcpp" ;; ("clang") - LLVM_CXX_32="clang++ -m32 -Qunused-arguments" - LLVM_CC_32="clang -m32 -Qunused-arguments" + LLVM_CXX_32="clang++ -Qunused-arguments" + LLVM_CC_32="clang -Qunused-arguments" LLVM_CXX_64="clang++ -Qunused-arguments" LLVM_CC_64="clang -Qunused-arguments" - LLVM_OPTS="$LLVM_OPTS --enable-libcpp" ;; ("ccache gcc") - LLVM_CXX_32="ccache g++ -m32" - LLVM_CC_32="ccache gcc -m32" + LLVM_CXX_32="ccache g++" + LLVM_CC_32="ccache gcc" LLVM_CXX_64="ccache g++" LLVM_CC_64="ccache gcc" ;; ("gcc") - LLVM_CXX_32="g++ -m32" - LLVM_CC_32="gcc -m32" + LLVM_CXX_32="g++" + LLVM_CC_32="gcc" LLVM_CXX_64="g++" LLVM_CC_64="gcc" @@ -1075,21 +1047,41 @@ do (*) msg "inferring LLVM_CXX/CC from CXX/CC = $CXX/$CC" - LLVM_CXX_32="$CXX -m32" - LLVM_CC_32="$CC -m32" + LLVM_CXX_32="$CXX" + LLVM_CC_32="$CC" LLVM_CXX_64="$CXX" LLVM_CC_64="$CC" ;; esac - LLVM_CFLAGS_32="-m32" - LLVM_CXXFLAGS_32="-m32" - LLVM_LDFLAGS_32="-m32" + case "$CFG_CPUTYPE" in + (x86*) + LLVM_CXX_32="$LLVM_CXX_32 -m32" + LLVM_CC_32="$LLVM_CC_32 -m32" - LLVM_CFLAGS_64="" - LLVM_CXXFLAGS_64="" - LLVM_LDFLAGS_64="" + LLVM_CFLAGS_32="-m32" + LLVM_CXXFLAGS_32="-m32" + LLVM_LDFLAGS_32="-m32" + + LLVM_CFLAGS_64="" + LLVM_CXXFLAGS_64="" + LLVM_LDFLAGS_64="" + + LLVM_CXX_32="$LLVM_CXX_32 -m32" + LLVM_CC_32="$LLVM_CC_32 -m32" + ;; + + (*) + LLVM_CFLAGS_32="" + LLVM_CXXFLAGS_32="" + LLVM_LDFLAGS_32="" + + LLVM_CFLAGS_64="" + LLVM_CXXFLAGS_64="" + LLVM_LDFLAGS_64="" + ;; + esac if echo $t | grep -q x86_64 then @@ -1112,6 +1104,10 @@ do CXXFLAGS=$LLVM_CXXFLAGS LDFLAGS=$LLVM_LDFLAGS + if [ -z "$CFG_DISABLE_LIBCPP" ] && [ -n "$CFG_USING_CLANG" ]; then + LLVM_OPTS="$LLVM_OPTS --enable-libcpp" + fi + LLVM_FLAGS="$LLVM_TARGETS $LLVM_OPTS $LLVM_BUILD \ $LLVM_HOST $LLVM_TARGET --with-python=$CFG_PYTHON" @@ -1170,6 +1166,9 @@ putvar CFG_ANDROID_CROSS_PATH putvar CFG_MINGW32_CROSS_PATH putvar CFG_MANDIR putvar CFG_DISABLE_INJECT_STD_VERSION +putvar CFG_JEMALLOC_ROOT +putvar CFG_LIBUV_ROOT +putvar CFG_DISABLE_JEMALLOC # Avoid spurious warnings from clang by feeding it original source on # ccache-miss rather than preprocessed input.