From 14fea6f8a37f2278a0e628b44cddcb38ae90c456 Mon Sep 17 00:00:00 2001 From: Ylarod Date: Fri, 7 Nov 2025 07:23:11 +0800 Subject: [PATCH] build: remove -Wno-implicit-function-declaration --- kernel/Makefile | 2 +- kernel/core_hook.c | 3 ++- kernel/ksu.c | 1 + kernel/manager.h | 4 +--- kernel/selinux/Makefile | 2 +- kernel/selinux/rules.c | 6 +++++- kernel/throne_tracker.c | 2 +- 7 files changed, 12 insertions(+), 8 deletions(-) diff --git a/kernel/Makefile b/kernel/Makefile index e6d6cd9f..522e8538 100644 --- a/kernel/Makefile +++ b/kernel/Makefile @@ -159,7 +159,7 @@ ifeq ($(shell grep -q "struct proc_ops " $(srctree)/include/linux/proc_fs.h; ech ccflags-y += -DKSU_COMPAT_HAS_PROC_OPS endif -ccflags-y += -Wno-implicit-function-declaration -Wno-strict-prototypes -Wno-int-conversion -Wno-gcc-compat -Wno-missing-prototypes +ccflags-y += -Wno-strict-prototypes -Wno-int-conversion -Wno-gcc-compat -Wno-missing-prototypes ccflags-y += -Wno-declaration-after-statement -Wno-unused-function -Wno-unused-variable all: diff --git a/kernel/core_hook.c b/kernel/core_hook.c index 61605b52..0b8f8398 100644 --- a/kernel/core_hook.c +++ b/kernel/core_hook.c @@ -389,6 +389,7 @@ void escape_to_root_for_cmd_su(uid_t target_uid, pid_t target_pid) #ifdef CONFIG_EXT4_FS +extern void ext4_unregister_sysfs(struct super_block *sb); void nuke_ext4_sysfs(void) { struct path path; @@ -453,7 +454,7 @@ static bool should_umount(struct path *path) } return false; } - +extern int path_umount(struct path *path, int flags); static void ksu_umount_mnt(struct path *path, int flags) { int err = path_umount(path, flags); diff --git a/kernel/ksu.c b/kernel/ksu.c index afca0bdc..e77b50fb 100644 --- a/kernel/ksu.c +++ b/kernel/ksu.c @@ -64,6 +64,7 @@ int __init kernelsu_init(void) return 0; } +extern void ksu_observer_exit(void); void kernelsu_exit(void) { ksu_allowlist_exit(); diff --git a/kernel/manager.h b/kernel/manager.h index 4c9e9570..2421da72 100644 --- a/kernel/manager.h +++ b/kernel/manager.h @@ -40,6 +40,4 @@ static inline void ksu_invalidate_manager_uid(void) } int ksu_observer_init(void); -void ksu_observer_exit(void); - -#endif \ No newline at end of file +#endif diff --git a/kernel/selinux/Makefile b/kernel/selinux/Makefile index 870750be..8e7cef1f 100644 --- a/kernel/selinux/Makefile +++ b/kernel/selinux/Makefile @@ -10,7 +10,7 @@ ifeq ($(shell grep -q "struct selinux_state " $(srctree)/security/selinux/includ ccflags-y += -DKSU_COMPAT_HAS_SELINUX_STATE endif -ccflags-y += -Wno-implicit-function-declaration -Wno-strict-prototypes -Wno-int-conversion +ccflags-y += -Wno-strict-prototypes -Wno-int-conversion ccflags-y += -Wno-declaration-after-statement -Wno-unused-function ccflags-y += -I$(srctree)/security/selinux -I$(srctree)/security/selinux/include ccflags-y += -I$(objtree)/security/selinux -include $(srctree)/include/uapi/asm-generic/errno.h diff --git a/kernel/selinux/rules.c b/kernel/selinux/rules.c index df8bc447..c6dad552 100644 --- a/kernel/selinux/rules.c +++ b/kernel/selinux/rules.c @@ -201,7 +201,11 @@ static int get_object(char *buf, char __user *user_object, size_t buf_sz, return 0; } - +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 4, 0)) +extern int avc_ss_reset(u32 seqno); +#else +extern int avc_ss_reset(struct selinux_avc *avc, u32 seqno); +#endif // reset avc cache table, otherwise the new rules will not take effect if already denied static void reset_avc_cache() { diff --git a/kernel/throne_tracker.c b/kernel/throne_tracker.c index ca491309..548c738f 100644 --- a/kernel/throne_tracker.c +++ b/kernel/throne_tracker.c @@ -234,7 +234,7 @@ struct my_dir_context { #define FILLDIR_ACTOR_CONTINUE 0 #define FILLDIR_ACTOR_STOP -EINVAL #endif - +extern bool is_manager_apk(char *path); FILLDIR_RETURN_TYPE my_actor(struct dir_context *ctx, const char *name, int namelen, loff_t off, u64 ino, unsigned int d_type)