diff options
Diffstat (limited to 'manual tests')
-rw-r--r-- | manual tests/9 nostdlib/meson.build | 14 | ||||
-rw-r--r-- | manual tests/9 nostdlib/prog.c | 7 | ||||
-rw-r--r-- | manual tests/9 nostdlib/subprojects/mylibc/libc.c | 35 | ||||
-rw-r--r-- | manual tests/9 nostdlib/subprojects/mylibc/meson.build | 11 | ||||
-rw-r--r-- | manual tests/9 nostdlib/subprojects/mylibc/stdio.h | 5 | ||||
-rw-r--r-- | manual tests/9 nostdlib/subprojects/mylibc/stubstart.s | 8 |
6 files changed, 0 insertions, 80 deletions
diff --git a/manual tests/9 nostdlib/meson.build b/manual tests/9 nostdlib/meson.build deleted file mode 100644 index 9c5f949..0000000 --- a/manual tests/9 nostdlib/meson.build +++ /dev/null @@ -1,14 +0,0 @@ -project('own libc', 'c') - -# Not related to this test, but could not find a better place for this test. -assert(meson.get_cross_property('nonexisting', 'defaultvalue') == 'defaultvalue', - 'Cross prop getting is broken.') - -# A simple project that uses its own libc. - -# Note that we don't need to specify anything, the flags to use -# stdlib come from the cross file. - -exe = executable('selfcontained', 'prog.c') - -test('standalone test', exe) diff --git a/manual tests/9 nostdlib/prog.c b/manual tests/9 nostdlib/prog.c deleted file mode 100644 index b9216ee..0000000 --- a/manual tests/9 nostdlib/prog.c +++ /dev/null @@ -1,7 +0,0 @@ - -#include<stdio.h> - -int main(void) { - const char *message = "Hello without stdlib.\n"; - return simple_print(message, simple_strlen(message)); -} diff --git a/manual tests/9 nostdlib/subprojects/mylibc/libc.c b/manual tests/9 nostdlib/subprojects/mylibc/libc.c deleted file mode 100644 index 67261cb..0000000 --- a/manual tests/9 nostdlib/subprojects/mylibc/libc.c +++ /dev/null @@ -1,35 +0,0 @@ -/* Do not use this as the basis of your own libc. - * The code is probably unoptimal or wonky, as I - * had no prior experience with this, but instead - * just fiddled with the code until it worked. - */ - -#include<stdio.h> - -#define STDOUT 1 -#define SYS_WRITE 4 - -int simple_print(const char *msg, const long bufsize) { - int count; - long total_written = 0; - while(total_written < bufsize) { - asm( - "int $0x80\n\t" - : "=a"(count) - : "0"(SYS_WRITE), "b"(STDOUT), "c"(msg+total_written), "d"(bufsize-total_written) - :); - if(count == 0) { - return 1; - } - total_written += count; - } - return 0; -} - -int simple_strlen(const char *str) { - int len = 0; - while(str[len] != '\0') { - len++; - } - return len; -} diff --git a/manual tests/9 nostdlib/subprojects/mylibc/meson.build b/manual tests/9 nostdlib/subprojects/mylibc/meson.build deleted file mode 100644 index aa0184e..0000000 --- a/manual tests/9 nostdlib/subprojects/mylibc/meson.build +++ /dev/null @@ -1,11 +0,0 @@ -project('own libc', 'c') - -# A very simple libc implementation - -# Do not specify -nostdlib & co. They come from cross specifications. - -libc = static_library('c', 'libc.c', 'stubstart.s') - -mylibc_dep = declare_dependency(link_with : libc, - include_directories : include_directories('.') -) diff --git a/manual tests/9 nostdlib/subprojects/mylibc/stdio.h b/manual tests/9 nostdlib/subprojects/mylibc/stdio.h deleted file mode 100644 index c3f8f56..0000000 --- a/manual tests/9 nostdlib/subprojects/mylibc/stdio.h +++ /dev/null @@ -1,5 +0,0 @@ -#pragma once - -int simple_print(const char *msg, const long bufsize); - -int simple_strlen(const char *str); diff --git a/manual tests/9 nostdlib/subprojects/mylibc/stubstart.s b/manual tests/9 nostdlib/subprojects/mylibc/stubstart.s deleted file mode 100644 index 0a6d972..0000000 --- a/manual tests/9 nostdlib/subprojects/mylibc/stubstart.s +++ /dev/null @@ -1,8 +0,0 @@ -.globl _start - -_start: - - call main - movl %eax, %ebx - movl $1, %eax - int $0x80 |