Rollup merge of #119162 - heiher:direct-access-external-data, r=petrochenkov
Add unstable `-Z direct-access-external-data` cmdline flag for `rustc` The new flag has been described in the Major Change Proposal at https://github.com/rust-lang/compiler-team/issues/707 Fixes #118053
This commit is contained in:
commit
7954c28cf9
8 changed files with 74 additions and 10 deletions
|
@ -1887,6 +1887,8 @@ pub struct TargetOptions {
|
|||
/// passed, and cannot be disabled even via `-C`. Corresponds to `llc
|
||||
/// -mattr=$features`.
|
||||
pub features: StaticCow<str>,
|
||||
/// Direct or use GOT indirect to reference external data symbols
|
||||
pub direct_access_external_data: Option<bool>,
|
||||
/// Whether dynamic linking is available on this target. Defaults to false.
|
||||
pub dynamic_linking: bool,
|
||||
/// Whether dynamic linking can export TLS globals. Defaults to true.
|
||||
|
@ -2281,6 +2283,7 @@ impl Default for TargetOptions {
|
|||
asm_args: cvs![],
|
||||
cpu: "generic".into(),
|
||||
features: "".into(),
|
||||
direct_access_external_data: None,
|
||||
dynamic_linking: false,
|
||||
dll_tls_export: true,
|
||||
only_cdylib: false,
|
||||
|
@ -2580,6 +2583,12 @@ impl Target {
|
|||
base.$key_name = s as u32;
|
||||
}
|
||||
} );
|
||||
($key_name:ident, Option<bool>) => ( {
|
||||
let name = (stringify!($key_name)).replace("_", "-");
|
||||
if let Some(s) = obj.remove(&name).and_then(|b| b.as_bool()) {
|
||||
base.$key_name = Some(s);
|
||||
}
|
||||
} );
|
||||
($key_name:ident, Option<u64>) => ( {
|
||||
let name = (stringify!($key_name)).replace("_", "-");
|
||||
if let Some(s) = obj.remove(&name).and_then(|b| b.as_u64()) {
|
||||
|
@ -3008,6 +3017,7 @@ impl Target {
|
|||
key!(cpu);
|
||||
key!(features);
|
||||
key!(dynamic_linking, bool);
|
||||
key!(direct_access_external_data, Option<bool>);
|
||||
key!(dll_tls_export, bool);
|
||||
key!(only_cdylib, bool);
|
||||
key!(executables, bool);
|
||||
|
@ -3262,6 +3272,7 @@ impl ToJson for Target {
|
|||
target_option_val!(cpu);
|
||||
target_option_val!(features);
|
||||
target_option_val!(dynamic_linking);
|
||||
target_option_val!(direct_access_external_data);
|
||||
target_option_val!(dll_tls_export);
|
||||
target_option_val!(only_cdylib);
|
||||
target_option_val!(executables);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue