History log of /llvm-project/libc/startup/linux/do_start.cpp (Results 1 – 16 of 16)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0
# 779a4440 11-Sep-2024 Schrodinger ZHU Yifan <yifanzhu@rochester.edu>

[libc] fix tls teardown while being used (#108229)

The call chain to `Mutex:lock` can be polluted by stack protector. For
completely safe, let's postpone the main TLS tearing down to a separate
ph

[libc] fix tls teardown while being used (#108229)

The call chain to `Mutex:lock` can be polluted by stack protector. For
completely safe, let's postpone the main TLS tearing down to a separate
phase.

fix #108030

show more ...


Revision tags: llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3
# b7c7dbd4 11-Aug-2024 Schrodinger ZHU Yifan <yifanzhu@rochester.edu>

Revert "libc: Remove `extern "C"` from main declarations" (#102827)

Reverts llvm/llvm-project#102825


# 1b71c471 11-Aug-2024 David Blaikie <dblaikie@gmail.com>

libc: Remove `extern "C"` from main declarations (#102825)

This is invalid in C++, and clang recently started warning on it as of
#101853


# 72c9e24e 05-Aug-2024 Schrodinger ZHU Yifan <yifanzhu@rochester.edu>

[libc][startup] fix main thread TLS unmapped with wrong value (#102009)

We have been unmapping a wrong address all the time.
```c
munmap(0x704cffebb000, 41048) = 0
munmap(0x704cffec6000

[libc][startup] fix main thread TLS unmapped with wrong value (#102009)

We have been unmapping a wrong address all the time.
```c
munmap(0x704cffebb000, 41048) = 0
munmap(0x704cffec6000, 69632) = 0
munmap(0x704cffe9f000, 41048) = 0
munmap(0x704cffeaa000, 69632) = 0
munmap(0x704cffe83000, 41048) = 0
munmap(0x704cffe8e000, 69632) = 0
munmap(0x704cffe67000, 41048) = 0
munmap(0x704cffe72000, 69632) = 0
munmap(0x704cffe4b000, 41048) = 0
munmap(0x704cffe56000, 69632) = 0
munmap(0x704cffe2f000, 41048) = 0
munmap(0x704cffe3a000, 69632) = 0
munmap(0x704cfff51028, 41048) = -1 EINVAL (Invalid argument)
```

show more ...


Revision tags: llvmorg-19.1.0-rc2
# 3db5c1ee 28-Jul-2024 Schrodinger ZHU Yifan <yifanzhu@rochester.edu>

revert all tid changes (#100915)


Revision tags: llvmorg-19.1.0-rc1, llvmorg-20-init
# 29be889c 20-Jul-2024 Schrodinger ZHU Yifan <yifanzhu@rochester.edu>

reland "[libc] implement cached process/thread identity (#98989)" (#99765)


# 415ca24f 18-Jul-2024 Schrodinger ZHU Yifan <yifanzhu@rochester.edu>

Revert "[libc] implement cached process/thread identity" (#99559)

Reverts llvm/llvm-project#98989


# 5c9fc3cd 18-Jul-2024 Schrodinger ZHU Yifan <yifanzhu@rochester.edu>

[libc] implement cached process/thread identity (#98989)

migrated from https://github.com/llvm/llvm-project/pull/95965 due to
corrupted git history


# 5ff3ff33 12-Jul-2024 Petr Hosek <phosek@google.com>

[libc] Migrate to using LIBC_NAMESPACE_DECL for namespace declaration (#98597)

This is a part of #97655.


# ce9035f5 12-Jul-2024 Mehdi Amini <joker.eph@gmail.com>

Revert "[libc] Migrate to using LIBC_NAMESPACE_DECL for namespace declaration" (#98593)

Reverts llvm/llvm-project#98075

bots are broken


# 3f30effe 11-Jul-2024 Petr Hosek <phosek@google.com>

[libc] Migrate to using LIBC_NAMESPACE_DECL for namespace declaration (#98075)

This is a part of #97655.


# dca49d73 25-Jun-2024 Nick Desaulniers (paternity leave) <nickdesaulniers@users.noreply.github.com>

[libc][arm32] define argc type and stack alignment (#96367)

https://github.com/ARM-software/abi-aa/blob/main/aapcs32/aapcs32.rst#6212stack-constraints-at-a-public-interface
mentions that the stack o

[libc][arm32] define argc type and stack alignment (#96367)

https://github.com/ARM-software/abi-aa/blob/main/aapcs32/aapcs32.rst#6212stack-constraints-at-a-public-interface
mentions that the stack on ARM32 is double word aligned.

Remove confused comments around ArgcType. argc is always an int, passed on the
stack, so we need to store a pointer to it (regardless of ILP32 or LP64).

show more ...


# bea7f3d8 24-Jun-2024 Nick Desaulniers (paternity leave) <nickdesaulniers@users.noreply.github.com>

[libc][startup] create header for ElfW and use in startup (#96510)


This is necessary for 32b platforms such as ARM and i386.

Link: #94128


Revision tags: llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1
# 4a9b5aa1 24-Jan-2024 Schrodinger ZHU Yifan <yifanzhu@rochester.edu>

[libc][NFC] remove TODO about AppProperties (#79356)

```
AppProperties app;
```
is marked as a weak symbol in header now. One can just use `&app !=
nullptr` to check if `app` is defined. There i

[libc][NFC] remove TODO about AppProperties (#79356)

```
AppProperties app;
```
is marked as a weak symbol in header now. One can just use `&app !=
nullptr` to check if `app` is defined. There is no need to define it for
overlay mode.

show more ...


Revision tags: llvmorg-19-init
# 0fe20aa4 22-Jan-2024 Schrodinger ZHU Yifan <yifanzhu@rochester.edu>

[libc] support PIE relocations (#78993)

For some reasons, we are using `-fpie`
(libc/cmake/modules/LLVMLibCObjectRules.cmake:31) without supporting it.
According to @lntue, some of the hermetic test

[libc] support PIE relocations (#78993)

For some reasons, we are using `-fpie`
(libc/cmake/modules/LLVMLibCObjectRules.cmake:31) without supporting it.
According to @lntue, some of the hermetic tests are broken without
proper PIE support. This patch implements basic relocations support for
PIE.

show more ...


# 2bc99445 04-Jan-2024 Schrodinger ZHU Yifan <yifanzhu@rochester.edu>

[libc] major refactor of startup library (#76092)

* separate initialization routines into _start and do_start for all
architectures.
* lift do_start as a separate object library to avoid code dupl

[libc] major refactor of startup library (#76092)

* 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)
```

show more ...