diff --git a/README.adoc b/README.adoc index 396b51b..8ae6a8b 100644 --- a/README.adoc +++ b/README.adoc @@ -15155,7 +15155,6 @@ So setup this `on_exit` automatically from all our <>, so The following examples end up testing that our setup is working: + * link:baremetal/assert_fail.c[] -* link:baremetal/lkmc_assert_fail.c[] * link:baremetal/return1.c[] * link:baremetal/return2.c[] * link:baremetal/exit0.c[] @@ -15165,30 +15164,6 @@ The following examples end up testing that our setup is working: Beware that on Linux kernel simulations, you cannot even echo that string from userland, since userland stdout shows up on the serial. -====== baremetal assert - -TODO: implement enough syscalls for it, so we can get the error line: - -.... -cd baremetal -ln -s ../lkmc/assert_fail.c -cd .. -./build --arch aarch64 -.... - -fails with: - -.... -/path/to/linux-kernel-module-cheat/out/crosstool-ng/build/default/install/aarch64/lib/gcc/aarch64-unknown-elf/8.1.0/../../../../aarch64-unknown-elf/lib/libg.a(lib_a-signalr.o): In function `_kill_r': -/path/to/linux-kernel-module-cheat/out/crosstool-ng/build/default/build/aarch64-unknown-elf/src/newlib/newlib/libc/reent/signalr.c:53: undefined reference to `_kill' -/path/to/linux-kernel-module-cheat/out/crosstool-ng/build/default/build/aarch64-unknown-elf/src/newlib/newlib/libc/reent/signalr.c:53:(.text+0x20): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `_kill' -/path/to/linux-kernel-module-cheat/out/crosstool-ng/build/default/install/aarch64/lib/gcc/aarch64-unknown-elf/8.1.0/../../../../aarch64-unknown-elf/lib/libg.a(lib_a-signalr.o): In function `_getpid_r': -/path/to/linux-kernel-module-cheat/out/crosstool-ng/build/default/build/aarch64-unknown-elf/src/newlib/newlib/libc/reent/signalr.c:83: undefined reference to `_getpid' -/path/to/linux-kernel-module-cheat/out/crosstool-ng/build/default/build/aarch64-unknown-elf/src/newlib/newlib/libc/reent/signalr.c:83:(.text+0x44): relocation truncated to fit: R_AARCH64_JUMP26 against undefined symbol `_getpid' -.... - -at 406ee82cf33a6e3df0067b219b0414c59d7018b3 + 1. - ==== Non-automated tests ===== Test GDB Linux kernel diff --git a/baremetal/arch/aarch64/add.S b/baremetal/arch/aarch64/add.S index caaffae..1881069 100644 --- a/baremetal/arch/aarch64/add.S +++ b/baremetal/arch/aarch64/add.S @@ -7,7 +7,7 @@ main: /* test-gdb-result */ cmp x1, 3 beq 1f - bl lkmc_assert_fail + bl abort 1: mov x0, 0 ret diff --git a/baremetal/arch/aarch64/fadd.S b/baremetal/arch/aarch64/fadd.S index e974e6c..e8f2825 100644 --- a/baremetal/arch/aarch64/fadd.S +++ b/baremetal/arch/aarch64/fadd.S @@ -12,7 +12,7 @@ main: fmov d3, 4.0 fcmp d2, d3 beq 1f - bl lkmc_assert_fail + bl abort 1: /* Now in 32-bit. */ @@ -26,7 +26,7 @@ main: fmov s3, 4.0 fcmp s2, s3 beq 1f - bl lkmc_assert_fail + bl abort 1: /* Higher registers. */ @@ -40,7 +40,7 @@ main: /* test-gdb-d31 */ fcmp d30, d31 beq 1f - bl lkmc_assert_fail + bl abort 1: mov x0, 0 diff --git a/baremetal/arch/aarch64/svc_asm.S b/baremetal/arch/aarch64/svc_asm.S index 2803a2f..5adaf13 100644 --- a/baremetal/arch/aarch64/svc_asm.S +++ b/baremetal/arch/aarch64/svc_asm.S @@ -12,7 +12,7 @@ main: ldr x1, mynewvar cmp x0, x1 beq 1f - bl lkmc_assert_fail + bl abort 1: /* Go home. */ diff --git a/baremetal/arch/arm/add.S b/baremetal/arch/arm/add.S index 254ae1a..75aec98 100644 --- a/baremetal/arch/arm/add.S +++ b/baremetal/arch/arm/add.S @@ -7,7 +7,7 @@ main: /* test-gdb-result */ cmp r1, #3 beq 1f - bl lkmc_assert_fail + bl abort 1: mov r0, #0 bx lr diff --git a/baremetal/lib/aarch64.S b/baremetal/lib/aarch64.S index 235de91..35e9c0d 100644 --- a/baremetal/lib/aarch64.S +++ b/baremetal/lib/aarch64.S @@ -31,6 +31,6 @@ LKMC_VECTOR_TABLE LKMC_WEAK(lkmc_vector_trap_handler) ldr x0, =lkmc_vector_trap_handler_error bl puts - bl lkmc_assert_fail + bl abort lkmc_vector_trap_handler_error: .asciz "error: unexpected interrupt" diff --git a/baremetal/lkmc_assert_fail.c b/baremetal/lkmc_assert_fail.c deleted file mode 120000 index c612c70..0000000 --- a/baremetal/lkmc_assert_fail.c +++ /dev/null @@ -1 +0,0 @@ -../lkmc/lkmc_assert_fail.c \ No newline at end of file diff --git a/lkmc.c b/lkmc.c index 977ef1c..d00ea3e 100644 --- a/lkmc.c +++ b/lkmc.c @@ -6,10 +6,6 @@ #include -void lkmc_assert_fail(void) { - exit(1); -} - void lkmc_baremetal_on_exit_callback(int status, void *arg) { (void)arg; if (status != 0) { diff --git a/lkmc.h b/lkmc.h index 0809af0..a642b6d 100644 --- a/lkmc.h +++ b/lkmc.h @@ -11,7 +11,6 @@ #include #include -void lkmc_assert_fail(); void lkmc_baremetal_on_exit_callback(int status, void *arg); #endif diff --git a/lkmc/add.c b/lkmc/add.c index b363317..6b3606c 100644 --- a/lkmc/add.c +++ b/lkmc/add.c @@ -1,4 +1,4 @@ -#include +#include int main(void) { int i, j, k; @@ -9,5 +9,5 @@ int main(void) { k = i + j; /* test-gdb-result */ if (k != 3) - lkmc_assert_fail(); + assert(0); } diff --git a/lkmc/lkmc_assert_fail.c b/lkmc/lkmc_assert_fail.c deleted file mode 100644 index 68fbefa..0000000 --- a/lkmc/lkmc_assert_fail.c +++ /dev/null @@ -1,5 +0,0 @@ -#include - -int main(void) { - lkmc_assert_fail(); -} diff --git a/path_properties.py b/path_properties.py index 8311875..2a86fcd 100644 --- a/path_properties.py +++ b/path_properties.py @@ -261,7 +261,6 @@ path_properties_tuples = ( } ), 'assert_fail.c': {'exit_status': 134}, - 'lkmc_assert_fail.c': {'exit_status': 1}, 'exit1.c': {'exit_status': 1}, 'infinite_loop.c': {'more_than_1s': True}, 'lib': {'no_executable': True}, @@ -376,7 +375,6 @@ path_properties_tuples = ( 'lkmc': ( {'extra_objs_lkmc_common': True}, { - 'assert_fail.c': {'exit_status': 1}, } ), 'libs': ( diff --git a/userland/lkmc/assert_fail.c b/userland/lkmc/assert_fail.c deleted file mode 120000 index 73df102..0000000 --- a/userland/lkmc/assert_fail.c +++ /dev/null @@ -1 +0,0 @@ -../../lkmc/lkmc_assert_fail.c \ No newline at end of file