platform_bionic/tests/libs
Ryan Prichard 8f639a4096 Allow invoking the linker on an executable.
The executable can be inside a zip file using the same syntax used for
shared objects: path.zip!/libentry.so.

The linker currently requires an absolute path. This restriction could be
loosened, but it didn't seem important? If it allowed non-absolute paths,
we'd need to decide how to handle:
 - foo/bar      (relative to CWD?)
 - foo          (search PATH / LD_LIBRARY_PATH, or also relative to CWD?)
 - foo.zip!/bar (normalize_path() requires an absolute path)

The linker adjusts the argc/argv passed to main() and to constructor
functions to hide the initial linker argument, but doesn't adjust the auxv
vector or files like /proc/self/{exe,cmdline,auxv,stat}. Those files will
report that the kernel loaded the linker as an executable.

I think the linker_logger.cpp change guarding against (g_argv == NULL)
isn't actually necessary, but it seemed like a good idea given that I'm
delaying initialization of g_argv until after C++ constructors have run.

Bug: http://b/112050209
Test: bionic unit tests
Change-Id: I846faf98b16fd34218946f6167e8b451897debe5
2018-10-10 14:31:06 -07:00
..
Android.bp Allow invoking the linker on an executable. 2018-10-10 14:31:06 -07:00
Android.build.dlext_testzip.mk Allow invoking the linker on an executable. 2018-10-10 14:31:06 -07:00
Android.build.dlopen_2_parents_reloc.mk Count references for groups instead of instances 2014-12-02 10:54:26 -08:00
Android.build.dlopen_check_order_dlsym.mk Fix relocation to look for symbols in local group 2014-10-23 12:13:54 -07:00
Android.build.dlopen_check_order_reloc_main_executable.mk Fix relocation to look for symbols in local group 2014-10-23 12:13:54 -07:00
Android.build.dlopen_check_order_reloc_siblings.mk Yet another relocation test 2014-11-19 10:39:05 -08:00
Android.build.dt_runpath.mk bionic-unit-tests: Build host testlibs in bionic-loader-test-libs 2016-12-09 17:26:11 +00:00
Android.build.linker_namespaces.mk Fix logic in loading dependencies crossing namespace boundaries 2017-12-10 22:04:55 +01:00
Android.build.pthread_atfork.mk Unregister pthread_atfork handlers on dlclose() 2015-04-24 17:57:37 -07:00
Android.build.testlib.host.mk bionic-unit-tests: Build host testlibs in bionic-loader-test-libs 2016-12-09 17:26:11 +00:00
Android.build.testlib.internal.mk bionic-unit-tests: Build host testlibs in bionic-loader-test-libs 2016-12-09 17:26:11 +00:00
Android.build.testlib.mk bionic-unit-tests: Build host testlibs in bionic-loader-test-libs 2016-12-09 17:26:11 +00:00
Android.build.testlib.target.mk bionic-unit-tests: Build host testlibs in bionic-loader-test-libs 2016-12-09 17:26:11 +00:00
Android.build.versioned_lib.mk Support symbol versioning 2015-04-16 17:57:30 -07:00
Android.mk Use -Werror in bionic/tests 2017-11-16 13:51:17 -08:00
atexit_testlib.cpp Add atexit test for attributed c-tor/d-tor 2014-08-15 14:22:07 -07:00
bionic_tests_zipalign.cpp Fix test compile errors after LLVM rebase 2017-05-02 21:14:42 +00:00
cfi_test_bad_lib.cpp Runtime support for CFI 2017-01-18 13:13:52 -08:00
cfi_test_helper.cpp Fix CFI initialization crash on x86. 2017-02-02 14:44:46 -08:00
cfi_test_helper2.cpp Fix CFI initialization crash on x86. 2017-02-02 14:44:46 -08:00
cfi_test_lib.cpp Extend cfi test to verify a range of target pointers. 2017-09-19 13:59:34 -07:00
check_rtld_next_from_library.cpp Fix for dlfcn.rtld_next_from_library. 2017-11-03 15:00:09 -07:00
dl_df_1_global.cpp Fix symbol lookup order during relocation 2014-10-31 11:39:51 -07:00
dl_df_1_global_dummy.cpp Fix: linker segfault on dlopen of a DF_1_GLOBAL so 2017-10-19 15:13:54 +09:00
dl_df_1_use_global.cpp Fix symbol lookup order during relocation 2014-10-31 11:39:51 -07:00
dl_preempt_library_1.cpp Fix symbol lookup order during relocation 2014-10-31 11:39:51 -07:00
dl_preempt_library_2.cpp Fix symbol lookup order during relocation 2014-10-31 11:39:51 -07:00
dlext_test_library.cpp Move libraries for unit-tests to separate folder 2014-06-17 15:08:53 -07:00
dlopen_2_parents_reloc_answer.cpp Count references for groups instead of instances 2014-12-02 10:54:26 -08:00
dlopen_b.cpp Make dt_runpath work for libraries opened from apk 2015-10-07 11:44:53 -07:00
dlopen_check_init_fini_child.cpp Add test checking init/fini call order 2017-02-09 14:07:05 -08:00
dlopen_check_init_fini_grand_child.cpp Add test checking init/fini call order 2017-02-09 14:07:05 -08:00
dlopen_check_init_fini_root.cpp Add test checking init/fini call order 2017-02-09 14:07:05 -08:00
dlopen_check_order_dlsym_answer.cpp Fix relocation to look for symbols in local group 2014-10-23 12:13:54 -07:00
dlopen_check_order_reloc_answer.cpp Fix relocation to look for symbols in local group 2014-10-23 12:13:54 -07:00
dlopen_check_order_reloc_answer_impl.cpp Fix relocation to look for symbols in local group 2014-10-23 12:13:54 -07:00
dlopen_check_order_reloc_grandchild_answer.cpp Yet another relocation test 2014-11-19 10:39:05 -08:00
dlopen_check_order_reloc_grandchild_answer_impl.cpp Yet another relocation test 2014-11-19 10:39:05 -08:00
dlopen_check_order_reloc_nephew_answer.cpp Fix jump to unmapped memory on atexit 2014-11-18 13:16:27 -08:00
dlopen_check_order_reloc_root_answer.cpp Fix relocation to look for symbols in local group 2014-10-23 12:13:54 -07:00
dlopen_check_order_reloc_root_answer_impl.cpp Fix relocation to look for symbols in local group 2014-10-23 12:13:54 -07:00
dlopen_nodelete_1.cpp Add RTLD_NODELETE flag support 2014-10-01 11:09:37 -07:00
dlopen_nodelete_2.cpp Add RTLD_NODELETE flag support 2014-10-01 11:09:37 -07:00
dlopen_nodelete_dt_flags_1.cpp Add RTLD_NODELETE flag support 2014-10-01 11:09:37 -07:00
dlopen_testlib_dlopen_from_ctor.cpp Minimize calls to mprotect 2015-01-23 16:30:34 -08:00
dlopen_testlib_ifunc.cpp Modernize codebase by replacing NULL with nullptr 2018-08-02 18:09:44 -07:00
dlopen_testlib_ifunc_variable.cpp Add ifunc for variable test-case 2017-05-02 16:35:20 -07:00
dlopen_testlib_ifunc_variable_impl.cpp Modernize codebase by replacing NULL with nullptr 2018-08-02 18:09:44 -07:00
dlopen_testlib_loopy_a.cpp Count references for groups instead of instances 2014-12-02 10:54:26 -08:00
dlopen_testlib_loopy_b.cpp Count references for groups instead of instances 2014-12-02 10:54:26 -08:00
dlopen_testlib_loopy_c.cpp Count references for groups instead of instances 2014-12-02 10:54:26 -08:00
dlopen_testlib_loopy_invalid.cpp Count references for groups instead of instances 2014-12-02 10:54:26 -08:00
dlopen_testlib_loopy_root.cpp Count references for groups instead of instances 2014-12-02 10:54:26 -08:00
dlopen_testlib_missing_symbol.cpp Fix logic in loading dependencies crossing namespace boundaries 2017-12-10 22:04:55 +01:00
dlopen_testlib_relo_check_dt_needed_order.cpp Fix order of soinfo links (repairs libcxx tests). 2014-09-05 16:01:47 -07:00
dlopen_testlib_relo_check_dt_needed_order_1.cpp Fix order of soinfo links (repairs libcxx tests). 2014-09-05 16:01:47 -07:00
dlopen_testlib_relo_check_dt_needed_order_2.cpp Fix order of soinfo links (repairs libcxx tests). 2014-09-05 16:01:47 -07:00
dlopen_testlib_simple.cpp Fix dlsym() to take into account RTLD_GLOBAL/LOCAL 2014-09-15 17:39:48 -07:00
dlopen_weak_undefined.cpp Add another test for weak-reference 2014-12-16 19:46:45 +00:00
dlsym_from_this_functions.cpp Improved dlsym tests and fixes to linker 2015-05-12 13:46:40 -07:00
dlsym_from_this_symbol.cpp Improved dlsym tests and fixes to linker 2015-05-12 13:46:40 -07:00
dlsym_from_this_symbol2.cpp Improved dlsym tests and fixes to linker 2015-05-12 13:46:40 -07:00
dlsym_weak_function.cpp Fix weak function lookups 2014-06-17 16:18:18 -07:00
elf_tls_test_library.cpp Reject .so files using ELF TLS. 2018-03-23 18:46:07 -07:00
empty.cpp Move libraries for unit-tests to separate folder 2014-06-17 15:08:53 -07:00
exec_linker_helper.cpp Allow invoking the linker on an executable. 2018-10-10 14:31:06 -07:00
exec_linker_helper_lib.cpp Allow invoking the linker on an executable. 2018-10-10 14:31:06 -07:00
ld_config_test_helper.cpp vdso should be available in all namespaces 2018-05-12 10:58:00 +02:00
ld_config_test_helper_lib1.cpp linker: the global group is added to all built-in namespaces 2017-08-03 01:02:07 +09:00
ld_config_test_helper_lib2.cpp linker: the global group is added to all built-in namespaces 2017-08-03 01:02:07 +09:00
ld_config_test_helper_lib3.cpp linker: the global group is added to all built-in namespaces 2017-08-03 01:02:07 +09:00
ld_preload_test_helper.cpp linker: the global group is added to all built-in namespaces 2017-08-03 01:02:07 +09:00
ld_preload_test_helper_lib1.cpp linker: the global group is added to all built-in namespaces 2017-08-03 01:02:07 +09:00
ld_preload_test_helper_lib2.cpp linker: the global group is added to all built-in namespaces 2017-08-03 01:02:07 +09:00
libnstest_ns_a_public1.cpp linker: Allow link namespaces without name filters 2018-01-25 14:45:29 +08:00
libnstest_ns_a_public1_internal.cpp linker: Allow link namespaces without name filters 2018-01-25 14:45:29 +08:00
libnstest_ns_b_public2.cpp linker: Allow link namespaces without name filters 2018-01-25 14:45:29 +08:00
libnstest_ns_b_public3.cpp linker: Allow link namespaces without name filters 2018-01-25 14:45:29 +08:00
libs_utils.h Fix x86 system calls made from ELF preinit. 2017-03-29 13:48:02 -07:00
namespaces_dlopened.cpp Introducing linker namespaces 2015-11-15 12:09:16 -08:00
namespaces_private.cpp Introducing linker namespaces 2015-11-15 12:09:16 -08:00
namespaces_public.cpp Introducing linker namespaces 2015-11-15 12:09:16 -08:00
namespaces_public_internal.cpp Replace public library list with shared lib sonames (part 2/2) 2017-02-09 23:26:44 -08:00
namespaces_root.cpp Replace public library list with shared lib sonames (part 2/2) 2017-02-09 23:26:44 -08:00
preinit_getauxval_test_helper.cpp Fix x86 system calls made from ELF preinit. 2017-03-29 13:48:02 -07:00
preinit_syscall_test_helper.cpp Fix x86 system calls made from ELF preinit. 2017-03-29 13:48:02 -07:00
pthread_atfork.cpp Unregister pthread_atfork handlers on dlclose() 2015-04-24 17:57:37 -07:00
thread_local_dtor.cpp Fix dlclose for libraries with thread_local dtors 2018-01-10 10:24:06 +01:00
thread_local_dtor2.cpp Add secondary counter in place of tls_nodelete flag 2018-05-30 10:56:59 +02:00
versioned_lib_other.cpp Support symbol versioning 2015-04-16 17:57:30 -07:00
versioned_lib_other.map Support symbol versioning 2015-04-16 17:57:30 -07:00
versioned_lib_v1.cpp Support symbol versioning 2015-04-16 17:57:30 -07:00
versioned_lib_v1.map Support symbol versioning 2015-04-16 17:57:30 -07:00
versioned_lib_v2.cpp Support symbol versioning 2015-04-16 17:57:30 -07:00
versioned_lib_v2.map Support symbol versioning 2015-04-16 17:57:30 -07:00
versioned_lib_v3.cpp Support symbol versioning 2015-04-16 17:57:30 -07:00
versioned_lib_v3.map Support symbol versioning 2015-04-16 17:57:30 -07:00
versioned_uselib.cpp Support symbol versioning 2015-04-16 17:57:30 -07:00
versioned_uselib.map Support symbol versioning 2015-04-16 17:57:30 -07:00