diff options
author | Gabriel Russell <gabriel.russell@mongodb.com> | 2019-04-01 15:29:17 -0400 |
---|---|---|
committer | Gabriel Russell <gabriel.russell@mongodb.com> | 2019-04-25 14:43:45 -0400 |
commit | 24d4a296aacf4acc981094f5cdf973ad62ab67fa (patch) | |
tree | ec6a720a604c709cc4d38bceb25f7353052748eb /etc | |
parent | fdc3712e4cb89c23451061b4c927a78340269d89 (diff) | |
download | mongo-24d4a296aacf4acc981094f5cdf973ad62ab67fa.tar.gz |
SERVER-39465 upgrade android toolchain to r19c
Diffstat (limited to 'etc')
-rw-r--r-- | etc/evergreen.yml | 187 | ||||
-rw-r--r-- | etc/scons/aarch64-linux-android_toolchain.vars | 3 | ||||
-rw-r--r-- | etc/scons/android_toolchain.vars | 30 | ||||
-rw-r--r-- | etc/scons/armv7a-linux-androideabi_toolchain.vars | 3 | ||||
-rw-r--r-- | etc/scons/x86_64-linux-android_toolchain.vars | 3 |
5 files changed, 119 insertions, 107 deletions
diff --git a/etc/evergreen.yml b/etc/evergreen.yml index e137ff92efb..931e0ac9b52 100644 --- a/etc/evergreen.yml +++ b/etc/evergreen.yml @@ -852,7 +852,7 @@ functions: set -o verbose if [ "${setup_android_toolchain|}" = "true" ]; then ${activate_virtualenv} - PYTHON=$python ${compile_env|} src/buildscripts/setup-android-toolchain.sh ${android_toolchain_target_arch} ${android_toolchain_api_version} + PYTHON=$python ${compile_env|} src/buildscripts/setup-android-toolchain.sh $(pwd)/android_sdk fi "build java embedded sdk": @@ -3625,6 +3625,11 @@ tasks: VERSION=${version} WORKDIR=${workdir} + # build in a different directory then we run tests so that we can verify that the linking + # of tests are not relying any built in absolute paths + FINAL_PREFIX=$WORKDIR/src/build/mongo-embedded-sdk-$VERSION + BUILD_PREFIX=$FINAL_PREFIX-tmp + rm -rf mongo-c-driver # NOTE: If you change the C Driver version here, also change the substitution in the CocoaPod podspec below in the apple builder. @@ -3636,45 +3641,46 @@ tasks: trap "cat CMakeFiles/CMakeOutput.log" EXIT export ${compile_env|} - ${cmake_path|/opt/cmake/bin/cmake} -DCMAKE_INSTALL_PREFIX=$WORKDIR/src/build/mongo-embedded-sdk-$VERSION-tmp -DENABLE_SHM_COUNTERS=OFF -DENABLE_SNAPPY=OFF -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_TESTS=OFF -DENABLE_EXAMPLES=OFF -DENABLE_STATIC=OFF -DCMAKE_OSX_DEPLOYMENT_TARGET=${cdriver_cmake_osx_deployment_target|} ${cdriver_cmake_flags} + ${cmake_path|/opt/cmake/bin/cmake} -DCMAKE_INSTALL_PREFIX=$BUILD_PREFIX -DENABLE_SHM_COUNTERS=OFF -DENABLE_SNAPPY=OFF -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_TESTS=OFF -DENABLE_EXAMPLES=OFF -DENABLE_STATIC=OFF -DCMAKE_OSX_DEPLOYMENT_TARGET=${cdriver_cmake_osx_deployment_target|} ${cdriver_cmake_flags} + trap - EXIT # cancel the previous trap '...' EXIT make install VERBOSE=1 # TODO: Remove this when we upgrade to a version of the C driver that has CDRIVER-2854 fixed. - mkdir -p $WORKDIR/src/build/mongo-embedded-sdk-$VERSION-tmp/share/doc/mongo-c-driver - cp COPYING $WORKDIR/src/build/mongo-embedded-sdk-$VERSION-tmp/share/doc/mongo-c-driver - cp THIRD_PARTY_NOTICES $WORKDIR/src/build/mongo-embedded-sdk-$VERSION-tmp/share/doc/mongo-c-driver - if [ -d $WORKDIR/src/build/mongo-embedded-sdk-$VERSION-tmp/Frameworks ]; then + mkdir -p $BUILD_PREFIX/share/doc/mongo-c-driver + cp COPYING $BUILD_PREFIX/share/doc/mongo-c-driver + cp THIRD_PARTY_NOTICES $BUILD_PREFIX/share/doc/mongo-c-driver + if [ -d $BUILD_PREFIX/Frameworks ]; then # We need to account for the fact that on the Darwin # mobile platforms, things shouldn't go to the Resources # directory but on macOS they should. If the Resources # directory is there (it should be for the plist file), # then use it, otherwise just use the framework root. - if [ -e $WORKDIR/src/build/mongo-embedded-sdk-$VERSION-tmp/Frameworks/mongoc.framework/Resources ]; then - cp COPYING $WORKDIR/src/build/mongo-embedded-sdk-$VERSION-tmp/Frameworks/mongoc.framework/Resources - cp THIRD_PARTY_NOTICES $WORKDIR/src/build/mongo-embedded-sdk-$VERSION-tmp/Frameworks/mongoc.framework/Resources - plutil -insert MinimumOSVersion -string ${cdriver_cmake_osx_deployment_target} $WORKDIR/src/build/mongo-embedded-sdk-$VERSION-tmp/Frameworks/mongoc.framework/Resources/Info.plist + if [ -e $BUILD_PREFIX/Frameworks/mongoc.framework/Resources ]; then + cp COPYING $BUILD_PREFIX/Frameworks/mongoc.framework/Resources + cp THIRD_PARTY_NOTICES $BUILD_PREFIX/Frameworks/mongoc.framework/Resources + plutil -insert MinimumOSVersion -string ${cdriver_cmake_osx_deployment_target} $BUILD_PREFIX/Frameworks/mongoc.framework/Resources/Info.plist else - cp COPYING $WORKDIR/src/build/mongo-embedded-sdk-$VERSION-tmp/Frameworks/mongoc.framework - cp THIRD_PARTY_NOTICES $WORKDIR/src/build/mongo-embedded-sdk-$VERSION-tmp/Frameworks/mongoc.framework - plutil -insert MinimumOSVersion -string ${cdriver_cmake_osx_deployment_target} $WORKDIR/src/build/mongo-embedded-sdk-$VERSION-tmp/Frameworks/mongoc.framework/Info.plist + cp COPYING $BUILD_PREFIX/Frameworks/mongoc.framework + cp THIRD_PARTY_NOTICES $BUILD_PREFIX/Frameworks/mongoc.framework + plutil -insert MinimumOSVersion -string ${cdriver_cmake_osx_deployment_target} $BUILD_PREFIX/Frameworks/mongoc.framework/Info.plist fi - if [ -e $WORKDIR/src/build/mongo-embedded-sdk-$VERSION-tmp/Frameworks/bson.framework/Resources ]; then - cp COPYING $WORKDIR/src/build/mongo-embedded-sdk-$VERSION-tmp/Frameworks/bson.framework/Resources - cp THIRD_PARTY_NOTICES $WORKDIR/src/build/mongo-embedded-sdk-$VERSION-tmp/Frameworks/bson.framework/Resources - plutil -insert MinimumOSVersion -string ${cdriver_cmake_osx_deployment_target} $WORKDIR/src/build/mongo-embedded-sdk-$VERSION-tmp/Frameworks/bson.framework/Resources/Info.plist + if [ -e $BUILD_PREFIX/Frameworks/bson.framework/Resources ]; then + cp COPYING $BUILD_PREFIX/Frameworks/bson.framework/Resources + cp THIRD_PARTY_NOTICES $BUILD_PREFIX/Frameworks/bson.framework/Resources + plutil -insert MinimumOSVersion -string ${cdriver_cmake_osx_deployment_target} $BUILD_PREFIX/Frameworks/bson.framework/Resources/Info.plist else - cp COPYING $WORKDIR/src/build/mongo-embedded-sdk-$VERSION-tmp/Frameworks/bson.framework - cp THIRD_PARTY_NOTICES $WORKDIR/src/build/mongo-embedded-sdk-$VERSION-tmp/Frameworks/bson.framework - plutil -insert MinimumOSVersion -string ${cdriver_cmake_osx_deployment_target} $WORKDIR/src/build/mongo-embedded-sdk-$VERSION-tmp/Frameworks/bson.framework/Info.plist + cp COPYING $BUILD_PREFIX/Frameworks/bson.framework + cp THIRD_PARTY_NOTICES $BUILD_PREFIX/Frameworks/bson.framework + plutil -insert MinimumOSVersion -string ${cdriver_cmake_osx_deployment_target} $BUILD_PREFIX/Frameworks/bson.framework/Info.plist fi fi # CMake doesn't seem to do the dSYM for us for the framework - if [ -e $WORKDIR/src/build/mongo-embedded-sdk-$VERSION-tmp/Frameworks ]; then - pushd $WORKDIR/src/build/mongo-embedded-sdk-$VERSION-tmp/Frameworks + if [ -e $BUILD_PREFIX/Frameworks ]; then + pushd $BUILD_PREFIX/Frameworks xcrun dsymutil -o bson.framework.dSYM bson.framework/bson xcrun strip -Sx bson.framework/bson xcrun dsymutil -o mongoc.framework.dSYM mongoc.framework/mongoc @@ -3682,7 +3688,7 @@ tasks: popd fi - mv $WORKDIR/src/build/mongo-embedded-sdk-$VERSION-tmp $WORKDIR/src/build/mongo-embedded-sdk-$VERSION + mv $BUILD_PREFIX $FINAL_PREFIX - name: embedded_sdk_install_dev commands: @@ -3690,18 +3696,18 @@ tasks: vars: targets: install-embedded-dev task_compile_flags: &embedded_sdk_compile_flags >- + --allocator=system + --dbg=off + --enable-free-mon=off + --enable-http-client=off --install-mode=hygienic --js-engine=none - --prefix='$BUILD_ROOT/mongo-embedded-sdk-$MONGO_VERSION' - --dbg=off --opt=size - --enable-free-mon=off + --prefix='$BUILD_ROOT/mongo-embedded-sdk-$MONGO_VERSION' + --separate-debug --ssl=off - --enable-http-client=off --use-system-mongo-c=on --wiredtiger=off - --allocator=system - --separate-debug CPPPATH='$BUILD_ROOT/mongo-embedded-sdk-$MONGO_VERSION/include/libbson-1.0 $BUILD_ROOT/mongo-embedded-sdk-$MONGO_VERSION/include/libmongoc-1.0' task_compile_flags_extra: >- --link-model=dynamic-sdk @@ -10159,10 +10165,10 @@ buildvariants: cmake_path: /Applications/cmake-3.11.0-Darwin-x86_64/CMake.app/Contents/bin/cmake compile_env: DEVELOPER_DIR=/Applications/Xcode10.1.app compile_flags: >- - -j$(sysctl -n hw.logicalcpu) + --lto --variables-files=etc/scons/xcode_macosx.vars + -j$(sysctl -n hw.logicalcpu) FRAMEWORKPATH='$BUILD_ROOT/mongo-embedded-sdk-$MONGO_VERSION/Frameworks' - --lto cdriver_cmake_osx_deployment_target: "10.12" cdriver_cmake_flags: >- -DCMAKE_BUILD_TYPE=RelWithDebInfo @@ -10189,10 +10195,10 @@ buildvariants: cmake_path: /Applications/cmake-3.11.0-Darwin-x86_64/CMake.app/Contents/bin/cmake compile_env: DEVELOPER_DIR=/Applications/Xcode10.1.app compile_flags: >- - -j$(sysctl -n hw.logicalcpu) + --lto --variables-files=etc/scons/xcode_ios.vars + -j$(sysctl -n hw.logicalcpu) FRAMEWORKPATH='$BUILD_ROOT/mongo-embedded-sdk-$MONGO_VERSION/Frameworks' - --lto cdriver_cmake_osx_deployment_target: "11.0" cdriver_cmake_flags: >- -DCMAKE_BUILD_TYPE=RelWithDebInfo @@ -10221,10 +10227,10 @@ buildvariants: cmake_path: /Applications/cmake-3.11.0-Darwin-x86_64/CMake.app/Contents/bin/cmake compile_env: DEVELOPER_DIR=/Applications/Xcode10.1.app compile_flags: >- - -j$(sysctl -n hw.logicalcpu) + --lto --variables-files=etc/scons/xcode_ios_sim.vars + -j$(sysctl -n hw.logicalcpu) FRAMEWORKPATH='$BUILD_ROOT/mongo-embedded-sdk-$MONGO_VERSION/Frameworks' - --lto cdriver_cmake_osx_deployment_target: "11.0" cdriver_cmake_flags: >- -DCMAKE_BUILD_TYPE=RelWithDebInfo @@ -10256,10 +10262,10 @@ buildvariants: test_flags: --excludeWithAnyTags=uses_transactions compile_env: DEVELOPER_DIR=/Applications/Xcode10.1.app compile_flags: >- - -j$(sysctl -n hw.logicalcpu) + --lto --variables-files=etc/scons/xcode_tvos.vars + -j$(sysctl -n hw.logicalcpu) FRAMEWORKPATH='$BUILD_ROOT/mongo-embedded-sdk-$MONGO_VERSION/Frameworks' - --lto cdriver_cmake_osx_deployment_target: "11.0" cdriver_cmake_flags: >- -DCMAKE_BUILD_TYPE=RelWithDebInfo @@ -10288,10 +10294,10 @@ buildvariants: test_flags: --excludeWithAnyTags=uses_transactions compile_env: DEVELOPER_DIR=/Applications/Xcode10.1.app compile_flags: >- - -j$(sysctl -n hw.logicalcpu) + --lto --variables-files=etc/scons/xcode_tvos_sim.vars + -j$(sysctl -n hw.logicalcpu) FRAMEWORKPATH='$BUILD_ROOT/mongo-embedded-sdk-$MONGO_VERSION/Frameworks' - --lto cdriver_cmake_osx_deployment_target: "11.0" cdriver_cmake_flags: >- -DCMAKE_BUILD_TYPE=RelWithDebInfo @@ -10323,10 +10329,10 @@ buildvariants: test_flags: --excludeWithAnyTags=requires_mmapv1,uses_transactions,requires_http_client compile_env: DEVELOPER_DIR=/Applications/Xcode10.1.app compile_flags: >- - -j$(sysctl -n hw.logicalcpu) + --lto --variables-files=etc/scons/xcode_watchos.vars + -j$(sysctl -n hw.logicalcpu) FRAMEWORKPATH='$BUILD_ROOT/mongo-embedded-sdk-$MONGO_VERSION/Frameworks' - --lto cdriver_cmake_osx_deployment_target: "4.2" cdriver_cmake_flags: >- -DCMAKE_BUILD_TYPE=RelWithDebInfo @@ -10355,10 +10361,10 @@ buildvariants: test_flags: --excludeWithAnyTags=requires_mmapv1,uses_transactions,requires_http_client compile_env: DEVELOPER_DIR=/Applications/Xcode10.1.app compile_flags: >- - -j$(sysctl -n hw.logicalcpu) + --lto --variables-files=etc/scons/xcode_watchos_sim.vars + -j$(sysctl -n hw.logicalcpu) FRAMEWORKPATH='$BUILD_ROOT/mongo-embedded-sdk-$MONGO_VERSION/Frameworks' - --lto cdriver_cmake_osx_deployment_target: "4.2" cdriver_cmake_flags: >- -DCMAKE_BUILD_TYPE=RelWithDebInfo @@ -10400,10 +10406,10 @@ buildvariants: batchtime: 1440 # 1 day expansions: test_flags: --excludeWithAnyTags=uses_transactions - # We need --allocator=system here to work around SERVER-XXXXX + # We need --allocator=system here to work around SERVER-27675 compile_flags: >- - -j$(grep -c ^processor /proc/cpuinfo) --variables-files=etc/scons/mongodbtoolchain_v3_gcc.vars + -j$(grep -c ^processor /proc/cpuinfo) LIBPATH="\$BUILD_ROOT/mongo-embedded-sdk-\$MONGO_VERSION/lib" cdriver_cmake_flags: >- -DCMAKE_BUILD_TYPE=RelWithDebInfo @@ -10426,33 +10432,32 @@ buildvariants: test_flags: --excludeWithAnyTags=uses_transactions compile_env: JAVA_HOME=/opt/java/jdk8/ compile_flags: >- - -j$(grep -c ^processor /proc/cpuinfo) - --toolchain-root=$(dirname $(pwd))/android_toolchain-arm-21 - --variables-files=etc/scons/android_toolchain.vars - LIBS=clang_rt.builtins-arm-android - LIBPATH="$(dirname $($(dirname $(pwd))/android_toolchain-arm-21/bin/clang -print-file-name=libclang_rt.builtins-arm-android.a)) \$BUILD_ROOT/mongo-embedded-sdk-\$MONGO_VERSION/lib" --lto - AR=$(dirname $(pwd))/android_toolchain-arm-21/bin/llvm-ar + --toolchain-root=$(dirname $(pwd))/android_sdk + --variables-files=etc/scons/armv7a-linux-androideabi_toolchain.vars + -j$(grep -c ^processor /proc/cpuinfo) + LIBPATH="\$BUILD_ROOT/mongo-embedded-sdk-\$MONGO_VERSION/lib" cdriver_cmake_flags: >- - -DCMAKE_BUILD_TYPE=RelWithDebInfo - -DANDROID_NATIVE_API_LEVEL=21 -DANDROID_ABI=armeabi-v7a - -DCMAKE_TOOLCHAIN_FILE=$WORKDIR/android_sdk/ndk-bundle/build/cmake/android.toolchain.cmake - -DCMAKE_FIND_ROOT_PATH="$WORKDIR/android_toolchain-arm-21;$WORKDIR/src/build/mongo-embedded-sdk-$VERSION-tmp" + -DANDROID_PLATFORM=android-21 + -DANDROID_TOOLCHAIN=clang + -DCMAKE_BUILD_TYPE=RelWithDebInfo + -DCMAKE_C_FLAGS="-flto" + -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER - -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY - -DENABLE_ZLIB=OFF - -DENABLE_SRV=OFF - -DCMAKE_C_FLAGS="-flto" - -DCMAKE_SHARED_LINKER_FLAGS="-flto" + -DCMAKE_FIND_ROOT_PATH="$WORKDIR/src/build/mongo-embedded-sdk-$VERSION" -DCMAKE_INSTALL_RPATH=\$ORIGIN/../lib + -DCMAKE_SHARED_LINKER_FLAGS="-flto" + -DCMAKE_TOOLCHAIN_FILE=$WORKDIR/android_sdk/ndk-bundle/build/cmake/android.toolchain.cmake + -DENABLE_SRV=OFF + -DENABLE_ZLIB=OFF disable_unit_tests: true enable_embedded_tests: android_emulator setup_android_toolchain: true android_toolchain_system_image_arch: "armeabi-v7a" - android_system_image_version: "21" + android_system_image_version: 24 android_toolchain_target_arch: "arm" android_toolchain_api_version: "21" dump_scons_config_on_failure: true @@ -10468,32 +10473,32 @@ buildvariants: test_flags: --excludeWithAnyTags=uses_transactions compile_env: JAVA_HOME=/opt/java/jdk8/ compile_flags: >- + --lto + --toolchain-root=$(dirname $(pwd))/android_sdk + --variables-files=etc/scons/aarch64-linux-android_toolchain.vars -j$(grep -c ^processor /proc/cpuinfo) - --toolchain-root=$(dirname $(pwd))/android_toolchain-arm64-21 - --variables-files=etc/scons/android_toolchain.vars LIBPATH="\$BUILD_ROOT/mongo-embedded-sdk-\$MONGO_VERSION/lib" - --lto - AR=$(dirname $(pwd))/android_toolchain-arm64-21/bin/llvm-ar cdriver_cmake_flags: >- - -DCMAKE_BUILD_TYPE=RelWithDebInfo - -DANDROID_NATIVE_API_LEVEL=21 -DANDROID_ABI=arm64-v8a - -DCMAKE_TOOLCHAIN_FILE=$WORKDIR/android_sdk/ndk-bundle/build/cmake/android.toolchain.cmake - -DCMAKE_FIND_ROOT_PATH="$WORKDIR/android_toolchain-arm64-21;$WORKDIR/src/build/mongo-embedded-sdk-$VERSION-tmp" + -DANDROID_PLATFORM=android-21 + -DANDROID_TOOLCHAIN=clang + -DCMAKE_BUILD_TYPE=RelWithDebInfo + -DCMAKE_C_FLAGS="-flto" + -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER - -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY - -DENABLE_ZLIB=OFF - -DENABLE_SRV=OFF - -DCMAKE_C_FLAGS="-flto" - -DCMAKE_SHARED_LINKER_FLAGS="-flto" + -DCMAKE_FIND_ROOT_PATH="$WORKDIR/src/build/mongo-embedded-sdk-$VERSION" -DCMAKE_INSTALL_RPATH=\$ORIGIN/../lib + -DCMAKE_SHARED_LINKER_FLAGS="-flto" + -DCMAKE_TOOLCHAIN_FILE=$WORKDIR/android_sdk/ndk-bundle/build/cmake/android.toolchain.cmake + -DENABLE_SRV=OFF + -DENABLE_ZLIB=OFF disable_unit_tests: true enable_embedded_tests: android_emulator setup_android_toolchain: true android_toolchain_system_image_arch: "arm64-v8a" - android_system_image_version: "24" + android_system_image_version: 24 android_toolchain_target_arch: "arm64" android_toolchain_api_version: "21" dump_scons_config_on_failure: true @@ -10509,33 +10514,33 @@ buildvariants: test_flags: --excludeWithAnyTags=uses_transactions compile_env: JAVA_HOME=/opt/java/jdk8/ compile_flags: >- + --lto + --toolchain-root=$(dirname $(pwd))/android_sdk + --variables-files=etc/scons/x86_64-linux-android_toolchain.vars -j$(grep -c ^processor /proc/cpuinfo) - --toolchain-root=$(dirname $(pwd))/android_toolchain-x86_64-21 - --variables-files=etc/scons/android_toolchain.vars LIBPATH="\$BUILD_ROOT/mongo-embedded-sdk-\$MONGO_VERSION/lib" - --lto - AR=$(dirname $(pwd))/android_toolchain-x86_64-21/bin/llvm-ar cdriver_cmake_flags: >- - -DCMAKE_BUILD_TYPE=RelWithDebInfo - -DANDROID_NATIVE_API_LEVEL=21 -DANDROID_ABI=x86_64 - -DCMAKE_TOOLCHAIN_FILE=$WORKDIR/android_sdk/ndk-bundle/build/cmake/android.toolchain.cmake - -DCMAKE_FIND_ROOT_PATH="$WORKDIR/android_toolchain-x86_64-21;$WORKDIR/src/build/mongo-embedded-sdk-$VERSION-tmp" + -DANDROID_PLATFORM=android-21 + -DANDROID_TOOLCHAIN=clang + -DCMAKE_BUILD_TYPE=RelWithDebInfo + -DCMAKE_C_FLAGS="-flto" + -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER - -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY - -DENABLE_ZLIB=OFF - -DENABLE_SRV=OFF - -DCMAKE_C_FLAGS="-flto" - -DCMAKE_SHARED_LINKER_FLAGS="-flto" + -DCMAKE_FIND_ROOT_PATH="$WORKDIR/src/build/mongo-embedded-sdk-$VERSION" -DCMAKE_INSTALL_RPATH=\$ORIGIN/../lib + -DCMAKE_SHARED_LINKER_FLAGS="-flto" + -DCMAKE_TOOLCHAIN_FILE=$WORKDIR/android_sdk/ndk-bundle/build/cmake/android.toolchain.cmake + -DENABLE_SRV=OFF + -DENABLE_ZLIB=OFF disable_unit_tests: true # The Android x86_64 emulator requires KVM. enable_embedded_tests: android_emulator setup_android_toolchain: true android_toolchain_system_image_arch: "x86_64" - android_system_image_version: "21" + android_system_image_version: 24 android_toolchain_target_arch: "x86_64" android_toolchain_api_version: "21" dump_scons_config_on_failure: true @@ -10551,7 +10556,7 @@ buildvariants: compile_env: JAVA_HOME=/opt/java/jdk8/ setup_android_toolchain: true android_toolchain_system_image_arch: "x86_64" - android_system_image_version: 21 + android_system_image_version: 24 android_toolchain_target_arch: "x86_64" android_toolchain_api_version: "21" tasks: @@ -10566,7 +10571,7 @@ buildvariants: compile_env: JAVA_HOME=/opt/java/jdk8/ setup_android_toolchain: true android_toolchain_system_image_arch: "x86_64" - android_system_image_version: 21 + android_system_image_version: 24 android_toolchain_target_arch: "x86_64" android_toolchain_api_version: "21" tasks: diff --git a/etc/scons/aarch64-linux-android_toolchain.vars b/etc/scons/aarch64-linux-android_toolchain.vars new file mode 100644 index 00000000000..2c8cb371f43 --- /dev/null +++ b/etc/scons/aarch64-linux-android_toolchain.vars @@ -0,0 +1,3 @@ +android_compiler_target="aarch64-linux-android" +android_tool_target=android_compiler_target +exec(open("etc/scons/android_toolchain.vars", "rb").read()) diff --git a/etc/scons/android_toolchain.vars b/etc/scons/android_toolchain.vars index 14e12cb5709..6a40eae0be0 100644 --- a/etc/scons/android_toolchain.vars +++ b/etc/scons/android_toolchain.vars @@ -10,12 +10,14 @@ if platform.system() == "Windows": compiler_suffix = ".cmd" toolchain_root = SCons.Script.Main.GetOption('toolchain-root') - if not toolchain_root: print("Path to Android standalone toolchain must be set with --toolchain-root when using android_toolchain.vars") SCons.Script.Exit(1) -toolchain_bindir = os.path.join(toolchain_root, 'bin') +host="linux-x86_64" +android_version="21" + +toolchain_bindir = os.path.join(toolchain_root,'ndk-bundle','toolchains','llvm','prebuilt',host,'bin') # Get the default SCons path as a list default_path = SCons.Defaults.DefaultEnvironment()['ENV']['PATH'].split(os.pathsep) @@ -25,22 +27,18 @@ ENV = { 'PATH' : os.pathsep.join([toolchain_bindir] + default_path) } -CC=os.path.join(toolchain_bindir, "clang" + compiler_suffix) -CXX=os.path.join(toolchain_bindir, "clang++" + compiler_suffix) - -try: - AR = subprocess.check_output([CXX, '-print-prog-name=ar']).decode('utf-8').strip() - AS = subprocess.check_output([CXX, '-print-prog-name=as']).decode('utf-8').strip() - OBJCOPY = subprocess.check_output([CXX, '-print-prog-name=objcopy']).decode('utf-8').strip() -except subprocess.CalledProcessError as e: - print(("Failed while invoking toolchain binary " + CXX + ": " + e.output)) - SCons.Script.Exit(-1) -except OSError as e: - print(("Failed to invoke toolchain binary " + CXX + ": " + str(e))) - SCons.Script.Exit(-1) +AR= os.path.join(toolchain_bindir, "llvm-ar" + compiler_suffix) +AS= os.path.join(toolchain_bindir, android_tool_target + "-as" + compiler_suffix) +CC= os.path.join(toolchain_bindir, android_compiler_target + android_version + "-clang" + compiler_suffix) +CXX= os.path.join(toolchain_bindir, android_compiler_target + android_version + "-clang++" + compiler_suffix) +LD= os.path.join(toolchain_bindir, android_tool_target + "-ld" + compiler_suffix) +RANLIB= os.path.join(toolchain_bindir, android_tool_target + "-ranlib" + compiler_suffix) +STRIP= os.path.join(toolchain_bindir, android_tool_target + "-strip" + compiler_suffix) +OBJCOPY=os.path.join(toolchain_bindir, android_tool_target + "-objcopy" + compiler_suffix) LINKFLAGS='-static-libstdc++ -fuse-ld=gold' -CPPDEFINES='__ANDROID_API__=21 _LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR' +CXXFLAGS='-stdlib=libc++' +CPPDEFINES='__ANDROID_API__=' + android_version + ' _LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR' TARGET_OS="android" TOOLS="gcc g++ gnulink ar gas" diff --git a/etc/scons/armv7a-linux-androideabi_toolchain.vars b/etc/scons/armv7a-linux-androideabi_toolchain.vars new file mode 100644 index 00000000000..5fa229ba2e4 --- /dev/null +++ b/etc/scons/armv7a-linux-androideabi_toolchain.vars @@ -0,0 +1,3 @@ +android_compiler_target="armv7a-linux-androideabi" +android_tool_target="arm-linux-androideabi" +exec(open("etc/scons/android_toolchain.vars", "rb").read()) diff --git a/etc/scons/x86_64-linux-android_toolchain.vars b/etc/scons/x86_64-linux-android_toolchain.vars new file mode 100644 index 00000000000..b4fbd15ec5e --- /dev/null +++ b/etc/scons/x86_64-linux-android_toolchain.vars @@ -0,0 +1,3 @@ +android_compiler_target="x86_64-linux-android" +android_tool_target=android_compiler_target +exec(open("etc/scons/android_toolchain.vars", "rb").read()) |