diff options
author | Andrew Morrow <acm@mongodb.com> | 2018-10-25 13:38:20 -0400 |
---|---|---|
committer | Andrew Morrow <acm@mongodb.com> | 2018-10-25 18:32:54 -0400 |
commit | fc8f1106f494f24cb2559aa22c11aa825523541f (patch) | |
tree | 2055d12ca32c4259d7865eb3e37a538b2a057985 | |
parent | dd4c4c1043f3e20618e536f96d4237691bfedd2f (diff) | |
download | mongo-fc8f1106f494f24cb2559aa22c11aa825523541f.tar.gz |
SERVER-37640 Ensure we don't use OSX symbols above our target version
(cherry picked from commit 61cdb80fdc42e57c570066b17f0712c62b68db61)
-rw-r--r-- | SConstruct | 6 | ||||
-rw-r--r-- | etc/evergreen.yml | 38 | ||||
-rw-r--r-- | etc/scons/xcode_macosx.vars | 4 |
3 files changed, 27 insertions, 21 deletions
diff --git a/SConstruct b/SConstruct index 52095d8b70f..d1b982329c0 100644 --- a/SConstruct +++ b/SConstruct @@ -2232,6 +2232,12 @@ def doConfigure(myenv): myenv.Append( CXXFLAGS=["-Wnon-virtual-dtor"] ) conf.Finish() + # As of XCode 9, this flag must be present (it is not enabled + # by -Wall), in order to enforce that -mXXX-version-min=YYY + # will enforce that you don't use APIs from ZZZ. + if env.TargetOSIs('darwin'): + AddToCCFLAGSIfSupported(env, '-Wunguarded-availability') + if get_option('runtime-hardening') == "on": # Enable 'strong' stack protection preferentially, but fall back to 'all' if it is not # available. Note that we need to add these to the LINKFLAGS as well, since otherwise we diff --git a/etc/evergreen.yml b/etc/evergreen.yml index 5245a013202..ff4f0c6669b 100644 --- a/etc/evergreen.yml +++ b/etc/evergreen.yml @@ -10253,9 +10253,9 @@ buildvariants: push_name: osx-ssl push_arch: x86_64 compile_env: DEVELOPER_DIR=/Applications/Xcode8.3.app - compile_flags: --ssl -j$(sysctl -n hw.logicalcpu) --release --libc++ CCFLAGS="-mmacosx-version-min=10.10" LINKFLAGS="-mmacosx-version-min=10.10" + compile_flags: --ssl -j$(sysctl -n hw.logicalcpu) --release --libc++ CCFLAGS="-mmacosx-version-min=10.11" LINKFLAGS="-mmacosx-version-min=10.11" num_jobs_available: 1 - gorootvars: 'PATH="/usr/local/go1.8/go/bin:/opt/mongodbtoolchain/v2/bin/:$PATH" GOROOT=/usr/local/go1.8/go CGO_CPPFLAGS=-I/opt/mongodbtoolchain/v2/include CGO_CFLAGS=-mmacosx-version-min=10.10 CGO_LDFLAGS=-mmacosx-version-min=10.10' + gorootvars: 'PATH="/usr/local/go1.8/go/bin:/opt/mongodbtoolchain/v2/bin/:$PATH" GOROOT=/usr/local/go1.8/go CGO_CPPFLAGS=-I/opt/mongodbtoolchain/v2/include CGO_CFLAGS=-mmacosx-version-min=10.11 CGO_LDFLAGS=-mmacosx-version-min=10.11' tooltags: "-tags 'ssl openssl_pre_1.0'" build_mongoreplay: true display_tasks: @@ -10361,8 +10361,8 @@ buildvariants: test_flags: --excludeWithAnyTags=requires_mmapv1 num_jobs_available: 1 compile_env: DEVELOPER_DIR=/Applications/Xcode8.3.app - compile_flags: --dbg=on --opt=on -j$(sysctl -n hw.logicalcpu) --libc++ CCFLAGS="-mmacosx-version-min=10.10" LINKFLAGS="-mmacosx-version-min=10.10" - gorootvars: 'PATH="/usr/local/go1.8/go/bin:/opt/mongodbtoolchain/v2/bin/:$PATH" GOROOT=/usr/local/go1.8/go CGO_CFLAGS=-mmacosx-version-min=10.10 CGO_LDFLAGS=-mmacosx-version-min=10.10' + compile_flags: --dbg=on --opt=on -j$(sysctl -n hw.logicalcpu) --libc++ CCFLAGS="-mmacosx-version-min=10.11" LINKFLAGS="-mmacosx-version-min=10.11" + gorootvars: 'PATH="/usr/local/go1.8/go/bin:/opt/mongodbtoolchain/v2/bin/:$PATH" GOROOT=/usr/local/go1.8/go CGO_CFLAGS=-mmacosx-version-min=10.11 CGO_LDFLAGS=-mmacosx-version-min=10.11' tooltags: "" build_mongoreplay: true display_tasks: @@ -10397,9 +10397,9 @@ buildvariants: push_name: osx push_arch: x86_64-enterprise compile_env: DEVELOPER_DIR=/Applications/Xcode8.3.app - compile_flags: --ssl -j$(sysctl -n hw.logicalcpu) --release --libc++ CCFLAGS="-mmacosx-version-min=10.10" LINKFLAGS="-mmacosx-version-min=10.10" + compile_flags: --ssl -j$(sysctl -n hw.logicalcpu) --release --libc++ CCFLAGS="-mmacosx-version-min=10.11" LINKFLAGS="-mmacosx-version-min=10.11" num_jobs_available: 1 - gorootvars: 'PATH="/usr/local/go1.8/go/bin:/opt/mongodbtoolchain/v2/bin/:$PATH" GOROOT=/usr/local/go1.8/go CGO_CPPFLAGS=-I/opt/mongodbtoolchain/v2/include CGO_CFLAGS=-mmacosx-version-min=10.10 CGO_LDFLAGS=-mmacosx-version-min=10.10' + gorootvars: 'PATH="/usr/local/go1.8/go/bin:/opt/mongodbtoolchain/v2/bin/:$PATH" GOROOT=/usr/local/go1.8/go CGO_CPPFLAGS=-I/opt/mongodbtoolchain/v2/include CGO_CFLAGS=-mmacosx-version-min=10.11 CGO_LDFLAGS=-mmacosx-version-min=10.11' tooltags: "-tags 'ssl sasl openssl_pre_1.0'" build_mongoreplay: true display_tasks: @@ -10445,13 +10445,13 @@ buildvariants: push_name: osx push_arch: x86_64-enterprise tooltags: "-tags 'ssl sasl openssl_pre_1.0'" - gorootvars: CGO_CPPFLAGS=-I/opt/mongodbtoolchain/v2/include CGO_CFLAGS=-mmacosx-version-min=10.10 CGO_LDFLAGS=-mmacosx-version-min=10.10 + gorootvars: CGO_CPPFLAGS=-I/opt/mongodbtoolchain/v2/include CGO_CFLAGS=-mmacosx-version-min=10.11 CGO_LDFLAGS=-mmacosx-version-min=10.11 compile_env: DEVELOPER_DIR=/Applications/Xcode8.3.app - compile_flags: --ssl --ssl-provider=openssl -j$(sysctl -n hw.logicalcpu) --release --libc++ CCFLAGS="-mmacosx-version-min=10.10" LINKFLAGS="-mmacosx-version-min=10.10" LIBPATH="$PWD/openssl_install_dir/lib" CPPPATH="$PWD/openssl_install_dir/include" + compile_flags: --ssl --ssl-provider=openssl -j$(sysctl -n hw.logicalcpu) --release --libc++ CCFLAGS="-mmacosx-version-min=10.11" LINKFLAGS="-mmacosx-version-min=10.11" LIBPATH="$PWD/openssl_install_dir/lib" CPPPATH="$PWD/openssl_install_dir/include" num_jobs_available: 1 build_mongoreplay: true build_openssl: true - openssl_config_flags: "-mmacosx-version-min=10.10" + openssl_config_flags: "-mmacosx-version-min=10.11" openssl_make_flags: "-j$(sysctl -n hw.logicalcpu)" display_tasks: - *unittests @@ -10504,7 +10504,7 @@ buildvariants: -DCMAKE_INSTALL_BINDIR=Frameworks -DENABLE_SSL=DARWIN -DENABLE_ZLIB=BUNDLED - -DCMAKE_C_FLAGS="-flto" + -DCMAKE_C_FLAGS="-flto -Wunguarded-availability" -DCMAKE_SHARED_LINKER_FLAGS="-flto" disable_unit_tests: true enable_embedded_tests: native @@ -10537,7 +10537,7 @@ buildvariants: -DENABLE_SASL=OFF -DENABLE_ZLIB=OFF -DENABLE_SNAPPY=OFF - -DCMAKE_C_FLAGS="-fembed-bitcode -flto" + -DCMAKE_C_FLAGS="-fembed-bitcode -flto -Wunguarded-availability" -DCMAKE_SHARED_LINKER_FLAGS="-fembed-bitcode -flto" disable_unit_tests: true dump_scons_config_on_failure: true @@ -10569,7 +10569,7 @@ buildvariants: -DENABLE_SASL=OFF -DENABLE_ZLIB=OFF -DENABLE_SNAPPY=OFF - -DCMAKE_C_FLAGS="-fembed-bitcode -flto" + -DCMAKE_C_FLAGS="-fembed-bitcode -flto -Wunguarded-availability" -DCMAKE_SHARED_LINKER_FLAGS="-fembed-bitcode -flto" disable_unit_tests: true enable_embedded_tests: ios_tvos_simulator @@ -10604,7 +10604,7 @@ buildvariants: -DENABLE_SASL=OFF -DENABLE_ZLIB=OFF -DENABLE_SNAPPY=OFF - -DCMAKE_C_FLAGS="-fembed-bitcode -flto" + -DCMAKE_C_FLAGS="-fembed-bitcode -flto -Wunguarded-availability" -DCMAKE_SHARED_LINKER_FLAGS="-fembed-bitcode -flto" disable_unit_tests: true dump_scons_config_on_failure: true @@ -10636,7 +10636,7 @@ buildvariants: -DENABLE_SASL=OFF -DENABLE_ZLIB=OFF -DENABLE_SNAPPY=OFF - -DCMAKE_C_FLAGS="-fembed-bitcode -flto" + -DCMAKE_C_FLAGS="-fembed-bitcode -flto -Wunguarded-availability" -DCMAKE_SHARED_LINKER_FLAGS="-fembed-bitcode -flto" disable_unit_tests: true enable_embedded_tests: ios_tvos_simulator @@ -10671,7 +10671,7 @@ buildvariants: -DENABLE_SASL=OFF -DENABLE_ZLIB=OFF -DENABLE_SNAPPY=OFF - -DCMAKE_C_FLAGS="-fembed-bitcode -flto -fapplication-extension" + -DCMAKE_C_FLAGS="-fembed-bitcode -flto -fapplication-extension -Wunguarded-availability" -DCMAKE_SHARED_LINKER_FLAGS="-fembed-bitcode -flto -fapplication-extension" disable_unit_tests: true dump_scons_config_on_failure: true @@ -10703,7 +10703,7 @@ buildvariants: -DENABLE_SASL=OFF -DENABLE_ZLIB=OFF -DENABLE_SNAPPY=OFF - -DCMAKE_C_FLAGS="-fembed-bitcode -flto -fapplication-extension" + -DCMAKE_C_FLAGS="-fembed-bitcode -flto -fapplication-extension -Wunguarded-availability" -DCMAKE_SHARED_LINKER_FLAGS="-fembed-bitcode -flto -fapplication-extension" disable_unit_tests: true enable_embedded_tests: ios_tvos_simulator @@ -15016,12 +15016,12 @@ buildvariants: test_flags: --storageEngine=mmapv1 --excludeWithAnyTags=requires_wiredtiger,uses_transactions,requires_ssl_mongo_tools,requires_document_locking compile_env: DEVELOPER_DIR=/Applications/Xcode8.3.app compile_flags: >- - --ssl -j$(sysctl -n hw.logicalcpu) --release --libc++ CCFLAGS="-mmacosx-version-min=10.10" - LINKFLAGS="-mmacosx-version-min=10.10" CPPPATH=/opt/mongodbtoolchain/v2/include + --ssl -j$(sysctl -n hw.logicalcpu) --release --libc++ CCFLAGS="-mmacosx-version-min=10.11" + LINKFLAGS="-mmacosx-version-min=10.11" CPPPATH=/opt/mongodbtoolchain/v2/include multiversion_platform: osx multiversion_edition: enterprise num_jobs_available: 1 - gorootvars: 'PATH="/usr/local/go1.8/go/bin:/opt/mongodbtoolchain/v2/bin/:$PATH" GOROOT=/usr/local/go1.8/go CGO_CPPFLAGS=-I/opt/mongodbtoolchain/v2/include CGO_CFLAGS=-mmacosx-version-min=10.10 CGO_LDFLAGS=-mmacosx-version-min=10.10' + gorootvars: 'PATH="/usr/local/go1.8/go/bin:/opt/mongodbtoolchain/v2/bin/:$PATH" GOROOT=/usr/local/go1.8/go CGO_CPPFLAGS=-I/opt/mongodbtoolchain/v2/include CGO_CFLAGS=-mmacosx-version-min=10.11 CGO_LDFLAGS=-mmacosx-version-min=10.11' tooltags: "-tags 'ssl sasl openssl_pre_1.0'" build_mongoreplay: true tasks: diff --git a/etc/scons/xcode_macosx.vars b/etc/scons/xcode_macosx.vars index 865a4f1184c..5235969c769 100644 --- a/etc/scons/xcode_macosx.vars +++ b/etc/scons/xcode_macosx.vars @@ -7,5 +7,5 @@ CXX = subprocess.check_output(['xcrun', '-f', '--sdk', 'macosx', 'clang++']).str sdk_path = subprocess.check_output(['xcrun', '--sdk', 'macosx', '--show-sdk-path']).strip() -CCFLAGS = "-isysroot {} -mmacosx-version-min=10.10".format(sdk_path) -LINKFLAGS = "-Wl,-syslibroot,{} -mmacosx-version-min=10.10".format(sdk_path) +CCFLAGS = "-isysroot {} -mmacosx-version-min=10.11".format(sdk_path) +LINKFLAGS = "-Wl,-syslibroot,{} -mmacosx-version-min=10.11".format(sdk_path) |