<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/libc/startup/linux/riscv/start.cpp, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>[libc] major refactor of startup library (#76092)</title>
<updated>2024-01-04T20:51:14+00:00</updated>
<author>
<name>Schrodinger ZHU Yifan</name>
<email>yifanzhu@rochester.edu</email>
</author>
<published>2024-01-04T20:51:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=2bc994456c5be2ab6d98b94de2349302577a9823'/>
<id>2bc994456c5be2ab6d98b94de2349302577a9823</id>
<content type='text'>
* 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    &lt;- _start (loads process initial stack and aligns stack pointer)
  |      |_______ tls.cpp.o      &lt;- init_tls, cleanup_tls, set_thread_pointer (TLS related routines) 
  |___ do_start.cpp.o            &lt;- do_start (sets up global variables and invokes the main function) 
```</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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    &lt;- _start (loads process initial stack and aligns stack pointer)
  |      |_______ tls.cpp.o      &lt;- init_tls, cleanup_tls, set_thread_pointer (TLS related routines) 
  |___ do_start.cpp.o            &lt;- do_start (sets up global variables and invokes the main function) 
```</pre>
</div>
</content>
</entry>
<entry>
<title>[libc] expose aux vector (#75806)</title>
<updated>2023-12-18T20:27:30+00:00</updated>
<author>
<name>Schrodinger ZHU Yifan</name>
<email>yifanzhu@rochester.edu</email>
</author>
<published>2023-12-18T20:27:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6c1f56fdb51d0a7d5be13289e8b5f5a7bea40cf8'/>
<id>6c1f56fdb51d0a7d5be13289e8b5f5a7bea40cf8</id>
<content type='text'>
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.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.</pre>
</div>
</content>
</entry>
<entry>
<title>[libc] fix issues around stack protector (#74567)</title>
<updated>2023-12-12T20:31:51+00:00</updated>
<author>
<name>Schrodinger ZHU Yifan</name>
<email>yifanzhu@rochester.edu</email>
</author>
<published>2023-12-12T20:31:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3568521e3d2d09d12bd0c476d0376de165b19178'/>
<id>3568521e3d2d09d12bd0c476d0376de165b19178</id>
<content type='text'>
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.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.</pre>
</div>
</content>
</entry>
<entry>
<title>[libc][NFC] unify startup library's code style with the rest (#74041)</title>
<updated>2023-12-04T18:31:18+00:00</updated>
<author>
<name>Schrodinger ZHU Yifan</name>
<email>yifanzhu@rochester.edu</email>
</author>
<published>2023-12-04T18:31:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a0eda109471b74ef929f5830438201973d70705e'/>
<id>a0eda109471b74ef929f5830438201973d70705e</id>
<content type='text'>
This PR unifies the startup library's code style with the rest of libc.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR unifies the startup library's code style with the rest of libc.</pre>
</div>
</content>
</entry>
<entry>
<title>[libc] Start to refactor riscv platform abstraction to support both 32 and 64 bits versions</title>
<updated>2023-09-26T15:32:25+00:00</updated>
<author>
<name>Mikhail R. Gadelha</name>
<email>mikhail@igalia.com</email>
</author>
<published>2023-05-01T15:39:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e3087c4b8cee20094c1a72b94b0a7f5f543cf37d'/>
<id>e3087c4b8cee20094c1a72b94b0a7f5f543cf37d</id>
<content type='text'>
This patch enables the compilation of libc for rv32 by unifying the
current rv64 and rv32 implementation into a single rv implementation.

We updated the cmake file to match the new riscv32 arch and force
LIBC_TARGET_ARCHITECTURE to be "riscv" whenever we find "riscv32" or
"riscv64". This is required as LIBC_TARGET_ARCHITECTURE is used in the
path for several platform specific implementations.

Reviewed By: michaelrj

Differential Revision: https://reviews.llvm.org/D148797
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch enables the compilation of libc for rv32 by unifying the
current rv64 and rv32 implementation into a single rv implementation.

We updated the cmake file to match the new riscv32 arch and force
LIBC_TARGET_ARCHITECTURE to be "riscv" whenever we find "riscv32" or
"riscv64". This is required as LIBC_TARGET_ARCHITECTURE is used in the
path for several platform specific implementations.

Reviewed By: michaelrj

Differential Revision: https://reviews.llvm.org/D148797
</pre>
</div>
</content>
</entry>
</feed>
