From ac9d47fa16e4f292fb1a5e3808f7153c5ccf16c2 Mon Sep 17 00:00:00 2001 From: Marvin Friedrich Date: Fri, 14 Aug 2026 21:31:01 +0200 Subject: [PATCH] spdx --- include/common/compiler.h | 2 ++ include/common/elf.h | 2 ++ include/common/utils.h | 2 ++ include/zinnia/archctl.h | 2 ++ include/zinnia/channel.h | 2 ++ include/zinnia/futex.h | 2 ++ include/zinnia/handle.h | 2 ++ include/zinnia/mem.h | 2 ++ include/zinnia/namespace.h | 2 ++ include/zinnia/random.h | 2 ++ include/zinnia/rights.h | 2 ++ include/zinnia/status.h | 2 ++ include/zinnia/system.h | 2 ++ include/zinnia/thread.h | 2 ++ kernel/include/kernel/bits/usercopy.h | 7 +++++++ kernel/include/kernel/namespace.h | 4 ++-- kernel/include/kernel/syscall_numbers.h | 4 +++- kernel/include/kernel/usercopy.h | 4 ---- kernel/mem/init.c | 2 ++ kernel/mem/mmio.c | 2 ++ kernel/mem/pmap.c | 2 ++ kernel/mem/pmm.c | 2 ++ kernel/mem/slab.c | 2 ++ kernel/mem/usercopy.c | 3 +++ kernel/mem/vas.c | 2 ++ kernel/mem/virt.c | 2 ++ kernel/mem/vmo.c | 2 ++ kernel/meson.build | 2 +- kernel/syscalls/archctl.c | 2 ++ kernel/syscalls/channel.c | 2 ++ kernel/syscalls/dispatch.c | 2 ++ kernel/syscalls/futex.c | 2 ++ kernel/syscalls/handle.c | 2 ++ kernel/syscalls/random.c | 2 ++ kernel/syscalls/system.c | 2 ++ kernel/syscalls/thread.c | 21 +++++++++++---------- kernel/syscalls/vas.c | 2 ++ kernel/syscalls/vmo.c | 2 ++ kernel/vdso/archctl.c | 2 ++ kernel/vdso/channel.c | 2 ++ kernel/vdso/data.c | 4 ++-- kernel/vdso/futex.c | 2 ++ kernel/vdso/handle.c | 2 ++ kernel/vdso/mem.c | 2 ++ kernel/vdso/meson.build | 8 +++++++- kernel/vdso/namespace.c | 2 ++ kernel/vdso/random.c | 2 ++ kernel/vdso/status.c | 2 ++ kernel/vdso/system.c | 2 ++ kernel/vdso/thread.c | 2 ++ kernel/vdso/vdso.ld | 16 +++++++++------- lib/device/meson.build | 7 +++++++ lib/freestanding/entry.c | 1 + lib/freestanding/meson.build | 8 ++++++++ lib/{ => freestanding}/vdso.c | 0 lib/meson.build | 10 +++------- servers/devd/meson.build | 2 +- servers/initd/meson.build | 2 +- 58 files changed, 148 insertions(+), 37 deletions(-) create mode 100644 kernel/include/kernel/bits/usercopy.h create mode 100644 lib/device/meson.build create mode 100644 lib/freestanding/entry.c create mode 100644 lib/freestanding/meson.build rename lib/{ => freestanding}/vdso.c (100%) diff --git a/include/common/compiler.h b/include/common/compiler.h index 942aed2..65831fa 100644 --- a/include/common/compiler.h +++ b/include/common/compiler.h @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #pragma once // Attributes that affect data layout. diff --git a/include/common/elf.h b/include/common/elf.h index 1b0235c..769d070 100644 --- a/include/common/elf.h +++ b/include/common/elf.h @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #pragma once #include diff --git a/include/common/utils.h b/include/common/utils.h index d1c1364..a9358fd 100644 --- a/include/common/utils.h +++ b/include/common/utils.h @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #pragma once #define ARRAY_SIZE(array) (sizeof(array) / sizeof(array[0])) diff --git a/include/zinnia/archctl.h b/include/zinnia/archctl.h index a00395e..ee4f4e0 100644 --- a/include/zinnia/archctl.h +++ b/include/zinnia/archctl.h @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #ifndef ZINNIA_ARCHCTL_H #define ZINNIA_ARCHCTL_H diff --git a/include/zinnia/channel.h b/include/zinnia/channel.h index c4d7056..1d3012f 100644 --- a/include/zinnia/channel.h +++ b/include/zinnia/channel.h @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #ifndef ZINNIA_CHANNEL_H #define ZINNIA_CHANNEL_H diff --git a/include/zinnia/futex.h b/include/zinnia/futex.h index 447c3f8..6f1a2b3 100644 --- a/include/zinnia/futex.h +++ b/include/zinnia/futex.h @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #ifndef ZINNIA_FUTEX_H #define ZINNIA_FUTEX_H diff --git a/include/zinnia/handle.h b/include/zinnia/handle.h index e7ffe5b..55413fe 100644 --- a/include/zinnia/handle.h +++ b/include/zinnia/handle.h @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #ifndef ZINNIA_HANDLE_H #define ZINNIA_HANDLE_H diff --git a/include/zinnia/mem.h b/include/zinnia/mem.h index e102778..51aadfa 100644 --- a/include/zinnia/mem.h +++ b/include/zinnia/mem.h @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #ifndef ZINNIA_MEM_H #define ZINNIA_MEM_H diff --git a/include/zinnia/namespace.h b/include/zinnia/namespace.h index 473998b..8b4d46e 100644 --- a/include/zinnia/namespace.h +++ b/include/zinnia/namespace.h @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #ifndef ZINNIA_NAMESPACE_H #define ZINNIA_NAMESPACE_H diff --git a/include/zinnia/random.h b/include/zinnia/random.h index 0addbe2..0baed8f 100644 --- a/include/zinnia/random.h +++ b/include/zinnia/random.h @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #ifndef ZINNIA_RANDOM_H #define ZINNIA_RANDOM_H diff --git a/include/zinnia/rights.h b/include/zinnia/rights.h index f1833e4..0103d5b 100644 --- a/include/zinnia/rights.h +++ b/include/zinnia/rights.h @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #ifndef ZINNIA_RIGHTS_H #define ZINNIA_RIGHTS_H diff --git a/include/zinnia/status.h b/include/zinnia/status.h index 77cf8d6..5290a47 100644 --- a/include/zinnia/status.h +++ b/include/zinnia/status.h @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #ifndef ZINNIA_STATUS_H #define ZINNIA_STATUS_H diff --git a/include/zinnia/system.h b/include/zinnia/system.h index 4dc23f3..5b7d883 100644 --- a/include/zinnia/system.h +++ b/include/zinnia/system.h @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #ifndef ZINNIA_SYSTEM_H #define ZINNIA_SYSTEM_H diff --git a/include/zinnia/thread.h b/include/zinnia/thread.h index 867ef8e..c1fbb0a 100644 --- a/include/zinnia/thread.h +++ b/include/zinnia/thread.h @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #ifndef ZINNIA_THREAD_H #define ZINNIA_THREAD_H diff --git a/kernel/include/kernel/bits/usercopy.h b/kernel/include/kernel/bits/usercopy.h new file mode 100644 index 0000000..e1f5ecd --- /dev/null +++ b/kernel/include/kernel/bits/usercopy.h @@ -0,0 +1,7 @@ +#pragma once + +#include + +bool arch_usercopy_read(void* dst, const __user void* src, size_t len, struct usercopy_region** region); +bool arch_usercopy_write(__user void* dst, const void* src, size_t len, struct usercopy_region** region); +bool arch_usercopy_strlen(const __user char* str, size_t max, size_t* len, struct usercopy_region** region); diff --git a/kernel/include/kernel/namespace.h b/kernel/include/kernel/namespace.h index 19c985e..679e178 100644 --- a/kernel/include/kernel/namespace.h +++ b/kernel/include/kernel/namespace.h @@ -51,8 +51,8 @@ zn_status_t namespace_get(struct namespace* namespace, zn_handle_t handle, struc zn_status_t namespace_del_desc(struct namespace* namespace, zn_handle_t handle); // Clones a descriptor with optionally restricted rights. -// If cloned_rights has ZN_RIGHTS_IDENTICAL set, the clone keeps the original rights. -// Otherwise, cloned_rights must be a subset of the original descriptor's rights. +// If `cloned_rights` contains ZN_RIGHTS_IDENTICAL, the clone keeps the original rights. +// Otherwise, `cloned_rights` must be a subset of the original descriptor's rights. zn_status_t namespace_clone_desc( struct namespace* ns, struct namespace_desc* desc, diff --git a/kernel/include/kernel/syscall_numbers.h b/kernel/include/kernel/syscall_numbers.h index c10a138..14d2bdf 100644 --- a/kernel/include/kernel/syscall_numbers.h +++ b/kernel/include/kernel/syscall_numbers.h @@ -1,6 +1,8 @@ #pragma once -typedef enum { +#include + +typedef enum : uint32_t { ZN_SYSCALL_LOG, ZN_SYSCALL_ARCHCTL, ZN_SYSCALL_PAGE_SIZE, diff --git a/kernel/include/kernel/usercopy.h b/kernel/include/kernel/usercopy.h index 4e9be4d..85f573f 100644 --- a/kernel/include/kernel/usercopy.h +++ b/kernel/include/kernel/usercopy.h @@ -18,7 +18,3 @@ bool usercopy_write(__user void* dst, const void* src, size_t len); // Performs a strlen() on a user string. bool usercopy_strlen(const __user char* str, size_t max, size_t* len); - -bool arch_usercopy_read(void* dst, const __user void* src, size_t len, struct usercopy_region** region); -bool arch_usercopy_write(__user void* dst, const void* src, size_t len, struct usercopy_region** region); -bool arch_usercopy_strlen(const __user char* str, size_t max, size_t* len, struct usercopy_region** region); diff --git a/kernel/mem/init.c b/kernel/mem/init.c index a45abd7..48335bb 100644 --- a/kernel/mem/init.c +++ b/kernel/mem/init.c @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #include #include #include diff --git a/kernel/mem/mmio.c b/kernel/mem/mmio.c index a81717f..7e41897 100644 --- a/kernel/mem/mmio.c +++ b/kernel/mem/mmio.c @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #include #include #include diff --git a/kernel/mem/pmap.c b/kernel/mem/pmap.c index 3f15b31..a8f82b6 100644 --- a/kernel/mem/pmap.c +++ b/kernel/mem/pmap.c @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #include #include #include diff --git a/kernel/mem/pmm.c b/kernel/mem/pmm.c index 81905cf..4b713ab 100644 --- a/kernel/mem/pmm.c +++ b/kernel/mem/pmm.c @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #include #include #include diff --git a/kernel/mem/slab.c b/kernel/mem/slab.c index 9dfc737..f82af10 100644 --- a/kernel/mem/slab.c +++ b/kernel/mem/slab.c @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #include #include #include diff --git a/kernel/mem/usercopy.c b/kernel/mem/usercopy.c index dcc7775..6d7ee21 100644 --- a/kernel/mem/usercopy.c +++ b/kernel/mem/usercopy.c @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT + +#include #include #include diff --git a/kernel/mem/vas.c b/kernel/mem/vas.c index d922e6b..083d62f 100644 --- a/kernel/mem/vas.c +++ b/kernel/mem/vas.c @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #include #include #include diff --git a/kernel/mem/virt.c b/kernel/mem/virt.c index 718393b..8f48e61 100644 --- a/kernel/mem/virt.c +++ b/kernel/mem/virt.c @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #include #include #include diff --git a/kernel/mem/vmo.c b/kernel/mem/vmo.c index 1694843..34f218f 100644 --- a/kernel/mem/vmo.c +++ b/kernel/mem/vmo.c @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #include #include #include diff --git a/kernel/meson.build b/kernel/meson.build index 945bfe7..658e528 100644 --- a/kernel/meson.build +++ b/kernel/meson.build @@ -47,10 +47,10 @@ executable( link_args: kernel_link_args, link_depends: [ kernel_lds, - vdso, ], sources: [ kernel_sources, uacpi_sources, + vdso, ], ) diff --git a/kernel/syscalls/archctl.c b/kernel/syscalls/archctl.c index e5eed43..43e1e66 100644 --- a/kernel/syscalls/archctl.c +++ b/kernel/syscalls/archctl.c @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #include #include diff --git a/kernel/syscalls/channel.c b/kernel/syscalls/channel.c index 1d42d47..f3838b5 100644 --- a/kernel/syscalls/channel.c +++ b/kernel/syscalls/channel.c @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #include #include #include diff --git a/kernel/syscalls/dispatch.c b/kernel/syscalls/dispatch.c index a12d8bf..fdc45a0 100644 --- a/kernel/syscalls/dispatch.c +++ b/kernel/syscalls/dispatch.c @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #include #include #include diff --git a/kernel/syscalls/futex.c b/kernel/syscalls/futex.c index f09ec7f..3e96d23 100644 --- a/kernel/syscalls/futex.c +++ b/kernel/syscalls/futex.c @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #include #include #include diff --git a/kernel/syscalls/handle.c b/kernel/syscalls/handle.c index 401778b..f41425d 100644 --- a/kernel/syscalls/handle.c +++ b/kernel/syscalls/handle.c @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #include #include #include diff --git a/kernel/syscalls/random.c b/kernel/syscalls/random.c index 09cce1b..ea168df 100644 --- a/kernel/syscalls/random.c +++ b/kernel/syscalls/random.c @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #include #include diff --git a/kernel/syscalls/system.c b/kernel/syscalls/system.c index d3451bb..89698db 100644 --- a/kernel/syscalls/system.c +++ b/kernel/syscalls/system.c @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #include #include #include diff --git a/kernel/syscalls/thread.c b/kernel/syscalls/thread.c index 0b82858..7fea436 100644 --- a/kernel/syscalls/thread.c +++ b/kernel/syscalls/thread.c @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #include #include #include @@ -14,11 +16,11 @@ #include zn_status_t syscall_thread_create(struct arch_context* ctx) { - zn_handle_t ns_handle = ctx->ARCH_CTX_A0; - __user const char* name = (__user const char*)ctx->ARCH_CTX_A1; - size_t name_len = ctx->ARCH_CTX_A2; - enum zn_thread_flags flags = ctx->ARCH_CTX_A3; - __user zn_handle_t* out = (__user zn_handle_t*)ctx->ARCH_CTX_A4; + zn_handle_t ns_handle = ctx->a0; + __user const char* name = (__user const char*)ctx->a1; + size_t name_len = ctx->a2; + enum zn_thread_flags flags = ctx->a3; + __user zn_handle_t* out = (__user zn_handle_t*)ctx->a4; struct task* current = percpu_get()->sched.current; // Resolve namespace. @@ -44,7 +46,6 @@ zn_status_t syscall_thread_create(struct arch_context* ctx) { return ZN_ERR_BAD_BUFFER; // Create the task sharing the caller's address space. - // Uses sched_to_user as a placeholder entry — the real IP/SP come from thread_start. struct task* new_task; zn_status_t status = task_create(task_name, current->space, ns, sched_to_user, 0, &new_task); if (status != ZN_OK) @@ -71,10 +72,10 @@ zn_status_t syscall_thread_create(struct arch_context* ctx) { } zn_status_t syscall_thread_start(struct arch_context* ctx) { - zn_handle_t thread_handle = ctx->ARCH_CTX_A0; - uintptr_t ip = ctx->ARCH_CTX_A1; - uintptr_t sp = ctx->ARCH_CTX_A2; - uintptr_t arg = ctx->ARCH_CTX_A3; + zn_handle_t thread_handle = ctx->a0; + uintptr_t ip = ctx->a1; + uintptr_t sp = ctx->a2; + uintptr_t arg = ctx->a3; struct task* current = percpu_get()->sched.current; struct sched_percpu* sched = &percpu_get()->sched; diff --git a/kernel/syscalls/vas.c b/kernel/syscalls/vas.c index d9c34fc..b3799c5 100644 --- a/kernel/syscalls/vas.c +++ b/kernel/syscalls/vas.c @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #include #include diff --git a/kernel/syscalls/vmo.c b/kernel/syscalls/vmo.c index d9c1597..d357dab 100644 --- a/kernel/syscalls/vmo.c +++ b/kernel/syscalls/vmo.c @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #include #include #include diff --git a/kernel/vdso/archctl.c b/kernel/vdso/archctl.c index a12ce28..8486fc2 100644 --- a/kernel/vdso/archctl.c +++ b/kernel/vdso/archctl.c @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #include #include diff --git a/kernel/vdso/channel.c b/kernel/vdso/channel.c index 8784275..81b7d70 100644 --- a/kernel/vdso/channel.c +++ b/kernel/vdso/channel.c @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #include #include diff --git a/kernel/vdso/data.c b/kernel/vdso/data.c index d665942..d681d2a 100644 --- a/kernel/vdso/data.c +++ b/kernel/vdso/data.c @@ -1,7 +1,7 @@ +// SPDX-License-Identifier: MIT + #include #include [[__used, __section(".vdso_data")]] const volatile struct vdso_kernel_data vdso_data = {0}; - -static_assert(sizeof(vdso_data) <= 0x1000); diff --git a/kernel/vdso/futex.c b/kernel/vdso/futex.c index 6e9880c..aadb7d8 100644 --- a/kernel/vdso/futex.c +++ b/kernel/vdso/futex.c @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #include #include diff --git a/kernel/vdso/handle.c b/kernel/vdso/handle.c index 1cb5b08..1035d70 100644 --- a/kernel/vdso/handle.c +++ b/kernel/vdso/handle.c @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #include #include diff --git a/kernel/vdso/mem.c b/kernel/vdso/mem.c index 4fa2219..ad54a3d 100644 --- a/kernel/vdso/mem.c +++ b/kernel/vdso/mem.c @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #include #include diff --git a/kernel/vdso/meson.build b/kernel/vdso/meson.build index 1b788d1..6d2261e 100644 --- a/kernel/vdso/meson.build +++ b/kernel/vdso/meson.build @@ -19,7 +19,7 @@ vdso_link_args = [ # Build a shared library, which we are going to embed next. # TODO: We need to ensure there are no relocations inside the vDSO. -vdso = shared_library( +real_vdso = shared_library( 'zinnia-vdso', name_prefix: '', c_args: vdso_c_args, @@ -44,5 +44,11 @@ vdso = shared_library( ], ) +vdso = custom_target( + command: [find_program('cp'), '@INPUT@', '@OUTPUT@'], + input: real_vdso, + output: 'vdso.bin', +) + # Tell the kernel where the built binary lives so we can #embed it. kernel_c_args += ['-DVDSO_PATH="' + vdso.full_path() + '"'] diff --git a/kernel/vdso/namespace.c b/kernel/vdso/namespace.c index 5d0059d..00a80fa 100644 --- a/kernel/vdso/namespace.c +++ b/kernel/vdso/namespace.c @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #include #include diff --git a/kernel/vdso/random.c b/kernel/vdso/random.c index 96ac483..dbb7a96 100644 --- a/kernel/vdso/random.c +++ b/kernel/vdso/random.c @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #include #include diff --git a/kernel/vdso/status.c b/kernel/vdso/status.c index 9be4d1a..4566abd 100644 --- a/kernel/vdso/status.c +++ b/kernel/vdso/status.c @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #include #include diff --git a/kernel/vdso/system.c b/kernel/vdso/system.c index e34d803..ccecdf6 100644 --- a/kernel/vdso/system.c +++ b/kernel/vdso/system.c @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #include #include diff --git a/kernel/vdso/thread.c b/kernel/vdso/thread.c index d6fd07e..d1b6d93 100644 --- a/kernel/vdso/thread.c +++ b/kernel/vdso/thread.c @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MIT + #include #include diff --git a/kernel/vdso/vdso.ld b/kernel/vdso/vdso.ld index b46fb96..238525b 100644 --- a/kernel/vdso/vdso.ld +++ b/kernel/vdso/vdso.ld @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ +/* SPDX-License-Identifier: MIT */ VERSION { ZINNIA_0 { @@ -11,7 +11,7 @@ VERSION { PHDRS { text PT_LOAD FILEHDR PHDRS FLAGS(5); dynamic PT_DYNAMIC FLAGS(4); - note PT_NOTE FLAGS(4); + data PT_LOAD FLAGS(4); } SECTIONS @@ -28,10 +28,6 @@ SECTIONS *(.got .got.*) } :text - .data ALIGN(CONSTANT(MAXPAGESIZE)) : { - *(.vdso_data) - } :text - .dynsym : { *(.dynsym) } :text @@ -44,9 +40,15 @@ SECTIONS *(.dynamic) } :text :dynamic + .vdso_data ALIGN(CONSTANT(MAXPAGESIZE)) : { + *(.vdso_data) + . = ALIGN(CONSTANT(MAXPAGESIZE)); + } :data + + /DISCARD/ : { - *(.data*) + *(.data*) /* No data allowed besides the vDSO data */ *(.bss*) *(.comment*) *(.eh_frame*) diff --git a/lib/device/meson.build b/lib/device/meson.build new file mode 100644 index 0000000..3c01fb7 --- /dev/null +++ b/lib/device/meson.build @@ -0,0 +1,7 @@ +libdevice = library( + 'device', + sources: [ + 'vdso.c', + ], + include_directories: common_includes, +) diff --git a/lib/freestanding/entry.c b/lib/freestanding/entry.c new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/lib/freestanding/entry.c @@ -0,0 +1 @@ + diff --git a/lib/freestanding/meson.build b/lib/freestanding/meson.build new file mode 100644 index 0000000..18da658 --- /dev/null +++ b/lib/freestanding/meson.build @@ -0,0 +1,8 @@ +libfreestanding = static_library( + 'freestanding', + sources: [ + 'entry.c', + 'vdso.c', + ], + include_directories: common_includes, +) diff --git a/lib/vdso.c b/lib/freestanding/vdso.c similarity index 100% rename from lib/vdso.c rename to lib/freestanding/vdso.c diff --git a/lib/meson.build b/lib/meson.build index cd7d3a8..b3936d3 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -1,7 +1,3 @@ -libzinnia = static_library( - 'zinnia', - sources: [ - 'vdso.c', - ], - include_directories: common_includes, -) +subdir('freestanding') + +subdir('device') diff --git a/servers/devd/meson.build b/servers/devd/meson.build index 20143b1..d9720d4 100644 --- a/servers/devd/meson.build +++ b/servers/devd/meson.build @@ -11,6 +11,6 @@ executable( common_includes, uacpi_includes, ], - link_with: libzinnia, + link_with: libfreestanding, install: true, ) diff --git a/servers/initd/meson.build b/servers/initd/meson.build index 8045288..4aec821 100644 --- a/servers/initd/meson.build +++ b/servers/initd/meson.build @@ -3,7 +3,7 @@ executable( 'main.c', # The init process is linked statically because the dynamic loader can't be read before posixd is up. link_args: '-static', - link_with: libzinnia, + link_with: libfreestanding, include_directories: common_includes, install: true, )