1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-28 20:47:45 +00:00

LibC: Use our implementation of crti.o and crtn.o

We have had these for quite a while, but we didn't compile them, and
used GCC's version instead. Clang does not come with these, so we have
to provide our own implementation.

Our implementation follows what `musl` and `FreeBSD` do, so this should
work fine, even if documentation can hardly be found for them.
This commit is contained in:
Daniel Bertalan 2021-07-12 20:37:38 +02:00 committed by Andreas Kling
parent 7f2eb2f332
commit a88f7c99fe
8 changed files with 93 additions and 35 deletions

View file

@ -0,0 +1,23 @@
/*
* Copyright (c) 2021, Daniel Bertalan <dani@danielbertalan.dev>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
.section .init, "ax", @progbits
.align 4
.global _init
.type _init, @function
_init:
pushq %rbp
movq %rsp, %rbp
andq $-16, %rsp
.section .fini, "ax", @progbits
.align 4
.global _fini
.type _fini, @function
_fini:
pushq %rbp
movq %rsp, %rbp
andq $-16, %rsp