Explain why local-exec is used by CloudABI.
This commit is contained in:
parent
4fe167adba
commit
05949b09a8
1 changed files with 11 additions and 0 deletions
|
|
@ -27,6 +27,17 @@ pub fn opts() -> TargetOptions {
|
|||
linker_is_gnu: true,
|
||||
pre_link_args: args,
|
||||
position_independent_executables: true,
|
||||
// As CloudABI only supports static linkage, there is no need
|
||||
// for dynamic TLS. The C library therefore does not provide
|
||||
// __tls_get_addr(), which is normally used to perform dynamic
|
||||
// TLS lookups by programs that make use of dlopen(). Only the
|
||||
// "local-exec" and "initial-exec" TLS models can be used.
|
||||
//
|
||||
// "local-exec" is more efficient than "initial-exec", as the
|
||||
// latter has one more level of indirection: it accesses the GOT
|
||||
// (Global Offset Table) to obtain the effective address of a
|
||||
// thread-local variable. Using a GOT is useful only when doing
|
||||
// dynamic linking.
|
||||
tls_model: "local-exec".to_string(),
|
||||
relro_level: RelroLevel::Full,
|
||||
exe_allocation_crate: super::maybe_jemalloc(),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue