Эх сурвалжийг харах

调整user下libs的libc目录结构 (#103)

* 调整user下libs的libc目录结构

* 修正.gitignore文件的问题

* 修复无法编译的问题

Co-authored-by: longjin <[email protected]>
wwc-15172310230 2 жил өмнө
parent
commit
237e95c6dd
57 өөрчлөгдсөн 229 нэмэгдсэн , 124 устгасан
  1. 1 1
      .gitignore
  2. 5 1
      .vscode/settings.json
  3. 1 1
      docs/userland/libc/apis/index.rst
  4. 6 0
      user/Makefile
  5. 5 5
      user/apps/about/about.c
  6. 11 11
      user/apps/shell/cmd.c
  7. 2 2
      user/apps/shell/cmd_help.c
  8. 4 4
      user/apps/shell/cmd_test.c
  9. 8 8
      user/apps/shell/shell.c
  10. 5 5
      user/apps/test_signal/main.c
  11. 7 0
      user/libs/Makefile
  12. 1 1
      user/libs/libKeyboard/keyboard.c
  13. 11 0
      user/libs/libc/.cargo/config.toml
  14. 2 0
      user/libs/libc/.gitignore
  15. 18 0
      user/libs/libc/Cargo.toml
  16. 5 46
      user/libs/libc/Makefile
  17. 63 0
      user/libs/libc/src/Makefile
  18. 0 0
      user/libs/libc/src/__libc__.h
  19. 1 1
      user/libs/libc/src/ctype.c
  20. 2 2
      user/libs/libc/src/ctype.h
  21. 0 0
      user/libs/libc/src/dirent.c
  22. 1 1
      user/libs/libc/src/dirent.h
  23. 0 0
      user/libs/libc/src/errno.c
  24. 0 0
      user/libs/libc/src/errno.h
  25. 1 1
      user/libs/libc/src/fcntl.c
  26. 0 0
      user/libs/libc/src/fcntl.h
  27. 0 0
      user/libs/libc/src/include/signal.h
  28. 21 0
      user/libs/libc/src/lib.rs
  29. 5 5
      user/libs/libc/src/malloc.c
  30. 0 0
      user/libs/libc/src/math.h
  31. 0 0
      user/libs/libc/src/math/Makefile
  32. 2 3
      user/libs/libc/src/math/fabs.c
  33. 1 1
      user/libs/libc/src/math/libm.h
  34. 2 2
      user/libs/libc/src/math/pow.c
  35. 0 0
      user/libs/libc/src/math/round.c
  36. 4 4
      user/libs/libc/src/printf.c
  37. 0 0
      user/libs/libc/src/printf.h
  38. 1 1
      user/libs/libc/src/stddef.h
  39. 1 1
      user/libs/libc/src/stdio.h
  40. 3 3
      user/libs/libc/src/stdlib.c
  41. 1 1
      user/libs/libc/src/stdlib.h
  42. 0 0
      user/libs/libc/src/string.c
  43. 1 1
      user/libs/libc/src/string.h
  44. 0 0
      user/libs/libc/src/sys/Makefile
  45. 0 0
      user/libs/libc/src/sys/stat.c
  46. 1 1
      user/libs/libc/src/sys/stat.h
  47. 0 0
      user/libs/libc/src/sys/types.h
  48. 0 0
      user/libs/libc/src/sys/wait.c
  49. 0 0
      user/libs/libc/src/sys/wait.h
  50. 0 0
      user/libs/libc/src/sysdeps/x86_64/Makefile
  51. 2 2
      user/libs/libc/src/sysdeps/x86_64/elf/start.c
  52. 0 0
      user/libs/libc/src/time.c
  53. 0 0
      user/libs/libc/src/time.h
  54. 6 6
      user/libs/libc/src/unistd.c
  55. 1 1
      user/libs/libc/src/unistd.h
  56. 15 0
      user/libs/libc/src/x86_64-unknown-none.json
  57. 2 2
      user/libs/libsystem/syscall.c

+ 1 - 1
.gitignore

@@ -12,4 +12,4 @@ user/sys_api_lib
 
 docs/_build
 draft
-cppcheck.xml
+cppcheck.xml

+ 5 - 1
.vscode/settings.json

@@ -159,7 +159,11 @@
         "completion.h": "c",
         "fat32.h": "c",
         "irqflags.h": "c",
-        "dirent.h": "c"
+        "dirent.h": "c",
+        "cmd_help.h": "c",
+        "wait.h": "c",
+        "__libc__.h": "c",
+        "ctype.h": "c"
     },
     "C_Cpp.errorSquiggles": "Enabled",
     "esbonio.sphinx.confDir": "",

+ 1 - 1
docs/userland/libc/apis/index.rst

@@ -18,4 +18,4 @@ API文档
    api-list/unistd
    
 这里是所有libc头文件的集合,在代码里可以这样引用:  
-``#include<libc/xxx.h>``  
+``#include<libc/src/xxx.h>``  

+ 6 - 0
user/Makefile

@@ -35,4 +35,10 @@ sys_api_lib:
 
 clean: 
 	rm -rf $(GARBAGE)
+	$(MAKE) clean -C libs
+	@list='$(user_sub_dirs)'; for subdir in $$list; do \
+		echo "Clean in dir: $$subdir";\
+		cd $$subdir && $(MAKE) clean;\
+		cd .. ;\
+	done
 	

+ 5 - 5
user/apps/about/about.c

@@ -1,8 +1,8 @@
-#include <libc/math.h>
-#include <libc/stdio.h>
-#include <libc/stdlib.h>
-#include <libc/time.h>
-#include <libc/unistd.h>
+#include <libc/src/math.h>
+#include <libc/src/stdio.h>
+#include <libc/src/stdlib.h>
+#include <libc/src/time.h>
+#include <libc/src/unistd.h>
 
 void print_ascii_logo()
 {

+ 11 - 11
user/apps/shell/cmd.c

@@ -1,17 +1,17 @@
 #include "cmd.h"
 #include "cmd_help.h"
 #include "cmd_test.h"
-#include <libc/dirent.h>
-#include <libc/errno.h>
-#include <libc/fcntl.h>
-#include <libc/include/signal.h>
-#include <libc/stddef.h>
-#include <libc/stdio.h>
-#include <libc/stdlib.h>
-#include <libc/string.h>
-#include <libc/sys/stat.h>
-#include <libc/sys/wait.h>
-#include <libc/unistd.h>
+#include <libc/src/dirent.h>
+#include <libc/src/errno.h>
+#include <libc/src/fcntl.h>
+#include <libc/src/include/signal.h>
+#include <libc/src/stddef.h>
+#include <libc/src/stdio.h>
+#include <libc/src/stdlib.h>
+#include <libc/src/string.h>
+#include <libc/src/sys/stat.h>
+#include <libc/src/sys/wait.h>
+#include <libc/src/unistd.h>
 #include <libsystem/syscall.h>
 
 // 当前工作目录(在main_loop中初始化)

+ 2 - 2
user/apps/shell/cmd_help.c

@@ -1,6 +1,6 @@
 #include "cmd_help.h"
-#include <libc/stdio.h>
-#include <libc/stdlib.h>
+#include <libc/src/stdio.h>
+#include <libc/src/stdlib.h>
 struct help_table_item_t
 {
     void (*func)();

+ 4 - 4
user/apps/shell/cmd_test.c

@@ -1,8 +1,8 @@
 #include "cmd_test.h"
-#include <libc/stdio.h>
-#include <libc/stdlib.h>
-#include <libc/string.h>
-#include <libc/unistd.h>
+#include <libc/src/stdio.h>
+#include <libc/src/stdlib.h>
+#include <libc/src/string.h>
+#include <libc/src/unistd.h>
 
 int shell_pipe_test(int argc, char **argv)
 {

+ 8 - 8
user/apps/shell/shell.c

@@ -1,13 +1,13 @@
 #include "cmd.h"
 #include <libKeyboard/keyboard.h>
-#include <libc/fcntl.h>
-#include <libc/printf.h>
-#include <libc/stddef.h>
-#include <libc/stdio.h>
-#include <libc/stdlib.h>
-#include <libc/string.h>
-#include <libc/sys/stat.h>
-#include <libc/unistd.h>
+#include <libc/src/fcntl.h>
+#include <libc/src/printf.h>
+#include <libc/src/stddef.h>
+#include <libc/src/stdio.h>
+#include <libc/src/stdlib.h>
+#include <libc/src/string.h>
+#include <libc/src/sys/stat.h>
+#include <libc/src/unistd.h>
 
 #define pause_cpu() asm volatile("pause\n\t");
 #define MEM_HISTORY 1024

+ 5 - 5
user/apps/test_signal/main.c

@@ -17,11 +17,11 @@
  * 
 */
 
-#include <libc/math.h>
-#include <libc/stdio.h>
-#include <libc/stdlib.h>
-#include <libc/time.h>
-#include <libc/unistd.h>
+#include <libc/src/math.h>
+#include <libc/src/stdio.h>
+#include <libc/src/stdlib.h>
+#include <libc/src/time.h>
+#include <libc/src/unistd.h>
 
 int main()
 {

+ 7 - 0
user/libs/Makefile

@@ -10,3 +10,10 @@ $(user_libs_sub_dirs): ECHO
 	$(MAKE) -C $@ all CFLAGS="$(CFLAGS) -I $(shell pwd)"
 
 all: $(user_libs_sub_dirs)
+
+clean:
+	@list='$(user_libs_sub_dirs)'; for subdir in $$list; do \
+		echo "Clean in dir: $$subdir";\
+		cd $$subdir && $(MAKE) clean;\
+		cd .. ;\
+	done

+ 1 - 1
user/libs/libKeyboard/keyboard.c

@@ -1,5 +1,5 @@
 #include "keyboard.h"
-#include <libc/unistd.h>
+#include <libc/src/unistd.h>
 // 功能键标志变量
 static bool shift_l = 0, shift_r = 0, ctrl_l = 0, ctrl_r = 0, alt_l = 0, alt_r = 0;
 static bool gui_l = 0, gui_r = 0, apps = 0, insert = 0, home = 0, pgup = 0, del = 0, end = 0, pgdn = 0, arrow_u = 0, arrow_l = 0, arrow_d = 0, arrow_r = 0;

+ 11 - 0
user/libs/libc/.cargo/config.toml

@@ -0,0 +1,11 @@
+[build]
+target = "src/arch/x86_64/x86_64-unknown-none.json"
+
+[unstable]
+build-std = ["core", "compiler_builtins", "alloc"]
+build-std-features = ["compiler-builtins-mem"]
+
+[target.'cfg(target_os = "none")']
+runner = "bootimage runner"
+
+[env]

+ 2 - 0
user/libs/libc/.gitignore

@@ -0,0 +1,2 @@
+target/
+Cargo.lock

+ 18 - 0
user/libs/libc/Cargo.toml

@@ -0,0 +1,18 @@
+[package]
+name = "libc"
+version = "0.1.0"
+edition = "2021"
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+[lib]
+crate-type = ["staticlib"]
+
+# 运行时依赖项
+[dependencies]
+x86_64 = "0.14.10"
+
+# 构建时依赖项
+[build-dependencies]
+bindgen = "0.61.0"
+
+

+ 5 - 46
user/libs/libc/Makefile

@@ -1,48 +1,7 @@
-all: libc
 
-CFLAGS += -I .
+all: 
+	$(MAKE) -C src all
 
-libc_sub_dirs=math sys
-
-ifeq ($(ARCH), __x86_64__)
-libc_sub_dirs += sysdeps/x86_64
-endif
-
-
-libc: unistd.o fcntl.o malloc.o errno.o printf.o stdlib.o ctype.o string.o dirent.o time.o
-	@list='$(libc_sub_dirs)'; for subdir in $$list; do \
-    		echo "make all in $$subdir";\
-    		cd $$subdir;\
-    		$(MAKE) all CFLAGS="$(CFLAGS) -I $(shell pwd)";\
-    		cd ..;\
-	done
-
-unistd.o: unistd.c
-	$(CC) $(CFLAGS) -c unistd.c -o unistd.o
-
-fcntl.o: fcntl.c
-	$(CC) $(CFLAGS) -c fcntl.c -o fcntl.o
-
-malloc.o: malloc.c
-	$(CC) $(CFLAGS) -c malloc.c -o malloc.o
-
-errno.o: errno.c
-	$(CC) $(CFLAGS) -c errno.c -o errno.o
-
-printf.o: printf.c
-	$(CC) $(CFLAGS) -c printf.c -o printf.o
-
-stdlib.o: stdlib.c
-	$(CC) $(CFLAGS) -c stdlib.c -o stdlib.o
-	
-ctype.o: ctype.c
-	$(CC) $(CFLAGS) -c ctype.c -o ctype.o
-
-string.o: string.c
-	$(CC) $(CFLAGS) -c string.c -o string.o
-
-dirent.o: dirent.c
-	$(CC) $(CFLAGS) -c dirent.c -o dirent.o
-
-time.o: time.c
-	$(CC) $(CFLAGS) -c time.c -o time.o
+clean:
+	rm -f Cargo.lock
+	$(MAKE) -C src clean

+ 63 - 0
user/libs/libc/src/Makefile

@@ -0,0 +1,63 @@
+GARBAGE_PATTERNS := *.o *.s~ *.s *.S~ *.c~ *.h~ kernel
+GARBAGE := $(foreach DIR,$(DIRS),$(addprefix $(DIR)/,$(GARBAGE_PATTERNS)))
+
+all: libc
+
+CFLAGS += -I .
+
+libc_sub_dirs=math sys
+
+ifeq ($(ARCH), __x86_64__)
+libc_sub_dirs += sysdeps/x86_64
+endif
+
+clean:
+	cargo clean
+	rm -rf $(GARBAGE)
+	@list='$(libc_sub_dirs)'; for subdir in $$list; do \
+		echo "Clean in dir: $$subdir";\
+		cd $$subdir && $(MAKE) clean;\
+		cd .. ;\
+	done
+
+libc: unistd.o fcntl.o malloc.o errno.o printf.o stdlib.o ctype.o string.o dirent.o time.o libc_rust
+	@list='$(libc_sub_dirs)'; for subdir in $$list; do \
+    		echo "make all in $$subdir";\
+    		cd $$subdir;\
+    		$(MAKE) all CFLAGS="$(CFLAGS) -I $(shell pwd)";\
+    		cd ..;\
+	done
+
+unistd.o: unistd.c
+	$(CC) $(CFLAGS) -c unistd.c -o unistd.o
+
+fcntl.o: fcntl.c
+	$(CC) $(CFLAGS) -c fcntl.c -o fcntl.o
+
+malloc.o: malloc.c
+	$(CC) $(CFLAGS) -c malloc.c -o malloc.o
+
+errno.o: errno.c
+	$(CC) $(CFLAGS) -c errno.c -o errno.o
+
+printf.o: printf.c
+	$(CC) $(CFLAGS) -c printf.c -o printf.o
+
+stdlib.o: stdlib.c
+	$(CC) $(CFLAGS) -c stdlib.c -o stdlib.o
+	
+ctype.o: ctype.c
+	$(CC) $(CFLAGS) -c ctype.c -o ctype.o
+
+string.o: string.c
+	$(CC) $(CFLAGS) -c string.c -o string.o
+
+dirent.o: dirent.c
+	$(CC) $(CFLAGS) -c dirent.c -o dirent.o
+
+time.o: time.c
+	$(CC) $(CFLAGS) -c time.c -o time.o
+
+libc_rust:
+	rustup default nightly
+	cargo +nightly build --release --target ./x86_64-unknown-none.json

+ 0 - 0
user/libs/libc/__libc__.h → user/libs/libc/src/__libc__.h


+ 1 - 1
user/libs/libc/ctype.c → user/libs/libc/src/ctype.c

@@ -1,4 +1,4 @@
-#include <libc/ctype.h>
+#include <libc/src/ctype.h>
 
 
 int isprint(int c)

+ 2 - 2
user/libs/libc/ctype.h → user/libs/libc/src/ctype.h

@@ -1,10 +1,10 @@
 #pragma once
 
-#include <libc/sys/types.h>
+#include <libc/src/sys/types.h>
 
 #pragma once
 
-#include <libc/__libc__.h>
+#include <libc/src/__libc__.h>
 
 
 int isalnum(int c);

+ 0 - 0
user/libs/libc/dirent.c → user/libs/libc/src/dirent.c


+ 1 - 1
user/libs/libc/dirent.h → user/libs/libc/src/dirent.h

@@ -1,5 +1,5 @@
 #pragma once
-#include <libc/sys/types.h>
+#include <libc/src/sys/types.h>
 
 
 /**

+ 0 - 0
user/libs/libc/errno.c → user/libs/libc/src/errno.c


+ 0 - 0
user/libs/libc/errno.h → user/libs/libc/src/errno.h


+ 1 - 1
user/libs/libc/fcntl.c → user/libs/libc/src/fcntl.c

@@ -1,4 +1,4 @@
-#include <libc/fcntl.h>
+#include <libc/src/fcntl.h>
 #include <libsystem/syscall.h>
 
 /**

+ 0 - 0
user/libs/libc/fcntl.h → user/libs/libc/src/fcntl.h


+ 0 - 0
user/libs/libc/include/signal.h → user/libs/libc/src/include/signal.h


+ 21 - 0
user/libs/libc/src/lib.rs

@@ -0,0 +1,21 @@
+#![no_std] // <1>
+#![no_main] // <1>
+#![feature(core_intrinsics)] // <2>
+#![feature(alloc_error_handler)]
+#![feature(panic_info_message)]
+
+#[allow(non_upper_case_globals)]
+#[allow(non_camel_case_types)]
+#[allow(non_snake_case)]
+
+
+use core::panic::PanicInfo;
+#[panic_handler]
+fn panic(_info: &PanicInfo) -> ! {
+    loop {}
+}
+
+#[no_mangle]
+pub extern "C" fn scanf() {
+
+}

+ 5 - 5
user/libs/libc/malloc.c → user/libs/libc/src/malloc.c

@@ -1,9 +1,9 @@
-#include <libc/stdlib.h>
+#include <libc/src/stdlib.h>
 #include <libsystem/syscall.h>
-#include <libc/stddef.h>
-#include <libc/unistd.h>
-#include <libc/errno.h>
-#include <libc/stdio.h>
+#include <libc/src/stddef.h>
+#include <libc/src/unistd.h>
+#include <libc/src/errno.h>
+#include <libc/src/stdio.h>
 
 #define PAGE_4K_SHIFT 12
 #define PAGE_2M_SHIFT 21

+ 0 - 0
user/libs/libc/math.h → user/libs/libc/src/math.h


+ 0 - 0
user/libs/libc/math/Makefile → user/libs/libc/src/math/Makefile


+ 2 - 3
user/libs/libc/math/fabs.c → user/libs/libc/src/math/fabs.c

@@ -1,7 +1,6 @@
-#include <libc/math.h>
-#include <libc/sys/types.h>
+#include <libc/src/math.h>
+#include <libc/src/sys/types.h>
 #include "libm.h"
-
 double fabs(double x)
 {
     union

+ 1 - 1
user/libs/libc/math/libm.h → user/libs/libc/src/math/libm.h

@@ -1,5 +1,5 @@
 #pragma once
-#include <libc/sys/types.h>
+#include <libc/src/sys/types.h>
 
 // ===== 描述long double 的数据比特结构
 #if __LDBL_MANT_DIG__ == 53 && __LDBL_MAX_EXP__ == 1024

+ 2 - 2
user/libs/libc/math/pow.c → user/libs/libc/src/math/pow.c

@@ -1,5 +1,5 @@
-#include <libc/math.h>
-#include <libc/stddef.h>
+#include <libc/src/math.h>
+#include <libc/src/stddef.h>
 
 int64_t pow(int64_t x, int y)
 {

+ 0 - 0
user/libs/libc/math/round.c → user/libs/libc/src/math/round.c


+ 4 - 4
user/libs/libc/printf.c → user/libs/libc/src/printf.c

@@ -1,9 +1,9 @@
 #include "printf.h"
 
-#include <libc/math.h>
-#include <libc/stdio.h>
-#include <libc/stdlib.h>
-#include <libc/string.h>
+#include <libc/src/math.h>
+#include <libc/src/stdio.h>
+#include <libc/src/stdlib.h>
+#include <libc/src/string.h>
 #include <libsystem/syscall.h>
 
 static char *write_num(char *str, uint64_t num, int base, int field_width, int precision, int flags);

+ 0 - 0
user/libs/libc/printf.h → user/libs/libc/src/printf.h


+ 1 - 1
user/libs/libc/stddef.h → user/libs/libc/src/stddef.h

@@ -1,6 +1,6 @@
 #pragma once
 
-#include <libc/sys/types.h>
+#include <libc/src/sys/types.h>
 
 #ifdef __cplusplus
    #define NULL 0

+ 1 - 1
user/libs/libc/stdio.h → user/libs/libc/src/stdio.h

@@ -1,6 +1,6 @@
 #pragma once
 
-#include <libc/sys/types.h>
+#include <libc/src/sys/types.h>
 #include <stdarg.h>
 
 // 字体颜色的宏定义

+ 3 - 3
user/libs/libc/stdlib.c → user/libs/libc/src/stdlib.c

@@ -1,6 +1,6 @@
-#include <libc/unistd.h>
-#include <libc/stdlib.h>
-#include <libc/ctype.h>
+#include <libc/src/unistd.h>
+#include <libc/src/stdlib.h>
+#include <libc/src/ctype.h>
 #include <libsystem/syscall.h>
 
 int abs(int i)

+ 1 - 1
user/libs/libc/stdlib.h → user/libs/libc/src/stdlib.h

@@ -1,5 +1,5 @@
 #pragma once
-#include <libc/sys/types.h>
+#include <libc/src/sys/types.h>
 
 /**
  * @brief 获取一块堆内存

+ 0 - 0
user/libs/libc/string.c → user/libs/libc/src/string.c


+ 1 - 1
user/libs/libc/string.h → user/libs/libc/src/string.h

@@ -1,6 +1,6 @@
 #pragma once
 
-#include <libc/sys/types.h>
+#include <libc/src/sys/types.h>
 
 void *memset(void *dst, unsigned char C, uint64_t size);
 /**

+ 0 - 0
user/libs/libc/sys/Makefile → user/libs/libc/src/sys/Makefile


+ 0 - 0
user/libs/libc/sys/stat.c → user/libs/libc/src/sys/stat.c


+ 1 - 1
user/libs/libc/sys/stat.h → user/libs/libc/src/sys/stat.h

@@ -1,5 +1,5 @@
 #pragma once
-#include <libc/sys/types.h>
+#include <libc/src/sys/types.h>
 
 /**
  * @brief 系统内存信息结构体(单位:字节)

+ 0 - 0
user/libs/libc/sys/types.h → user/libs/libc/src/sys/types.h


+ 0 - 0
user/libs/libc/sys/wait.c → user/libs/libc/src/sys/wait.c


+ 0 - 0
user/libs/libc/sys/wait.h → user/libs/libc/src/sys/wait.h


+ 0 - 0
user/libs/libc/sysdeps/x86_64/Makefile → user/libs/libc/src/sysdeps/x86_64/Makefile


+ 2 - 2
user/libs/libc/sysdeps/x86_64/elf/start.c → user/libs/libc/src/sysdeps/x86_64/elf/start.c

@@ -1,6 +1,6 @@
 
-#include <libc/stdio.h>
-#include <libc/stdlib.h>
+#include <libc/src/stdio.h>
+#include <libc/src/stdlib.h>
 
 extern int main(int, char **);
 

+ 0 - 0
user/libs/libc/time.c → user/libs/libc/src/time.c


+ 0 - 0
user/libs/libc/time.h → user/libs/libc/src/time.h


+ 6 - 6
user/libs/libc/unistd.c → user/libs/libc/src/unistd.c

@@ -1,10 +1,10 @@
-#include <libc/unistd.h>
+#include <libc/src/unistd.h>
 #include <libsystem/syscall.h>
-#include <libc/errno.h>
-#include <libc/stdio.h>
-#include <libc/stddef.h>
-#include <libc/string.h>
-#include <libc/fcntl.h>
+#include <libc/src/errno.h>
+#include <libc/src/stdio.h>
+#include <libc/src/stddef.h>
+#include <libc/src/string.h>
+#include <libc/src/fcntl.h>
 
 /**
  * @brief 关闭文件接口

+ 1 - 1
user/libs/libc/unistd.h → user/libs/libc/src/unistd.h

@@ -1,6 +1,6 @@
 #pragma once
 #include <stdint.h>
-#include <libc/sys/types.h>
+#include <libc/src/sys/types.h>
 
 /**
  * @brief 关闭文件接口

+ 15 - 0
user/libs/libc/src/x86_64-unknown-none.json

@@ -0,0 +1,15 @@
+{
+  "llvm-target": "x86_64-unknown-none",
+  "data-layout": "e-m:e-i64:64-f80:128-n8:16:32:64-S128",
+  "arch": "x86_64",
+  "target-endian": "little",
+  "target-pointer-width": "64",
+  "target-c-int-width": "32",
+  "os": "none",
+  "linker": "rust-lld",
+  "linker-flavor": "ld.lld",
+  "executables": true,
+  "features": "-mmx,-sse,+soft-float",
+  "disable-redzone": true,
+  "panic-strategy": "abort"
+}

+ 2 - 2
user/libs/libsystem/syscall.c

@@ -1,6 +1,6 @@
 #include "syscall.h"
-#include <libc/stdio.h>
-#include <libc/errno.h>
+#include <libc/src/stdio.h>
+#include <libc/src/errno.h>
 long syscall_invoke(uint64_t syscall_id, uint64_t arg0, uint64_t arg1, uint64_t arg2, uint64_t arg3, uint64_t arg4, uint64_t arg5, uint64_t arg6, uint64_t arg7)
 {
     uint64_t __err_code;