7 Commits

Author SHA1 Message Date
William Huynh
8c9863eb1e
[libc] Basic implementation of crt0 (#146863)
In order to run hermetic tests downstream (#145349), we need startup
code. This is based on the crt0 that is present in Arm Toolchain:
5446a3cbf4/arm-software/embedded/llvmlibc-support/crt0.
Note that some tests do fail due to lack of hardware setup, which will
be implemented at a later time.

Most of the CMake/structure is a copy from the existing code in both
`libc/startup/linux` and `libc/startup/gpu`. It is required to build an
object file to be linked with.

Also add header files for init/fini such that crt0 can use the provided
symbols.

---------

Co-authored-by: Michael Jones <michaelrj@google.com>
2025-07-31 12:17:17 +01:00
lntue
66603dd1f1
[libc][NFC] Add stdint.h proxy header to fix dependency issue with <stdint.h> includes. (#150303)
https://github.com/llvm/llvm-project/issues/149993
2025-07-23 20:19:52 -04:00
Petr Hosek
5ff3ff33ff
[libc] Migrate to using LIBC_NAMESPACE_DECL for namespace declaration (#98597)
This is a part of #97655.
2024-07-12 09:28:41 -07:00
Mehdi Amini
ce9035f5bd
Revert "[libc] Migrate to using LIBC_NAMESPACE_DECL for namespace declaration" (#98593)
Reverts llvm/llvm-project#98075

bots are broken
2024-07-12 09:12:13 +02:00
Petr Hosek
3f30effe1b
[libc] Migrate to using LIBC_NAMESPACE_DECL for namespace declaration (#98075)
This is a part of #97655.
2024-07-11 12:35:22 -07:00
Petr Hosek
be9b1de1ab
[libc] Move the internal extern "C" symbols inside the namespace (#98232)
This ensures that these symbols inherit the namespace visibility.
2024-07-09 16:22:19 -07:00
Petr Hosek
b3e71ec9f7
[libc] Provide __libc_{init,fini}_array for baremetal (#90828)
These are provided by newlib and many baremetal projects assume they're
available rather than providing their own implementation.
2024-05-21 15:46:04 -07:00