aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/linkers/detect.py
AgeCommit message (Collapse)AuthorFilesLines
2023-01-10linkers: detect ld64 as AppleDynamicLinkerjack1-6/+23
2022-11-24Fix various spelling errorsDavid Robillard1-1/+1
Found with codespell.
2022-09-19pylint: enable use-maxsplit-argDylan Baker1-3/+3
This finds a bunch of places where we can do more efficient string splitting.
2022-08-24fix linker regression for compilers that don't accept LDFLAGS directlyEli Schwartz1-1/+3
e.g. ldc -- the compiler needs to process args before consuming them. Fixes #10693
2022-08-07linkers: detection should invoke the linker with lang_link_args onlyEli Schwartz1-3/+3
Currently we invoke it with lang_args only, which is wrong and probably useless. Fixes misdetecting the linker when overridden as -fuse-ld, which led to Meson trying to pass incompatible flags, outright failing if CFLAGS contained flags that only work with a non-default linker, or in the most benevolent case, having the status log report the wrong linker.
2022-07-31linkers: make sure the linker is actually Apple when matching failureEli Schwartz1-5/+11
Not all "use -v" errors are Apple ld, and if it doesn't have better output with -v instead of --version, we should not assume that is what it is.
2022-07-31linkers: include linker detection output in the debug logsEli Schwartz1-1/+8
We do something similar when running get_compiler() method checks from the DSL. This ensures that if errors happen, the log file we tell people to check actually works.
2022-07-31linkers: better reporting of command failuresEli Schwartz1-3/+3
Use join_args to ensure that commands are rendered correctly and with less code.
2022-06-13flake8: fix various whitespace nitsEli Schwartz1-1/+1
2022-05-29linkers: try a bit harder to autodetect the correct linker idEli Schwartz1-2/+4
mingw GCC using ld.bfd emits diagnostics that include "-plugin-opt=-pass-through=-lmoldname" and this triggers a match for mold when it should not. Instead, always check the very beginning of the output for the linker id. This is pretty consistent: - it is always on stdout - GCC may put additional things on stderr we don't care about - swift is bizarre and on some OSes redirects the linker stdout to swiftc's stderr, but it will still be the only stderr; we didn't even check stderr at all until commit 712cbe056811ebdf0d7358ba07a874717a1c736f For gold/bfd linkers, the linker id is always the *second* word, after the legally mandated "GNU" we already check for.
2022-04-30linkers: Add support for mold linkerFini Jastrow1-5/+9
[why] Support for the relatively new mold linker is missing. If someone wants to use mold as linker `LDFLAGS="-B/path/to/mold"` has to be added instead of the usual `CC_LD=mold meson ...` or `CXX_LD=mold meson ...`. [how] Allow `mold' as linker for clang and newer GCC versions (that versions that have support). The error message can be a bit off, because it is generic for all GNU like compilers, but I guess that is ok. (i.e. 'mold' is not listed as possible linker, even if it would be possible for the given compiler.) [note] GCC Version 12.0.1 is not sufficient to say `mold` is supported. The expected release with support will be 12.1.0. On the other hand people that use the un-released 12.0.1 will probably have built it from trunk. Allowing 12.0.1 is helping bleeding edge developers to use mold in Meson already now. Fixes: #9072 Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2022-03-07move a bunch of imports into TYPE_CHECKING blocksEli Schwartz1-3/+5
These are only used for type checking, so don't bother importing them at runtime. Generally add future annotations at the same time, to make sure that existing uses of these imports don't need to be quoted.
2021-10-27fix various flake8 whitespace errorsEli Schwartz1-5/+5
2021-10-18linkers: detect LLD when built with PACKAGE_VENDORPaolo Bonzini1-3/+3
https://github.com/Homebrew/homebrew-core/commit/e7c972b6062af753e564104e58d1fa20c0d1ad7a added PACKAGE_VENDOR to lld, causing the -v output to start with "Homebrew LLD" rather than just "LLD". Meson no longer detects it and fails the test_ld_environment_variable_lld unit test. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2021-10-03fix typo in error message breaking newline escapeEli Schwartz1-1/+1
Broken in commit 3feaea6b29197cd224fbce0ac65fd43d08c3beac.
2021-10-02Improve linker detection failure error message.Jussi Pakkanen1-3/+5
2021-06-25Split compiler detection from EnvironmentDaniel Mensinger1-0/+216
This moves all the compiler detection logic into the new compilers.detect module. This dramatically reduces the size and complexity of Environment.