about summary refs log tree commit diff
path: root/compiler/rustc_llvm/llvm-wrapper/ArchiveWrapper.cpp
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2023-06-27 22:10:13 +0200
committerGitHub <noreply@github.com>2023-06-27 22:10:13 +0200
commit353dd71d73dcb5d8eff2af70caf1cc32f06006ae (patch)
treeef91b4666007fb4092a54313588b2cb3bbf25158 /compiler/rustc_llvm/llvm-wrapper/ArchiveWrapper.cpp
parent1880e83ae365cc7558445a3e50424bb7eb936897 (diff)
parent767c4b9ef17370622aafdb1eae86c12d962f45ad (diff)
downloadrust-353dd71d73dcb5d8eff2af70caf1cc32f06006ae.tar.gz
rust-353dd71d73dcb5d8eff2af70caf1cc32f06006ae.zip
Rollup merge of #112454 - ferrocene:pa-compiletest-dynamic-linking, r=davidtwco
Make compiletest aware of targets without dynamic linking

Some parts of the compiletest internals and some tests require dynamic linking to work, which is not supported by all targets. Before this PR, this was handled by if branches matching on the target name.

This PR loads whether a target supports dynamic linking or not from the target spec, and adds a `// needs-dynamic-linking` attribute for tests that require it. Note that I was not able to replace all the old conditions based on the target name, as some targets have `dynamic_linking: true` in their spec but pretend they don't have it in compiletest.

Also, to get this to work I had to *partially* revert #111472 (cc `@djkoloski` `@tmandry` `@bjorn3).` On one hand, only the target spec contains whether a target supports dynamic linking, but on the other hand a subset of the fields can be overridden through `-C` flags (as far as I'm aware only `-C panic=$strategy`). The solution I came up with is to take the target spec as the base, and then override the panic strategy based on `--print=cfg`. Hopefully that should not break y'all again.
Diffstat (limited to 'compiler/rustc_llvm/llvm-wrapper/ArchiveWrapper.cpp')
0 files changed, 0 insertions, 0 deletions