summaryrefslogtreecommitdiff
path: root/libc/startup/linux/aarch64/start.cpp
AgeCommit message (Collapse)Author
2024-01-04[libc] major refactor of startup library (#76092)Schrodinger ZHU Yifan
* separate initialization routines into _start and do_start for all architectures. * lift do_start as a separate object library to avoid code duplication. * (addtionally) address the problem of building hermetic libc with -fstack-pointer-* The `crt1.o` is now a merged result of three components: ``` ___ |___ x86_64 | |_______ start.cpp.o <- _start (loads process initial stack and aligns stack pointer) | |_______ tls.cpp.o <- init_tls, cleanup_tls, set_thread_pointer (TLS related routines) |___ do_start.cpp.o <- do_start (sets up global variables and invokes the main function) ```
2023-12-18[libc] expose aux vector (#75806)Schrodinger ZHU Yifan
This patch lifts aux vector related definitions to app.h. Because startup's refactoring is in progress, this patch still contains duplicated changes. This problem will be addressed very soon in an incoming patch.
2023-12-12[libc] fix issues around stack protector (#74567)Schrodinger ZHU Yifan
If a function is declared with stack-protector, the compiler may try to load the TLS. However, inside certain runtime functions, TLS may not be available. This patch disables stack protectors for such routines to fix the problem. Closes #74487.
2023-12-04[libc][NFC] unify startup library's code style with the rest (#74041)Schrodinger ZHU Yifan
This PR unifies the startup library's code style with the rest of libc.
2023-09-26[libc] Mass replace enclosing namespace (#67032)Guillaume Chatelet
This is step 4 of https://discourse.llvm.org/t/rfc-customizable-namespace-to-allow-testing-the-libc-when-the-system-libc-is-also-llvms-libc/73079
2023-08-07[libc][cleanup] Fix most conversion warningsMichael Jones
This patch is large, but is almost entirely just adding casts to calls to syscall_impl. Much of the work was done programatically, with human checking when the syntax or types got confusing. Reviewed By: mcgrathr Differential Revision: https://reviews.llvm.org/D156950
2023-07-19[libc][NFC] Rename filesGuillaume Chatelet
This patch mostly renames files so it better reflects the function they declare. Reviewed By: michaelrj Differential Revision: https://reviews.llvm.org/D155607
2023-04-17[libc][NFC] Standardize missing syscalls error messages.Mikhail R. Gadelha
This patch standardizes the error messages when a syscall is not available to be in the format: "ABC and DEF syscalls are not available." Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D148373
2023-03-13[libc] Declare __dso_handle in the integration test instead of startup.Siva Chandra Reddy
Fixes #61355. The __dso_handle decl was introduced incorrectly into the startup objects during the integration test cleanup which moved the integration tests away from using an artificial sysroot to using -nostdlib. Having it in the startup creates the duplicate symbol error when one does not use -nostdlib. Since this is an integration test only problem, it is meaningful to keep it in the integration test anyway. Differential Revision: https://reviews.llvm.org/D145898
2023-03-06[libc] Simplify integration tests by eliminating the artificial sysroot.Siva Chandra Reddy
The test binaries are built like any other executable but with two additional linker options -static and -nostdlib. Reviewed By: jhuber6 Differential Revision: https://reviews.llvm.org/D145298
2022-12-15[libc][NFC] Rename "loader" to "startup".Siva Chandra Reddy
Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D140049