// This shared object test library is dlopen'ed by the main test executable.
// Export a large TLS variable from a solib for testing dladdr and dlsym. The // TLS symbol's value will appear to overlap almost everything else in the // shared object, but dladdr must not return it.
__thread char large_tls_var[4 * 1024 * 1024];
// For testing dladdr, return an address that's part of the solib's .bss // section, but does not have an entry in the dynsym table and whose // solib-relative address appears to overlap with the large TLS variable. extern"C"void* get_local_addr() { staticchar buf[1024]; return &buf[512];
}
// This variable comes from libtest_elftls_shared_var.so, which is part of // static TLS. Verify that a GD-model access can access the variable. // // Accessing the static TLS variable from an solib prevents the static linker // from relaxing the GD access to IE and lets us test that __tls_get_addr and // the tlsdesc resolver handle a static TLS variable. extern"C" __thread int elftls_shared_var;
// The static linker denotes the current module by omitting the symbol from // the DTPMOD/TLSDESC relocations. static __thread int local_var_1 = 15; static __thread int local_var_2 = 25;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.