From f5e48e94a2f4d4bbd6e5628c7f2afafc6dbcc459 Mon Sep 17 00:00:00 2001 From: Ian Moffett Date: Thu, 7 Mar 2024 17:28:52 -0500 Subject: build: Build mlibc + add distclean target Signed-off-by: Ian Moffett --- lib/mlibc/sysdeps/linux/riscv64/arch-syscall.cpp | 117 --------- lib/mlibc/sysdeps/linux/riscv64/cp_syscall.S | 30 --- lib/mlibc/sysdeps/linux/riscv64/crt-src/Scrt1.S | 18 -- lib/mlibc/sysdeps/linux/riscv64/crt-src/crt1.S | 15 -- lib/mlibc/sysdeps/linux/riscv64/crt-src/crti.S | 11 - lib/mlibc/sysdeps/linux/riscv64/crt-src/crtn.S | 7 - lib/mlibc/sysdeps/linux/riscv64/signals.S | 12 - lib/mlibc/sysdeps/linux/riscv64/syscallnos.h | 314 ----------------------- lib/mlibc/sysdeps/linux/riscv64/thread_entry.S | 29 --- 9 files changed, 553 deletions(-) delete mode 100644 lib/mlibc/sysdeps/linux/riscv64/arch-syscall.cpp delete mode 100644 lib/mlibc/sysdeps/linux/riscv64/cp_syscall.S delete mode 100644 lib/mlibc/sysdeps/linux/riscv64/crt-src/Scrt1.S delete mode 100644 lib/mlibc/sysdeps/linux/riscv64/crt-src/crt1.S delete mode 100644 lib/mlibc/sysdeps/linux/riscv64/crt-src/crti.S delete mode 100644 lib/mlibc/sysdeps/linux/riscv64/crt-src/crtn.S delete mode 100644 lib/mlibc/sysdeps/linux/riscv64/signals.S delete mode 100644 lib/mlibc/sysdeps/linux/riscv64/syscallnos.h delete mode 100644 lib/mlibc/sysdeps/linux/riscv64/thread_entry.S (limited to 'lib/mlibc/sysdeps/linux/riscv64') diff --git a/lib/mlibc/sysdeps/linux/riscv64/arch-syscall.cpp b/lib/mlibc/sysdeps/linux/riscv64/arch-syscall.cpp deleted file mode 100644 index 18ac6b0..0000000 --- a/lib/mlibc/sysdeps/linux/riscv64/arch-syscall.cpp +++ /dev/null @@ -1,117 +0,0 @@ -#include -#include - -using sc_word_t = __sc_word_t; - -sc_word_t __do_syscall0(long sc) { - register int sc_reg asm("a7") = sc; - register sc_word_t ret asm("a0"); - asm volatile ("ecall" : "=r"(ret) : "r"(sc_reg) : "memory", "a1"); - return ret; -} - -sc_word_t __do_syscall1(long sc, - sc_word_t arg1) { - register int sc_reg asm("a7") = sc; - register sc_word_t arg1_reg asm("a0") = arg1; - register sc_word_t ret asm("a0"); - asm volatile ("ecall" : "=r"(ret) : - "r"(sc_reg), - "r"(arg1_reg) - : "memory", "a1"); - return ret; -} - -sc_word_t __do_syscall2(long sc, - sc_word_t arg1, sc_word_t arg2) { - register int sc_reg asm("a7") = sc; - register sc_word_t arg1_reg asm("a0") = arg1; - register sc_word_t arg2_reg asm("a1") = arg2; - register sc_word_t ret asm("a0"); - asm volatile ("ecall" : "=r"(ret) : - "r"(sc_reg), - "r"(arg1_reg), - "r"(arg2_reg) - : "memory"); - return ret; -} - -sc_word_t __do_syscall3(long sc, - sc_word_t arg1, sc_word_t arg2, sc_word_t arg3) { - register int sc_reg asm("a7") = sc; - register sc_word_t arg1_reg asm("a0") = arg1; - register sc_word_t arg2_reg asm("a1") = arg2; - register sc_word_t arg3_reg asm("a2") = arg3; - register sc_word_t ret asm("a0"); - asm volatile ("ecall" : "=r"(ret) : - "r"(sc_reg), - "r"(arg1_reg), - "r"(arg2_reg), - "r"(arg3_reg) - : "memory"); - return ret; -} - -sc_word_t __do_syscall4(long sc, - sc_word_t arg1, sc_word_t arg2, sc_word_t arg3, - sc_word_t arg4) { - register int sc_reg asm("a7") = sc; - register sc_word_t arg1_reg asm("a0") = arg1; - register sc_word_t arg2_reg asm("a1") = arg2; - register sc_word_t arg3_reg asm("a2") = arg3; - register sc_word_t arg4_reg asm("a3") = arg4; - register sc_word_t ret asm("a0"); - asm volatile ("ecall" : "=r"(ret) : - "r"(sc_reg), - "r"(arg1_reg), - "r"(arg2_reg), - "r"(arg3_reg), - "r"(arg4_reg) - : "memory"); - return ret; -} - -sc_word_t __do_syscall5(long sc, - sc_word_t arg1, sc_word_t arg2, sc_word_t arg3, - sc_word_t arg4, sc_word_t arg5) { - register int sc_reg asm("a7") = sc; - register sc_word_t arg1_reg asm("a0") = arg1; - register sc_word_t arg2_reg asm("a1") = arg2; - register sc_word_t arg3_reg asm("a2") = arg3; - register sc_word_t arg4_reg asm("a3") = arg4; - register sc_word_t arg5_reg asm("a4") = arg5; - register sc_word_t ret asm("a0"); - asm volatile ("ecall" : "=r"(ret) : - "r"(sc_reg), - "r"(arg1_reg), - "r"(arg2_reg), - "r"(arg3_reg), - "r"(arg4_reg), - "r"(arg5_reg) - : "memory"); - return ret; -} - -sc_word_t __do_syscall6(long sc, - sc_word_t arg1, sc_word_t arg2, sc_word_t arg3, - sc_word_t arg4, sc_word_t arg5, sc_word_t arg6) { - register int sc_reg asm("a7") = sc; - register sc_word_t arg1_reg asm("a0") = arg1; - register sc_word_t arg2_reg asm("a1") = arg2; - register sc_word_t arg3_reg asm("a2") = arg3; - register sc_word_t arg4_reg asm("a3") = arg4; - register sc_word_t arg5_reg asm("a4") = arg5; - register sc_word_t arg6_reg asm("a5") = arg6; - register sc_word_t ret asm("a0"); - asm volatile ("ecall" : "=r"(ret) : - "r"(sc_reg), - "r"(arg1_reg), - "r"(arg2_reg), - "r"(arg3_reg), - "r"(arg4_reg), - "r"(arg5_reg), - "r"(arg6_reg) - : "memory" - ); - return ret; -} diff --git a/lib/mlibc/sysdeps/linux/riscv64/cp_syscall.S b/lib/mlibc/sysdeps/linux/riscv64/cp_syscall.S deleted file mode 100644 index 8d3175d..0000000 --- a/lib/mlibc/sysdeps/linux/riscv64/cp_syscall.S +++ /dev/null @@ -1,30 +0,0 @@ -.section .text -.global __mlibc_do_asm_cp_syscall -.global __mlibc_syscall_begin -.global __mlibc_syscall_end -.type __mlibc_do_asm_cp_syscall, "function" -__mlibc_do_asm_cp_syscall: - sd a7, -8(sp) - mv a7, a0 - mv a0, a1 - mv a1, a2 - mv a2, a3 - mv a3, a4 - mv a4, a5 - mv a5, a6 - ld a6, -8(sp) // a7 - lw t0, -96(tp) // Tcb::cancelBits. See asserts in tcb.hpp. -__mlibc_syscall_begin: - // tcbCancelEnableBit && tcbCancelTriggerBit - li t1, (1 << 0) | (1 << 2) - and t0, t0, t1 - beq t0, t1, cancel - ecall -__mlibc_syscall_end: - ret - -cancel: - call __mlibc_do_cancel - unimp -.section .note.GNU-stack,"",%progbits - diff --git a/lib/mlibc/sysdeps/linux/riscv64/crt-src/Scrt1.S b/lib/mlibc/sysdeps/linux/riscv64/crt-src/Scrt1.S deleted file mode 100644 index 9ee8625..0000000 --- a/lib/mlibc/sysdeps/linux/riscv64/crt-src/Scrt1.S +++ /dev/null @@ -1,18 +0,0 @@ -.section .text -.global _start -_start: - .weak __global_pointer$ - .hidden __global_pointer$ - .option push - .option norelax - lla gp, __global_pointer$ - .option pop - - mv a0, sp - la a1, main - call __mlibc_entry@plt - unimp - - -.section .note.GNU-stack,"",%progbits - diff --git a/lib/mlibc/sysdeps/linux/riscv64/crt-src/crt1.S b/lib/mlibc/sysdeps/linux/riscv64/crt-src/crt1.S deleted file mode 100644 index 16c79d6..0000000 --- a/lib/mlibc/sysdeps/linux/riscv64/crt-src/crt1.S +++ /dev/null @@ -1,15 +0,0 @@ -.section .text -.global _start -_start: - .weak __global_pointer$ - .hidden __global_pointer$ - .option push - .option norelax - lla gp, __global_pointer$ - .option pop - - mv a0, sp - la a1, main - call __mlibc_entry -.section .note.GNU-stack,"",%progbits - diff --git a/lib/mlibc/sysdeps/linux/riscv64/crt-src/crti.S b/lib/mlibc/sysdeps/linux/riscv64/crt-src/crti.S deleted file mode 100644 index 69f23ea..0000000 --- a/lib/mlibc/sysdeps/linux/riscv64/crt-src/crti.S +++ /dev/null @@ -1,11 +0,0 @@ -.section .init -.global _init -_init: - unimp - -.section .fini -.global _fini -_fini: - unimp -.section .note.GNU-stack,"",%progbits - diff --git a/lib/mlibc/sysdeps/linux/riscv64/crt-src/crtn.S b/lib/mlibc/sysdeps/linux/riscv64/crt-src/crtn.S deleted file mode 100644 index 525efd6..0000000 --- a/lib/mlibc/sysdeps/linux/riscv64/crt-src/crtn.S +++ /dev/null @@ -1,7 +0,0 @@ -.section .init - unimp - -.section .fini - unimp -.section .note.GNU-stack,"",%progbits - diff --git a/lib/mlibc/sysdeps/linux/riscv64/signals.S b/lib/mlibc/sysdeps/linux/riscv64/signals.S deleted file mode 100644 index 7769043..0000000 --- a/lib/mlibc/sysdeps/linux/riscv64/signals.S +++ /dev/null @@ -1,12 +0,0 @@ -.section .text - -.global __mlibc_signal_restore -.type __mlibc_signal_restore, @function -__mlibc_signal_restore: -.global __mlibc_signal_restore_rt -.type __mlibc_signal_restore_rt, @function -__mlibc_signal_restore_rt: - li a7, 139 - ecall -.section .note.GNU-stack,"",%progbits - diff --git a/lib/mlibc/sysdeps/linux/riscv64/syscallnos.h b/lib/mlibc/sysdeps/linux/riscv64/syscallnos.h deleted file mode 100644 index a5a11bb..0000000 --- a/lib/mlibc/sysdeps/linux/riscv64/syscallnos.h +++ /dev/null @@ -1,314 +0,0 @@ -#ifndef __MLIBC_SYSCALLNOS_h -#define __MLIBC_SYSCALLNOS_h -/* This file is autogenerated. Don't bother. */ -/* Generator script: sysdeps/linux/update-syscall-list.py. */ -#define __NR_io_setup 0 -#define __NR_io_destroy 1 -#define __NR_io_submit 2 -#define __NR_io_cancel 3 -#define __NR_io_getevents 4 -#define __NR_setxattr 5 -#define __NR_lsetxattr 6 -#define __NR_fsetxattr 7 -#define __NR_getxattr 8 -#define __NR_lgetxattr 9 -#define __NR_fgetxattr 10 -#define __NR_listxattr 11 -#define __NR_llistxattr 12 -#define __NR_flistxattr 13 -#define __NR_removexattr 14 -#define __NR_lremovexattr 15 -#define __NR_fremovexattr 16 -#define __NR_getcwd 17 -#define __NR_lookup_dcookie 18 -#define __NR_eventfd2 19 -#define __NR_epoll_create1 20 -#define __NR_epoll_ctl 21 -#define __NR_epoll_pwait 22 -#define __NR_dup 23 -#define __NR_dup3 24 -#define __NR_fcntl 25 -#define __NR_inotify_init1 26 -#define __NR_inotify_add_watch 27 -#define __NR_inotify_rm_watch 28 -#define __NR_ioctl 29 -#define __NR_ioprio_set 30 -#define __NR_ioprio_get 31 -#define __NR_flock 32 -#define __NR_mknodat 33 -#define __NR_mkdirat 34 -#define __NR_unlinkat 35 -#define __NR_symlinkat 36 -#define __NR_linkat 37 -#define __NR_umount2 39 -#define __NR_mount 40 -#define __NR_pivot_root 41 -#define __NR_nfsservctl 42 -#define __NR_statfs 43 -#define __NR_fstatfs 44 -#define __NR_truncate 45 -#define __NR_ftruncate 46 -#define __NR_fallocate 47 -#define __NR_faccessat 48 -#define __NR_chdir 49 -#define __NR_fchdir 50 -#define __NR_chroot 51 -#define __NR_fchmod 52 -#define __NR_fchmodat 53 -#define __NR_fchownat 54 -#define __NR_fchown 55 -#define __NR_openat 56 -#define __NR_close 57 -#define __NR_vhangup 58 -#define __NR_pipe2 59 -#define __NR_quotactl 60 -#define __NR_getdents64 61 -#define __NR_lseek 62 -#define __NR_read 63 -#define __NR_write 64 -#define __NR_readv 65 -#define __NR_writev 66 -#define __NR_pread64 67 -#define __NR_pwrite64 68 -#define __NR_preadv 69 -#define __NR_pwritev 70 -#define __NR_sendfile 71 -#define __NR_pselect6 72 -#define __NR_ppoll 73 -#define __NR_signalfd4 74 -#define __NR_vmsplice 75 -#define __NR_splice 76 -#define __NR_tee 77 -#define __NR_readlinkat 78 -#define __NR_newfstatat 79 -#define __NR_fstat 80 -#define __NR_sync 81 -#define __NR_fsync 82 -#define __NR_fdatasync 83 -#define __NR_sync_file_range 84 -#define __NR_timerfd_create 85 -#define __NR_timerfd_settime 86 -#define __NR_timerfd_gettime 87 -#define __NR_utimensat 88 -#define __NR_acct 89 -#define __NR_capget 90 -#define __NR_capset 91 -#define __NR_personality 92 -#define __NR_exit 93 -#define __NR_exit_group 94 -#define __NR_waitid 95 -#define __NR_set_tid_address 96 -#define __NR_unshare 97 -#define __NR_futex 98 -#define __NR_set_robust_list 99 -#define __NR_get_robust_list 100 -#define __NR_nanosleep 101 -#define __NR_getitimer 102 -#define __NR_setitimer 103 -#define __NR_kexec_load 104 -#define __NR_init_module 105 -#define __NR_delete_module 106 -#define __NR_timer_create 107 -#define __NR_timer_gettime 108 -#define __NR_timer_getoverrun 109 -#define __NR_timer_settime 110 -#define __NR_timer_delete 111 -#define __NR_clock_settime 112 -#define __NR_clock_gettime 113 -#define __NR_clock_getres 114 -#define __NR_clock_nanosleep 115 -#define __NR_syslog 116 -#define __NR_ptrace 117 -#define __NR_sched_setparam 118 -#define __NR_sched_setscheduler 119 -#define __NR_sched_getscheduler 120 -#define __NR_sched_getparam 121 -#define __NR_sched_setaffinity 122 -#define __NR_sched_getaffinity 123 -#define __NR_sched_yield 124 -#define __NR_sched_get_priority_max 125 -#define __NR_sched_get_priority_min 126 -#define __NR_sched_rr_get_interval 127 -#define __NR_restart_syscall 128 -#define __NR_kill 129 -#define __NR_tkill 130 -#define __NR_tgkill 131 -#define __NR_sigaltstack 132 -#define __NR_rt_sigsuspend 133 -#define __NR_rt_sigaction 134 -#define __NR_rt_sigprocmask 135 -#define __NR_rt_sigpending 136 -#define __NR_rt_sigtimedwait 137 -#define __NR_rt_sigqueueinfo 138 -#define __NR_rt_sigreturn 139 -#define __NR_setpriority 140 -#define __NR_getpriority 141 -#define __NR_reboot 142 -#define __NR_setregid 143 -#define __NR_setgid 144 -#define __NR_setreuid 145 -#define __NR_setuid 146 -#define __NR_setresuid 147 -#define __NR_getresuid 148 -#define __NR_setresgid 149 -#define __NR_getresgid 150 -#define __NR_setfsuid 151 -#define __NR_setfsgid 152 -#define __NR_times 153 -#define __NR_setpgid 154 -#define __NR_getpgid 155 -#define __NR_getsid 156 -#define __NR_setsid 157 -#define __NR_getgroups 158 -#define __NR_setgroups 159 -#define __NR_uname 160 -#define __NR_sethostname 161 -#define __NR_setdomainname 162 -#define __NR_getrlimit 163 -#define __NR_setrlimit 164 -#define __NR_getrusage 165 -#define __NR_umask 166 -#define __NR_prctl 167 -#define __NR_getcpu 168 -#define __NR_gettimeofday 169 -#define __NR_settimeofday 170 -#define __NR_adjtimex 171 -#define __NR_getpid 172 -#define __NR_getppid 173 -#define __NR_getuid 174 -#define __NR_geteuid 175 -#define __NR_getgid 176 -#define __NR_getegid 177 -#define __NR_gettid 178 -#define __NR_sysinfo 179 -#define __NR_mq_open 180 -#define __NR_mq_unlink 181 -#define __NR_mq_timedsend 182 -#define __NR_mq_timedreceive 183 -#define __NR_mq_notify 184 -#define __NR_mq_getsetattr 185 -#define __NR_msgget 186 -#define __NR_msgctl 187 -#define __NR_msgrcv 188 -#define __NR_msgsnd 189 -#define __NR_semget 190 -#define __NR_semctl 191 -#define __NR_semtimedop 192 -#define __NR_semop 193 -#define __NR_shmget 194 -#define __NR_shmctl 195 -#define __NR_shmat 196 -#define __NR_shmdt 197 -#define __NR_socket 198 -#define __NR_socketpair 199 -#define __NR_bind 200 -#define __NR_listen 201 -#define __NR_accept 202 -#define __NR_connect 203 -#define __NR_getsockname 204 -#define __NR_getpeername 205 -#define __NR_sendto 206 -#define __NR_recvfrom 207 -#define __NR_setsockopt 208 -#define __NR_getsockopt 209 -#define __NR_shutdown 210 -#define __NR_sendmsg 211 -#define __NR_recvmsg 212 -#define __NR_readahead 213 -#define __NR_brk 214 -#define __NR_munmap 215 -#define __NR_mremap 216 -#define __NR_add_key 217 -#define __NR_request_key 218 -#define __NR_keyctl 219 -#define __NR_clone 220 -#define __NR_execve 221 -#define __NR_mmap 222 -#define __NR_fadvise64 223 -#define __NR_swapon 224 -#define __NR_swapoff 225 -#define __NR_mprotect 226 -#define __NR_msync 227 -#define __NR_mlock 228 -#define __NR_munlock 229 -#define __NR_mlockall 230 -#define __NR_munlockall 231 -#define __NR_mincore 232 -#define __NR_madvise 233 -#define __NR_remap_file_pages 234 -#define __NR_mbind 235 -#define __NR_get_mempolicy 236 -#define __NR_set_mempolicy 237 -#define __NR_migrate_pages 238 -#define __NR_move_pages 239 -#define __NR_rt_tgsigqueueinfo 240 -#define __NR_perf_event_open 241 -#define __NR_accept4 242 -#define __NR_recvmmsg 243 -#define __NR_arch_specific_syscall 244 -#define __NR_riscv_hwprobe 258 -#define __NR_riscv_flush_icache 259 -#define __NR_wait4 260 -#define __NR_prlimit64 261 -#define __NR_fanotify_init 262 -#define __NR_fanotify_mark 263 -#define __NR_name_to_handle_at 264 -#define __NR_open_by_handle_at 265 -#define __NR_clock_adjtime 266 -#define __NR_syncfs 267 -#define __NR_setns 268 -#define __NR_sendmmsg 269 -#define __NR_process_vm_readv 270 -#define __NR_process_vm_writev 271 -#define __NR_kcmp 272 -#define __NR_finit_module 273 -#define __NR_sched_setattr 274 -#define __NR_sched_getattr 275 -#define __NR_renameat2 276 -#define __NR_seccomp 277 -#define __NR_getrandom 278 -#define __NR_memfd_create 279 -#define __NR_bpf 280 -#define __NR_execveat 281 -#define __NR_userfaultfd 282 -#define __NR_membarrier 283 -#define __NR_mlock2 284 -#define __NR_copy_file_range 285 -#define __NR_preadv2 286 -#define __NR_pwritev2 287 -#define __NR_pkey_mprotect 288 -#define __NR_pkey_alloc 289 -#define __NR_pkey_free 290 -#define __NR_statx 291 -#define __NR_io_pgetevents 292 -#define __NR_rseq 293 -#define __NR_kexec_file_load 294 -#define __NR_pidfd_send_signal 424 -#define __NR_io_uring_setup 425 -#define __NR_io_uring_enter 426 -#define __NR_io_uring_register 427 -#define __NR_open_tree 428 -#define __NR_move_mount 429 -#define __NR_fsopen 430 -#define __NR_fsconfig 431 -#define __NR_fsmount 432 -#define __NR_fspick 433 -#define __NR_pidfd_open 434 -#define __NR_clone3 435 -#define __NR_close_range 436 -#define __NR_openat2 437 -#define __NR_pidfd_getfd 438 -#define __NR_faccessat2 439 -#define __NR_process_madvise 440 -#define __NR_epoll_pwait2 441 -#define __NR_mount_setattr 442 -#define __NR_quotactl_fd 443 -#define __NR_landlock_create_ruleset 444 -#define __NR_landlock_add_rule 445 -#define __NR_landlock_restrict_self 446 -#define __NR_memfd_secret 447 -#define __NR_process_mrelease 448 -#define __NR_futex_waitv 449 -#define __NR_set_mempolicy_home_node 450 -#define __NR_syscalls 451 -#endif /* __MLIBC_SYSCALLNOS_h */ diff --git a/lib/mlibc/sysdeps/linux/riscv64/thread_entry.S b/lib/mlibc/sysdeps/linux/riscv64/thread_entry.S deleted file mode 100644 index fe170fa..0000000 --- a/lib/mlibc/sysdeps/linux/riscv64/thread_entry.S +++ /dev/null @@ -1,29 +0,0 @@ -.section .text -.global __mlibc_spawn_thread -.type __mlibc_spawn_thread, "function" -__mlibc_spawn_thread: - // __mlibc_spawn_thread(flags, stack, pid_out, child_tid, tls) - // a0, a1, a2, a3, a4 - // syscall(NR_clone, flags, stack, ptid, tls, ctid) - // a7, a0, a1, a2, a3, a4 - - // Swap a3 <-> a4 - mv a5, a4 - mv a4, a3 - mv a3, a5 - - li a7, 220 // NR_clone - ecall - bnez a0, .parent - - ld a0, 0(sp) - ld a1, 8(sp) - addi sp, sp, 8 - andi sp, sp, -16 - call __mlibc_enter_thread - unimp - -.parent: - ret -.section .note.GNU-stack,"",%progbits - -- cgit v1.2.3