[SERVER-55663] Document upper bounds on supported compiler versions Created: 31/Mar/21 Updated: 27/Oct/23 Resolved: 01/Apr/21 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Minor - P4 |
| Reporter: | Oleg Pudeyev (Inactive) | Assignee: | [DO NOT ASSIGN] Backlog - Server Development Platform Team (SDP) (Inactive) |
| Resolution: | Works as Designed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||
| Assigned Teams: |
Server Development Platform
|
||||||||||||
| Participants: | |||||||||||||
| Description |
|
The server building documentation currently gives lower bounds on supported compiler versions, but not upper bounds. For example, https://github.com/mongodb/mongo/blob/master/docs/building.md presently says:
As a server version ages, it ceases to be buildable with modern compilers (for example, the version of GCC provided by default by Debian testing). This came up for 3.0 in Neither 4.0 nor 3.2 branches (to take two arbitrary examples) currently specify an upper limit on acceptable/supported compilers (https://github.com/mongodb/mongo/blob/r4.0.23/docs/building.md, https://github.com/mongodb/mongo/blob/r3.2.22/docs/building.md). As a user of the server I would like to know which compilers are known to work with particular server versions. For example, I can trivially install GCC 9 presently. If GCC 9 is supported (and tested) for building 4.0 server, I would simply build 4.0 with GCC 9. However the documentation does not appear to indicate that GCC 9 is in any different position from GCC 10 (or 8). |
| Comments |
| Comment by Oleg Pudeyev (Inactive) [ 31/Mar/21 ] |
|
I did not realize that. I had the most difficulty installing gcc versions older than 8 in
I assumed that, since server provides builds for various OSes, that it was built by the system compiler for each (or at least most) of the respective OSes, so that for example each ubuntu build was most likely done by a different version of GCC. |
| Comment by Andrew Morrow (Inactive) [ 31/Mar/21 ] |
|
oleg.pudeyev - The only compilers for which the server is known to build are the ones we build and test with. We don't build and test with newer compilers. Even if we did hand test and find that it worked with e.g. GCC 9 today, that could cease to be true at any time as new commits are made. We document the minimum because that is the only thing we can honestly attest to. |
| Comment by Oleg Pudeyev (Inactive) [ 31/Mar/21 ] |
|
acm I'm having a bit of trouble understanding your comment. This ticket asks for information on which compilers the server is known to build. It doesn't ask for the status of each compiler that exists today or will in the future, nor does it ask for expanding the test configurations. Perhaps I phrased it poorly? |
| Comment by Andrew Morrow (Inactive) [ 31/Mar/21 ] |
|
Even if we documented the state as of today (per-branch?), there is no way to ensure that it wouldn't change/regress on any given commit without having testing for those newer compiler versions. I don't see this as something we can effectively achieve. |