aboutsummaryrefslogtreecommitdiff
path: root/lib/mlibc/tests/rtdl/preinit
diff options
context:
space:
mode:
Diffstat (limited to 'lib/mlibc/tests/rtdl/preinit')
-rw-r--r--lib/mlibc/tests/rtdl/preinit/libfoo.c18
-rw-r--r--lib/mlibc/tests/rtdl/preinit/meson.build18
-rw-r--r--lib/mlibc/tests/rtdl/preinit/test.c44
3 files changed, 0 insertions, 80 deletions
diff --git a/lib/mlibc/tests/rtdl/preinit/libfoo.c b/lib/mlibc/tests/rtdl/preinit/libfoo.c
deleted file mode 100644
index 9c834ea..0000000
--- a/lib/mlibc/tests/rtdl/preinit/libfoo.c
+++ /dev/null
@@ -1,18 +0,0 @@
-#include <stdio.h>
-#include <assert.h>
-
-int fooDone = 0;
-
-// DSOs do not support pre-initialization functions.
-
-__attribute__((constructor))
-void fooInit() {
- dprintf(1, "initialization function called in foo\n");
-
- assert(fooDone == 0);
- fooDone++;
-}
-
-int isFooDone() {
- return fooDone;
-}
diff --git a/lib/mlibc/tests/rtdl/preinit/meson.build b/lib/mlibc/tests/rtdl/preinit/meson.build
deleted file mode 100644
index 1a7f398..0000000
--- a/lib/mlibc/tests/rtdl/preinit/meson.build
+++ /dev/null
@@ -1,18 +0,0 @@
-if host_machine.cpu_family() == 'riscv64'
- # gp isn't initialized until after crt1.o runs, so to access
- # globals in our pre-initializers we must disable it.
- test_additional_link_args = ['-Wl,--no-relax']
-endif
-
-libfoo = shared_library('foo', 'libfoo.c',
- dependencies: libc_dep,
- override_options: 'b_sanitize=none',
- link_args: test_additional_link_args,
-)
-test_link_with = [libfoo]
-
-libfoo_native = shared_library('native-foo', 'libfoo.c',
- link_args: ['-ldl'] + test_additional_link_args,
- native: true
-)
-test_native_link_with = [libfoo_native]
diff --git a/lib/mlibc/tests/rtdl/preinit/test.c b/lib/mlibc/tests/rtdl/preinit/test.c
deleted file mode 100644
index 5b5d5e8..0000000
--- a/lib/mlibc/tests/rtdl/preinit/test.c
+++ /dev/null
@@ -1,44 +0,0 @@
-#include <stdio.h>
-#include <assert.h>
-
-int mainDone = 0;
-
-int isFooDone();
-
-void preInit1() {
- // Use dprintf because stdout might not be initialized yet.
- dprintf(1, "pre-initialization function 1 called in main executable\n");
-
- assert(isFooDone() == 0);
- assert(mainDone == 0);
- mainDone++;
-}
-
-void preInit2() {
- dprintf(1, "pre-initialization function 2 called in main executable\n");
-
- assert(isFooDone() == 0);
- assert(mainDone == 1);
- mainDone++;
-}
-
-__attribute__((constructor))
-void mainInit() {
- dprintf(1, "initialization function called in main executable\n");
-
- assert(isFooDone() == 1);
- assert(mainDone == 2);
- mainDone++;
-}
-
-// Manually register the pre-initialization functions.
-__attribute__((used, section(".preinit_array")))
-static void (*preinitFunctions[])(void) = {
- &preInit1,
- &preInit2,
-};
-
-int main() {
- assert(isFooDone() == 1);
- assert(mainDone == 3);
-}