summaryrefslogtreecommitdiff
path: root/lib/libc/arch/x86_64/crt0.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc/arch/x86_64/crt0.c')
-rw-r--r--lib/libc/arch/x86_64/crt0.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/lib/libc/arch/x86_64/crt0.c b/lib/libc/arch/x86_64/crt0.c
index a278c525..c60239d3 100644
--- a/lib/libc/arch/x86_64/crt0.c
+++ b/lib/libc/arch/x86_64/crt0.c
@@ -1,9 +1,9 @@
+#include "asm/auxvec.h" // for AT_SYSINFO_EHDR
+#include <io_uring.h>
#include <linux/auxvec.h> // for AT_NULL
#include <linux/elf.h> // for Elf64_Ehdr
-#include "asm/auxvec.h" // for AT_SYSINFO_EHDR
-
-#include <stdint.h> // for uintptr_t
-#include <stdlib.h> // for exit
+#include <stdint.h> // for uintptr_t
+#include <stdlib.h> // for exit
#define weak_reference(old, new) \
extern __typeof(old) new __attribute__((__weak__, __alias__(#old)))
@@ -23,6 +23,11 @@ static void __vdso_setup(Elf64_Ehdr *vdso_addr __attribute__((unused)))
weak_reference(__vdso_setup, vdso_setup);
+static void __io_uring_setup_(void)
+{
+}
+weak_reference(__io_uring_setup_, __io_uring_setup);
+
__attribute__((used)) void __libc_start(uintptr_t *sp)
{
char **argv;
@@ -46,6 +51,8 @@ __attribute__((used)) void __libc_start(uintptr_t *sp)
__auxv++;
}
+ __io_uring_setup_();
+
exit(main(argc, argv));
}