platform_bionic/linker
Peter Collingbourne 191ecdc49b Fix a few bionic test failures caused by hwasan global instrumentation.
The call to the load hook needs to be moved before the call to link_image()
because the latter calls ifunc resolvers which might access global
variables. This fixes a bunch of ifunc tests.

The dlfcn.segment_gap test is currently failing. One problem is that the name
of the .bss.end_of_gap section changes as a result of global instrumentation.
Add some wildcards in so that we match both names. The other problem seems
to be the same as b/139089152.

It turns out that we need to untag pointers in a few more places. Since we have
quite a few of these now it seems worth creating a function for it.

Test: bionic-unit-tests
Change-Id: I44e2b0904faacdda7cc0c5e844ffc09de01dea2d
2019-08-15 09:21:34 -07:00
..
arch Implement arm64 TLSDESC 2019-01-29 08:33:09 +00:00
Android.bp linker: Remove setting _USING_LIBCXX 2019-08-05 14:36:46 -07:00
dlfcn.cpp Use PT_INTERP as the linker's l_name path 2019-06-05 18:02:40 -07:00
ld.config.format.md Fix some typos in the linker configuration file format documentation. 2019-08-07 18:45:45 +01:00
ld_android.cpp Expose libc_shared_globals to libc.so with symbol 2018-11-28 14:26:14 -08:00
ldd ldd: slightly improve error message. 2019-06-27 13:50:31 -07:00
linked_list.h Clean up bionic_macros.h a bit. 2018-10-25 11:00:00 -07:00
linked_list_test.cpp Switch linker tests to Android.bp. 2019-02-15 14:40:08 -08:00
linker.arm.map Expose libc_shared_globals to libc.so with symbol 2018-11-28 14:26:14 -08:00
linker.cpp Fix a few bionic test failures caused by hwasan global instrumentation. 2019-08-15 09:21:34 -07:00
linker.generic.map Expose libc_shared_globals to libc.so with symbol 2018-11-28 14:26:14 -08:00
linker.h linker: Speed up relocation with an 1-entry symbol cache 2019-07-25 13:31:55 -07:00
linker_block_allocator.cpp Cosmetic changes to linker allocator and config 2019-03-12 01:11:24 +00:00
linker_block_allocator.h Purge linker block allocators before leaving linker 2019-01-30 22:13:13 -08:00
linker_block_allocator_test.cpp Switch linker tests to Android.bp. 2019-02-15 14:40:08 -08:00
linker_cfi.cpp Add PR_SET_VMA and PR_SET_VMA_ANON_NAME to <sys/prctl.h>. 2018-08-22 10:36:23 -07:00
linker_cfi.h Switch the rest of our internal headers to #pragma once. 2018-02-13 14:27:17 -08:00
linker_common_types.h Clean up bionic_macros.h a bit. 2018-10-25 11:00:00 -07:00
linker_config.cpp Don't resolve already resolved paths when parsing ld.config.txt 2019-05-17 10:09:13 +09:00
linker_config.h Use std::move() for rvalue-reference setters and ctors 2019-03-20 10:20:49 -07:00
linker_config_test.cpp linker: Add support for "whitelisted" property in linker config files 2019-03-20 10:20:49 -07:00
linker_debug.h libasync_safe: stop clobbering other folks' identifiers. 2019-02-14 14:23:13 -08:00
linker_dlwarning.cpp Unify linker files under one license (BSD) 2017-02-15 15:35:33 -08:00
linker_dlwarning.h Switch the rest of our internal headers to #pragma once. 2018-02-13 14:27:17 -08:00
linker_exidx_static.c Implement __gnu_Unwind_Find_exidx/__cxa_type_match 2017-08-29 18:18:27 +02:00
linker_gdb_support.cpp Unify linker files under one license (BSD) 2017-02-15 15:35:33 -08:00
linker_gdb_support.h Switch the rest of our internal headers to #pragma once. 2018-02-13 14:27:17 -08:00
linker_globals.cpp Be clearer about linker warnings. 2018-02-28 12:37:28 -08:00
linker_globals.h linker: support ldd(1)-like behavior via --list. 2019-05-09 22:12:17 -07:00
linker_libc_support.c Unify linker files under one license (BSD) 2017-02-15 15:35:33 -08:00
linker_libcxx_support.cpp Adapt to the new libc++/libc++abi update. 2018-01-08 14:44:42 -08:00
linker_logger.cpp linker: only generate log messages when logging is enabled 2019-01-17 14:24:14 -08:00
linker_logger.h Add more linker debug. 2019-03-19 14:03:18 +00:00
linker_main.cpp Fix linker compilation when STATS is set 2019-07-25 10:39:27 -07:00
linker_main.h Allow invoking the linker on an executable. 2018-10-10 14:31:06 -07:00
linker_mapped_file_fragment.cpp Unify linker files under one license (BSD) 2017-02-15 15:35:33 -08:00
linker_mapped_file_fragment.h Clean up bionic_macros.h a bit. 2018-10-25 11:00:00 -07:00
linker_memory.cpp Move the linker allocator into libc 2019-01-25 15:31:35 -08:00
linker_mips.cpp MIPS: Fix MIPS linker VDSO issues 2017-10-13 12:08:30 +02:00
linker_namespaces.cpp linker: Add support for "whitelisted" property in linker config files 2019-03-20 10:20:49 -07:00
linker_namespaces.h linker namespace name is duped when the namespace is created 2019-05-23 23:58:12 +09:00
linker_phdr.cpp Fix DLEXT_WRITE_RELRO when loading multiple libs. 2019-04-02 18:06:12 -04:00
linker_phdr.h Fix DLEXT_WRITE_RELRO when loading multiple libs. 2019-04-02 18:06:12 -04:00
linker_reloc_iterators.h Switch the rest of our internal headers to #pragma once. 2018-02-13 14:27:17 -08:00
linker_relocs.h Renumber arm64 TLS to match GNU values 2019-07-30 16:30:46 -07:00
linker_sdk_versions.cpp fdsan: make fatal by default. 2019-08-07 19:53:14 +00:00
linker_sleb128.h Switch the rest of our internal headers to #pragma once. 2018-02-13 14:27:17 -08:00
linker_sleb128_test.cpp Switch linker tests to Android.bp. 2019-02-15 14:40:08 -08:00
linker_soinfo.cpp Use PT_INTERP as the linker's l_name path 2019-06-05 18:02:40 -07:00
linker_soinfo.h Use PT_INTERP as the linker's l_name path 2019-06-05 18:02:40 -07:00
linker_test_globals.cpp Switch linker tests to Android.bp. 2019-02-15 14:40:08 -08:00
linker_tls.cpp libasync_safe: stop clobbering other folks' identifiers. 2019-02-14 14:23:13 -08:00
linker_tls.h Implement arm64 TLSDESC 2019-01-29 08:33:09 +00:00
linker_utils.cpp Don't resolve already resolved paths when parsing ld.config.txt 2019-05-17 10:09:13 +09:00
linker_utils.h Don't resolve already resolved paths when parsing ld.config.txt 2019-05-17 10:09:13 +09:00
linker_utils_test.cpp Switch linker tests to Android.bp. 2019-02-15 14:40:08 -08:00
linker_wrapper.cpp Rework the linker_wrapper to work with lld 2018-10-22 22:52:25 +00:00
MODULE_LICENSE_APACHE2 Move libdl and linker to static NOTICE files. 2019-04-19 14:18:07 -07:00
NOTICE Move libdl and linker to static NOTICE files. 2019-04-19 14:18:07 -07:00
rt.cpp More dynamic linker cleanup. 2012-10-30 16:35:38 -07:00