| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
This should have been part of commit d6b811fb82 (Require CMake 3.13+ to
configure CMake itself, 2022-02-22, v3.24.0-rc1~605^2~1).
|
|\
| |
| |
| |
| |
| |
| |
| | |
ee9805ccd1 cm/filesystem: Fix crash with pre-C++11 std::string GNU ABI in C++17
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7813
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The `remove_filename` and `replace_extension` methods compute an offset
between the whole path in a `std::string` and a part of a path in a
`std::string_view`. This is done by subtracting their `.data()`
pointers. However, C++17 adds a non-const `.data()` through which
modification of the string is allowed. This means the copy-on-write
implementation used by the pre-C++11 std::string GNU ABI must reallocate
if the string has been copied. Our subtraction then computes an offset
between two different allocations, which is undefined behavior.
The workaround in commit b3ca4f9ad1 (cm/filesystem: Work around crash
when compiled for CYGWIN/MSYS runtime, 2021-04-22, v3.21.0-rc1~271^2~2)
avoided the problem by calling the non-const `.data()` to reallocate
before constructing the `string_view`. Instead, explicitly call the
const `.data()` method on the string, which does not reallocate.
Fixes: #22090, #23328
|
| |
| |
| |
| |
| |
| | |
```
xcodebuild[13070:54426] [MT] DVTSDK: Warning: SDK path collision for path
```
|
| |
| |
| |
| | |
Revert erroneous change introduced by commit 0a81ea1.
|
|/
|
|
| |
Fixes: #23121
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Divert LCC compiler as a new one, instead of treating it as GNU.
Since old times, Elbrus C/C++/Fortran Compiler (LCC) by MCST has been
passing checks for GNU compilers, so it has been identified as GNU.
Now, with intent of seriously upstreaming its support, it has been
added as a separate LCC compiler, and its version displays not a
supported GCC version, but LCC version itself (e.g. LCC 1.25.19 instead
of GNU 7.3.0).
This commit adds its support for detection, and also converts basically
every check like 'is this compiler GNU?' to 'is this compiler GNU or
LCC?'. The only places where this check is untouched, is where it
regards other platforms where LCC is unavailable (primarily non-Linux),
and where it REALLY differs from GNU compiler.
Note: this transition may break software that are already ported to
Elbrus, but hardly relies that LCC will be detected as GNU; still such
software is not known.
|
|
|
|
| |
Detect MSYS as CYGWIN, with the required adaptations.
|
|
|
|
|
|
|
| |
In commit eb583b0a66 (cmake_path command: path management, 2020-07-23,
v3.19.0-rc1~216^2~1) we added a `try_run`. In cross-compilation mode,
C++ features tests must avoid running tests if there is no emulator
defined.
|
|
|
|
|
|
|
| |
When building CMake in `%TMP%` on Windows, MSBuild issues warnings.
Filter those out to avoid breaking C++ feature checks.
Fixes: #21270
|
|
|
|
| |
Fixes: #19568, #20922
|
| |
|
|\
| |
| |
| |
| |
| |
| | |
231637eae2 cm_cxx_features: Filter out 'icpc: command line warning #10121'
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4698
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This warning appears for:
overriding '-xCORE-AVX2' with '-march=haswell'`
in some Cray environments.
Fixes: #20664
|
|\ \
| |/
| |
| |
| |
| |
| | |
4ab0d37b41 cm_cxx_features: Filter out libhugetlbfs warnings
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4681
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Without this, CMake fails to build on Cray systems with a
craype-hugepages modulefile loaded on the front-end due to libhugetlbfs
warnings breaking the CXX Feature tests. Filter out the warnings so the
bootstrap can proceed to successfully install CMake on Cray Linux
systems.
Fixes: #20645
|
|/
|
|
|
|
| |
This has been fixed in upstream LLVM. No released version contains this issue.
https://github.com/llvm/llvm-project/commit/d32170dbd5b0d54436537b6b75beaf44324e0c28
https://github.com/llvm/llvm-project/commit/eb2ba2ea953b5ea73cdbb598f77470bde1c6a011
|
|
|
|
|
|
|
| |
Clang always outputs these if it doesn't recognize the installed CUDA version.
They don't affect compiling C++.
Fixes #20434.
|
|\
| |
| |
| |
| |
| |
| | |
fc3b4caa2e Memory management: cast functions for managed pointers
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4064
|
| | |
|
|/ |
|
|
|
|
| |
Co-Authored-By: Craig Scott <craig.scott@crascit.com>
|
| |
|
|\
| |
| |
| |
| |
| |
| | |
4ca5a815f2 C++ feature checks: Match warnings more strictly
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3075
|
| |
| |
| |
| |
| |
| |
| |
| | |
Require the word "warning" to appear at the start of a line, after
whitespace, or after a `:`. This is the same that CTest launchers use
to match warnings. It avoids matching "warning" inside file paths.
Fixes: #19019
|
| |
| |
| |
| |
| |
| |
| | |
Make sure `std::cbegin`, `std::cend`, and `std::size` work in C++17 or
C++14 mode before choosing the corresponding standard level for
compiling CMake itself. This helps in cases that the compiler is using
a standard library too old to support the full standard level chosen.
|
| |
| |
| |
| |
| |
| |
| | |
Make sure `std::cbegin`, `std::cend`, and `std::size` work in C++17 or
C++14 mode before choosing the corresponding standard level for
compiling CMake itself. This helps in cases that the compiler is using
a standard library too old to support the full standard level chosen.
|
|/
|
|
|
|
| |
GUID functions in ATL cause compilation errors with this compiler.
Add the offending case to our check for C++17 support so that it
is not used by default when it does not work.
|
|
|
|
|
|
|
|
|
|
|
| |
On OpenBSD linking to `libstdc++` with GCC 6.4 always warns:
warning: sprintf() is often misused, please use snprintf()
These do not affect the availability of C++ features we're checking,
so filter them out.
Fixes: #18602
|
|
|
|
|
|
|
|
| |
When testing compiler modes higher than C++11 for constructs we need,
include a check for using `unique_ptr` in that mode. The PGI 18.4
compiler in some environments supports `unique_ptr` in C++11 mode
but is broken for C++14 and C++17. Check that `unique_ptr` works
in these modes before using one.
|
| |
|
|
|
|
| |
Found via `codespell` and `grep`
|
|
|
|
|
|
|
|
|
|
|
|
| |
Run the `clang-format.bash` script to update all our C and C++ code to a
new style defined by `.clang-format`. Use `clang-format` version 6.0.
* If you reached this commit for a line in `git blame`, re-run the blame
operation starting at the parent of this commit to see older history
for the content.
* See the parent commit for instructions to rebase a change across this
style transition commit.
|
|\
| |
| |
| |
| |
| |
| | |
2254b72061 C++ feature checks: Filter out warnings caused by local configuration
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2019
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In some environments the linker produces warnings like
warning: directory not found for option
warning: object file compiled with -mlong-branch ...
These do not affect the availability of C++ features we're checking,
so filter them out.
Fixes: #17850, #17947
|
|/
|
|
|
|
|
|
|
|
| |
Compute a default for `BUILD_CursesDialog` by building a small test
project that uses curses. Disable `ccmake` by default if it fails,
and do not search for Curses as part of the main build. This avoids
creating FindCurses cache entries when we are not considering ccmake.
If `BUILD_CursesDialog` is enabled (e.g. by the user) then warn if
curses cannot be found.
|
|
|
|
|
|
|
|
|
|
| |
Add a check that a simple source file can compile as C++17 that uses
some of the features we need. Do this only when hosted by CMake 3.8
or above because those versions are aware of C++17.
Check for unordered_map as we do in bootstrap since commit 375eca7881
(bootstrap: Check support for unordered_map from compiler mode,
2017-11-30). Also maintain the existing C++14 cstdio check.
|
|
|
|
|
|
| |
The check for C++14 and cstdio is a special case of the more general
problem of checking that the compiler's C++14 mode supports everything
we need. Rename the checks accordingly.
|
|
|
|
|
|
|
| |
Use the macro now provided by KWSys instead of using `try_compile`
checks. It will no longer consider the `__attribute__((fallthrough))`
variant, but compilers that don't have one of the modern attributes
shouldn't warn about not using one anyway.
|
|
|
|
|
| |
We now require C++11 support including `= delete`. Drop use of
the old compatibility macro.
|
|
|
|
| |
We no longer use `auto_ptr` at all, so drop the checks for it.
|
|
|
|
|
|
| |
Filter out `-Winvalid-command-line-argument` warnings from Clang (that
can be caused by user-specified flags) so that they do not break our
checks for C++ feature availability.
|
| |
|
| |
|
| |
|
|\
| |
| |
| |
| |
| |
| | |
cbcfb79f Use C++11 unordered containers
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1174
|
| | |
|
|/
|
|
|
| |
Fix the test code that we `try_compile` to avoid unused parameter
warnings that cause the check to fail.
|
|
|
|
|
|
|
|
| |
Simply matching "0 Warning" may match "10 Warning(s)". Instead remove
the entire ` 0 Warning(s)` content from the MSBuild output before
searching it for warnings.
Issue: #16942
|
|
|
|
|
|
|
|
|
| |
The change in commit v3.9.0-rc1~6^2~1 (C++ feature checks: check output
for '[Ww]arning', 2017-06-03) accidentally matches `0 Warning(s)` in the
output and always thinks a warning exists, thus failing all checks in
Visual Studio builds.
Fixes: #16942
|