Merge "Correct nullability check for pthread_create()" into main
diff --git a/libc/bionic/libc_init_static.cpp b/libc/bionic/libc_init_static.cpp
index f8f7d2a..2227856 100644
--- a/libc/bionic/libc_init_static.cpp
+++ b/libc/bionic/libc_init_static.cpp
@@ -473,7 +473,12 @@
__attribute__((no_sanitize("hwaddress", "memtag"))) __noreturn void __libc_init(
void* raw_args, void (*onexit)(void) __unused, int (*slingshot)(int, char**, char**),
structors_array_t const* const structors) {
- bionic_tcb temp_tcb = {};
+ // We _really_ don't want the compiler to call memset() here,
+ // but it's done so before for riscv64 (http://b/365618934),
+ // so we have to force it to behave.
+ bionic_tcb temp_tcb __attribute__((uninitialized));
+ __builtin_memset_inline(&temp_tcb, 0, sizeof(temp_tcb));
+
#if __has_feature(hwaddress_sanitizer)
// Install main thread TLS early. It will be initialized later in __libc_init_main_thread. For now
// all we need is access to TLS_SLOT_SANITIZER.
@@ -483,6 +488,7 @@
__hwasan_init_static();
// We are ready to run HWASan-instrumented code, proceed with libc initialization...
#endif
+
__real_libc_init(raw_args, onexit, slingshot, structors, &temp_tcb);
}
diff --git a/tests/libs/Android.bp b/tests/libs/Android.bp
index fc7fd40..35f0f0c 100644
--- a/tests/libs/Android.bp
+++ b/tests/libs/Android.bp
@@ -1852,7 +1852,7 @@
" cp $(in) $(genDir)/zipdir/libdir/ &&" +
" touch $(genDir)/zipdir/empty_file.txt &&" +
" $(location soong_zip) -o $(out).unaligned -L 0 -C $(genDir)/zipdir -D $(genDir)/zipdir &&" +
- " $(location bionic_tests_zipalign) 4096 $(out).unaligned $(out)",
+ " $(location bionic_tests_zipalign) 16384 $(out).unaligned $(out)",
}
@@ -1891,5 +1891,5 @@
" cp $(location :libtest_dt_runpath_y) $(genDir)/zipdir/libdir/dt_runpath_y/$$PRIVATE_LIB_OR_LIB64 &&" +
" touch $(genDir)/zipdir/empty_file.txt &&" +
" $(location soong_zip) -o $(out).unaligned -L 0 -C $(genDir)/zipdir -D $(genDir)/zipdir &&" +
- " $(location bionic_tests_zipalign) 4096 $(out).unaligned $(out)",
+ " $(location bionic_tests_zipalign) 16384 $(out).unaligned $(out)",
}
diff --git a/tests/prebuilt-elf-files/arm64/libtest_invalid-textrels.so b/tests/prebuilt-elf-files/arm64/libtest_invalid-textrels.so
index f83bbe4..c60b0d6 100755
--- a/tests/prebuilt-elf-files/arm64/libtest_invalid-textrels.so
+++ b/tests/prebuilt-elf-files/arm64/libtest_invalid-textrels.so
Binary files differ
diff --git a/tests/prebuilt-elf-files/arm64/libtest_invalid-textrels2.so b/tests/prebuilt-elf-files/arm64/libtest_invalid-textrels2.so
index fbf62c5..eb33692 100755
--- a/tests/prebuilt-elf-files/arm64/libtest_invalid-textrels2.so
+++ b/tests/prebuilt-elf-files/arm64/libtest_invalid-textrels2.so
Binary files differ
diff --git a/tests/prebuilt-elf-files/x86_64/libtest_invalid-textrels.so b/tests/prebuilt-elf-files/x86_64/libtest_invalid-textrels.so
index 719fb5a..f231d11 100755
--- a/tests/prebuilt-elf-files/x86_64/libtest_invalid-textrels.so
+++ b/tests/prebuilt-elf-files/x86_64/libtest_invalid-textrels.so
Binary files differ
diff --git a/tests/prebuilt-elf-files/x86_64/libtest_invalid-textrels2.so b/tests/prebuilt-elf-files/x86_64/libtest_invalid-textrels2.so
index 9d0741e..97fb5c4 100755
--- a/tests/prebuilt-elf-files/x86_64/libtest_invalid-textrels2.so
+++ b/tests/prebuilt-elf-files/x86_64/libtest_invalid-textrels2.so
Binary files differ