From f0219e951e48659849fb7b880281e34b36922015 Mon Sep 17 00:00:00 2001 From: Florent Valette Date: Wed, 27 Nov 2024 12:25:42 +0100 Subject: [PATCH] uapi: rename subdir uapi -> src this is not the standard layout, even for Cargo --- meson.build | 2 +- uapi/{uapi => }/Cargo.toml | 3 --- uapi/meson.build | 29 +++++-------------------- uapi/{uapi => src}/arch/arm_cortex_m.rs | 0 uapi/{uapi => src}/arch/meson.build | 0 uapi/{uapi => src}/arch/mod.rs | 0 uapi/{uapi => src}/arch/x86_64.rs | 0 uapi/{uapi => src}/lib.rs | 0 uapi/{uapi => src}/meson.build | 22 ++++++++++++++++--- uapi/{uapi => src}/panic.rs | 0 uapi/{uapi => src}/svc_exchange.rs | 0 uapi/{uapi => src}/syscall.rs | 0 uapi/{uapi => src}/systypes.rs | 0 uapi/{uapi => src}/uapi.rs | 0 14 files changed, 25 insertions(+), 31 deletions(-) rename uapi/{uapi => }/Cargo.toml (94%) rename uapi/{uapi => src}/arch/arm_cortex_m.rs (100%) rename uapi/{uapi => src}/arch/meson.build (100%) rename uapi/{uapi => src}/arch/mod.rs (100%) rename uapi/{uapi => src}/arch/x86_64.rs (100%) rename uapi/{uapi => src}/lib.rs (100%) rename uapi/{uapi => src}/meson.build (78%) rename uapi/{uapi => src}/panic.rs (100%) rename uapi/{uapi => src}/svc_exchange.rs (100%) rename uapi/{uapi => src}/syscall.rs (100%) rename uapi/{uapi => src}/systypes.rs (100%) rename uapi/{uapi => src}/uapi.rs (100%) diff --git a/meson.build b/meson.build index 026dacce..b23f93cc 100644 --- a/meson.build +++ b/meson.build @@ -15,7 +15,7 @@ # limitations under the License. project('sentry-kernel', 'c', - meson_version: '>=1.3.0', + meson_version: '>=1.4.0', default_options: [ 'c_std=gnu11', 'cpp_std=gnu++20', 'warning_level=3', 'optimization=s', diff --git a/uapi/uapi/Cargo.toml b/uapi/Cargo.toml similarity index 94% rename from uapi/uapi/Cargo.toml rename to uapi/Cargo.toml index 6ee7784e..4923194a 100644 --- a/uapi/uapi/Cargo.toml +++ b/uapi/Cargo.toml @@ -9,9 +9,6 @@ license = "Apache 2.0" description = "Sentry kernel user API implementation" categories = ["os::api"] -[lib] -path = "lib.rs" - [dependencies] [dev-dependencies] diff --git a/uapi/meson.build b/uapi/meson.build index 25c12f04..3681c8ce 100644 --- a/uapi/meson.build +++ b/uapi/meson.build @@ -16,37 +16,18 @@ rust_toolchain_config = configuration_data() rust_toolchain_config.set('channel', get_option('rust-channel')) rust_toolchain_config.set('target', kconfig_data.get_unquoted('CONFIG_RUSTC_TARGET')) -rust_edition = '2021' -uapi_rust_std = 'rust_std=' + rust_edition - global_rust_build_args = [ '@' + fs.parent(kconfig_rustargs) / fs.name(kconfig_rustargs), target_rustargs, '-C', 'lto=true', '-C', 'relocation-model=pic', '-C', 'link-args=--emit-relocs' ] -subdir('include/uapi') -subdir('uapi') - -py3 = pymod.find_installation('python3', modules: ['git']) - -# XXX: -# This deps is designed for userspace (libshied) only -# As in linux kernel, uapi headers are not used w/ a kernel name and/or uapi -# prefix. So, add the uapi include subdir in "include_directories". -sentry_c_uapi_dep = declare_dependency( - link_with: uapi_lib, - sources: [ uapi_h ], - compile_args: [ global_build_args, target_arch_args ], - include_directories: [ userspace_uapi_include_dir ], -) +rust_edition = '2021' +uapi_rust_std = 'rust_std=' + rust_edition +uapi_manifest = files('Cargo.toml') -pkg_config = import('pkgconfig') -pkg_config.generate( - uapi_lib, - filebase: 'uapi', - extra_cflags: [ global_build_args, target_arch_args ], -) +subdir('include/uapi') +subdir('src') install_data( 'task.Kconfig', diff --git a/uapi/uapi/arch/arm_cortex_m.rs b/uapi/src/arch/arm_cortex_m.rs similarity index 100% rename from uapi/uapi/arch/arm_cortex_m.rs rename to uapi/src/arch/arm_cortex_m.rs diff --git a/uapi/uapi/arch/meson.build b/uapi/src/arch/meson.build similarity index 100% rename from uapi/uapi/arch/meson.build rename to uapi/src/arch/meson.build diff --git a/uapi/uapi/arch/mod.rs b/uapi/src/arch/mod.rs similarity index 100% rename from uapi/uapi/arch/mod.rs rename to uapi/src/arch/mod.rs diff --git a/uapi/uapi/arch/x86_64.rs b/uapi/src/arch/x86_64.rs similarity index 100% rename from uapi/uapi/arch/x86_64.rs rename to uapi/src/arch/x86_64.rs diff --git a/uapi/uapi/lib.rs b/uapi/src/lib.rs similarity index 100% rename from uapi/uapi/lib.rs rename to uapi/src/lib.rs diff --git a/uapi/uapi/meson.build b/uapi/src/meson.build similarity index 78% rename from uapi/uapi/meson.build rename to uapi/src/meson.build index af70afd7..ebfab571 100644 --- a/uapi/uapi/meson.build +++ b/uapi/src/meson.build @@ -1,9 +1,6 @@ # SPDX-FileCopyrightText: 2023-2024 Ledger SAS # SPDX-License-Identifier: Apache-2.0 -rust = import('rust') - -uapi_manifest = files('Cargo.toml') uapi_libfile = files('lib.rs') # XXX: @@ -29,6 +26,25 @@ uapi_lib = static_library( install: true, ) +# XXX: +# This deps is designed for userspace (libshied) only +# As in linux kernel, uapi headers are not used w/ a kernel name and/or uapi +# prefix. So, add the uapi include subdir in "include_directories". +sentry_c_uapi_dep = declare_dependency( + link_with: uapi_lib, + sources: [ uapi_h ], + compile_args: [ global_build_args, target_arch_args ], + include_directories: [ userspace_uapi_include_dir ], +) + +# Generate pkg config file uapi.pc for C app using c_ffi static library +pkg_config = import('pkgconfig') +pkg_config.generate( + uapi_lib, + filebase: 'uapi', + extra_cflags: [ global_build_args, target_arch_args ], +) + cargo = find_program('cargo', required: true) if with_doc_opt diff --git a/uapi/uapi/panic.rs b/uapi/src/panic.rs similarity index 100% rename from uapi/uapi/panic.rs rename to uapi/src/panic.rs diff --git a/uapi/uapi/svc_exchange.rs b/uapi/src/svc_exchange.rs similarity index 100% rename from uapi/uapi/svc_exchange.rs rename to uapi/src/svc_exchange.rs diff --git a/uapi/uapi/syscall.rs b/uapi/src/syscall.rs similarity index 100% rename from uapi/uapi/syscall.rs rename to uapi/src/syscall.rs diff --git a/uapi/uapi/systypes.rs b/uapi/src/systypes.rs similarity index 100% rename from uapi/uapi/systypes.rs rename to uapi/src/systypes.rs diff --git a/uapi/uapi/uapi.rs b/uapi/src/uapi.rs similarity index 100% rename from uapi/uapi/uapi.rs rename to uapi/src/uapi.rs