]> Projects (at) Tadryanom (dot) Me - AdrOS.git/commit
feat(ulibc): add __libc_init_array/__libc_fini_array and update crt0.S
authorTulio A M Mendes <[email protected]>
Fri, 3 Apr 2026 19:52:58 +0000 (16:52 -0300)
committerTulio A M Mendes <[email protected]>
Fri, 3 Apr 2026 19:52:58 +0000 (16:52 -0300)
commit3c7f1480fede1343d98cb4cdb27ba4a94052b466
treeb3a1fb5fefba0bb9895de134fb5184e468a3ef84
parent8027c33bfb39f6329456a93c73c5258a7950716b
feat(ulibc): add __libc_init_array/__libc_fini_array and update crt0.S

Add constructor/destructor support to ulibc:
- New file init_fini.c: implements __libc_init_array() to run .preinit_array
  and .init_array global constructors, and __libc_fini_array() to run
  .fini_array global destructors.
- Updated crt0.S: calls __libc_init_array before main and __libc_fini_array
  after main returns (matching Newlib crt0 behavior). Also uses 'environ'
  symbol (POSIX) and adds .note.GNU-stack for NX compatibility.
user/ulibc/src/crt0.S
user/ulibc/src/init_fini.c [new file with mode: 0644]