Skip to content

Commit 69ddf1a

Browse files
authored
CXX-3300 update build-from-source minimum supported compiler versions (#1415)
* Add missing import of ec2_assume_role * Temporarily disable RHEL 7.9 tasks
1 parent bf7554c commit 69ddf1a

File tree

4 files changed

+29
-8
lines changed

4 files changed

+29
-8
lines changed

.evergreen/config_generator/components/compile_only.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ def tasks():
110110
run_on=distro.name,
111111
patchable=patchable,
112112
commands=commands,
113+
disable=(True if distro_name == 'rhel7.9' else None), # DEVPROD-18187
113114
)
114115

115116

.evergreen/generated_configs/tasks.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -431,6 +431,7 @@ tasks:
431431
- name: compile-only-rhel7.9-gcc-cxx11-debug
432432
run_on: rhel7.9-large
433433
tags: [compile-only, rhel7.9, cxx11, gcc, debug]
434+
disable: true
434435
commands:
435436
- command: expansions.update
436437
params:
@@ -451,6 +452,7 @@ tasks:
451452
- name: compile-only-rhel7.9-gcc-cxx14-debug
452453
run_on: rhel7.9-large
453454
tags: [compile-only, rhel7.9, cxx14, gcc, debug]
455+
disable: true
454456
commands:
455457
- command: expansions.update
456458
params:

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,12 @@ Changes prior to 3.9.0 are documented as [release notes on GitHub](https://githu
1717

1818
- CMake 3.16.0 or newer is required when `ENABLE_TESTS=ON` for compatibility with the updated Catch2 library version (3.7.0 -> 3.8.1).
1919
- Bump the minimum required C Driver version to [2.0.2](https://github.com/mongodb/mongo-c-driver/releases/tag/2.0.2).
20+
- Minimum supported compiler versions to build from source are updated to the following:
21+
- GCC 8.1 (from GCC 4.8.2).
22+
- Users on RHEL 7 may consult Red Hat's ["Hello World - installing GCC on RHEL 7"](https://developers.redhat.com/HW/gcc-RHEL-7) or ["How to install GCC 8 and Clang/LLVM 6 on Red Hat Enterprise Linux 7"](https://developers.redhat.com/blog/2019/03/05/yum-install-gcc-8-clang-6) for instructions on how to obtain GCC 8 or newer.
23+
- Clang 3.8 (from Clang 3.5).
24+
- Apple Clang 13.1 with Xcode 13.4.1 (from Apple Clang 5.1 with Xcode 5.1).
25+
- MSVC 19.0.24210 with Visual Studio 2015 Update 3 (from MSVC 19.0.23506 with Visual Studio 2015 Update 1).
2026

2127
## 4.1.0
2228

CMakeLists.txt

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,20 +25,32 @@ set(CMAKE_MODULE_PATH
2525
option(BUILD_TESTING "When ENABLE_TESTS=ON, include test targets in the \"all\" target")
2626

2727
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
28-
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.8.2")
29-
message(FATAL_ERROR "Insufficient GCC version - GCC 4.8.2+ required")
28+
# https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html
29+
# https://gcc.gnu.org/projects/cxx-status.html
30+
# https://gcc.gnu.org/releases.html
31+
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "8.1")
32+
message(FATAL_ERROR "GCC 8.1 or newer is required")
3033
endif()
3134
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
32-
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "19.0.23506")
33-
message(FATAL_ERROR "Insufficient Microsoft Visual C++ version - MSVC 2015 Update 1+ required")
35+
# https://en.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B#Internal_version_numbering
36+
# https://learn.microsoft.com/en-us/cpp/overview/compiler-versions
37+
# https://learn.microsoft.com/en-us/cpp/overview/visual-cpp-language-conformance
38+
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "19.0.24210")
39+
message(FATAL_ERROR "Visual Studio 13 2015 Update 3 or newer is required")
3440
endif()
3541
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
36-
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "5.1")
37-
message(FATAL_ERROR "Insufficient Apple clang version - XCode 5.1+ required")
42+
# https://developer.apple.com/xcode/cpp/
43+
# https://en.wikipedia.org/wiki/Xcode#Version_comparison_table
44+
# https://trac.macports.org/wiki/XcodeVersionInfo
45+
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "13.1")
46+
message(FATAL_ERROR "Xcode 13.4.1 or newer is required")
3847
endif()
3948
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
40-
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "3.5")
41-
message(FATAL_ERROR "Insufficient clang version - clang 3.5+ required")
49+
# https://releases.llvm.org/
50+
# https://clang.llvm.org/cxx_status.html
51+
# https://libcxx.llvm.org/#c-standards-conformance
52+
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "3.8")
53+
message(FATAL_ERROR "Clang 3.8 or newer is required")
4254
endif()
4355
else()
4456
message(WARNING "Unknown compiler... recklessly proceeding without a version check")

0 commit comments

Comments
 (0)