Build breakage if !SYSFS
Changeset 5cb350baf580017da38199625b7365b1763d7180 causes build breakage if sysfs support is disabled:
kernel/built-in.o: In function `uids_kobject_init':
(.init.text+0x1488): undefined reference to kernel_subsys' kernel/built-in.o: In function uids_kobject_init':
(.init.text+0x1490): undefined reference to kernel_subsys' kernel/built-in.o: In function uids_kobject_init':
(.init.text+0x1480): undefined reference to kernel_subsys' kernel/built-in.o: In function uids_kobject_init':
(.init.text+0x1494): undefined reference to `kernel_subsys'
This breaks for example mipssim_defconfig.
Ralf
Quoted 12 lines · Ralf Baechle
Changeset
5cb350baf580017da38199625b7365b1763d7180causes build breakage if sysfs support is disabled:
kernel/built-in.o: In function `uids_kobject_init':
(.init.text+0x1488): undefined reference tokernel_subsys' kernel/built-in.o: In functionuids_kobject_init':
(.init.text+0x1490): undefined reference tokernel_subsys' kernel/built-in.o: In functionuids_kobject_init':
(.init.text+0x1480): undefined reference tokernel_subsys' kernel/built-in.o: In functionuids_kobject_init':
(.init.text+0x1494): undefined reference to `kernel_subsys'
Quoted 3 lines
This breaks for example
mipssim_defconfig.Ralf
Hi Ralf,
Can you try this and confirm if it works?
--
When CONFIG_SYSFS is not set, CONFIG_FAIR_USER_SCHED fails to build with
kernel/built-in.o: In function `uids_kobject_init':
(.init.text+0x1488): undefined reference to kernel_subsys' kernel/built-in.o: In function uids_kobject_init':
(.init.text+0x1490): undefined reference to kernel_subsys' kernel/built-in.o: In function uids_kobject_init':
(.init.text+0x1480): undefined reference to kernel_subsys' kernel/built-in.o: In function uids_kobject_init':
(.init.text+0x1494): undefined reference to `kernel_subsys'
This patch fixes this build error.
--- include/linux/sched.h | 2 ++ kernel/user.c | 23 +++++++++++++++-------- 2 files changed, 17 insertions(+), 8 deletions(-)
include/linux/sched.h +2 -0
@@ -602,10 +602,12 @@ struct user_struct {#ifdef CONFIG_FAIR_USER_SCHED struct task_group *tg; +#ifdef CONFIG_SYSFS struct kset kset;struct subsys_attribute user_attr;struct work_struct work;#endif +#endif };#ifdef CONFIG_FAIR_USER_SCHED
kernel/user.c +15 -8
@@ -87,9 +87,6 @@ static inline struct user_struct *uid_ha#ifdef CONFIG_FAIR_USER_SCHED -static struct kobject uids_kobject;/* represents /sys/kernel/uids directory */ -static DEFINE_MUTEX (uids_mutex); -static void sched_destroy_user (struct user_struct *up) {sched_destroy_group (up->tg);
@@ -111,6 +108,19 @@ static void sched_switch_user(struct tassched_move_task (p); } +#else /* CONFIG_FAIR_USER_SCHED */ + +static void sched_destroy_user (struct user_struct *up) { } +static int sched_create_user (struct user_struct *up) {return 0 ; } +static void sched_switch_user (struct task_struct *p) { } + +#endif /* CONFIG_FAIR_USER_SCHED */ + +#if defined(CONFIG_FAIR_USER_SCHED ) && defined(CONFIG_SYSFS ) + +static struct kobject uids_kobject;/* represents /sys/kernel/uids directory */ +static DEFINE_MUTEX (uids_mutex); +static inline void uids_mutex_lock (void ) {mutex_lock (&uids_mutex);
@@ -257,11 +267,8 @@ static inline void free_user(struct user schedule_work(&up->work); } -#else /* CONFIG_FAIR_USER_SCHED */ +#else /* CONFIG_FAIR_USER_SCHED && CONFIG_SYSFS */ -static void sched_destroy_user (struct user_struct *up) { } -static int sched_create_user (struct user_struct *up) {return 0 ; } -static void sched_switch_user (struct task_struct *p) { }static inline int user_kobject_create (struct user_struct *up) {return 0 ; }static inline void uids_mutex_lock (void ) { }static inline void uids_mutex_unlock (void ) { }
@@ -280,7 +287,7 @@ static inline void free_user(struct user kmem_cache_free(uid_cachep, up); } -#endif /* CONFIG_FAIR_USER_SCHED */ +#endif /* * Locate the user_struct for the passed UID. If found, take a ref on it. The
Signature · 2 lines
regards, Dhaval
Quoted 13 lines · Dhaval Giani
Quoted 12 lines · Ralf Baechle
Changeset
5cb350baf580017da38199625b7365b1763d7180causes build breakage if sysfs support is disabled:
kernel/built-in.o: In function `uids_kobject_init':
(.init.text+0x1488): undefined reference tokernel_subsys' kernel/built-in.o: In functionuids_kobject_init':
(.init.text+0x1490): undefined reference tokernel_subsys' kernel/built-in.o: In functionuids_kobject_init':
(.init.text+0x1480): undefined reference tokernel_subsys' kernel/built-in.o: In functionuids_kobject_init':
(.init.text+0x1494): undefined reference to `kernel_subsys'
Quoted 7 lines
Quoted 3 lines
This breaks for example
mipssim_defconfig.Ralf
Hi Ralf,
Can you try this and confirm if it works?
Yes, this solves the issue.
Thanks,
Ralf
PATCH 1/1 Fix build breakage if !SYSFS
Quoted 17 lines · Ralf Baechle
Quoted 15 lines · Dhaval Giani
Quoted 14 lines · Ralf Baechle
Changeset
5cb350baf580017da38199625b7365b1763d7180causes build breakage if sysfs support is disabled:
kernel/built-in.o: In function `uids_kobject_init':
(.init.text+0x1488): undefined reference tokernel_subsys' kernel/built-in.o: In functionuids_kobject_init':
(.init.text+0x1490): undefined reference tokernel_subsys' kernel/built-in.o: In functionuids_kobject_init':
(.init.text+0x1480): undefined reference tokernel_subsys' kernel/built-in.o: In functionuids_kobject_init':
(.init.text+0x1494): undefined reference to `kernel_subsys'This breaks for example
mipssim_defconfig.
Quoted 7 lines
Quoted 5 lines
Quoted 1 line
Ralf
Hi Ralf,
Can you try this and confirm if it works?
Yes, this solves the issue.
Hi,
Could you please include this patch to fix the build breakage?
thanks
Dhaval
--
When CONFIG_SYSFS is not set, CONFIG_FAIR_USER_SCHED fails to build with
kernel/built-in.o: In function `uids_kobject_init':
(.init.text+0x1488): undefined reference to kernel_subsys' kernel/built-in.o: In function uids_kobject_init':
(.init.text+0x1490): undefined reference to kernel_subsys' kernel/built-in.o: In function uids_kobject_init':
(.init.text+0x1480): undefined reference to kernel_subsys' kernel/built-in.o: In function uids_kobject_init':
(.init.text+0x1494): undefined reference to `kernel_subsys'
This patch fixes this build error.
--- include/linux/sched.h | 2 ++ kernel/user.c | 23 +++++++++++++++-------- 2 files changed, 17 insertions(+), 8 deletions(-)
include/linux/sched.h +2 -0
@@ -602,10 +602,12 @@ struct user_struct {#ifdef CONFIG_FAIR_USER_SCHED struct task_group *tg; +#ifdef CONFIG_SYSFS struct kset kset;struct subsys_attribute user_attr;struct work_struct work;#endif +#endif };#ifdef CONFIG_FAIR_USER_SCHED
kernel/user.c +15 -8
@@ -87,9 +87,6 @@ static inline struct user_struct *uid_ha#ifdef CONFIG_FAIR_USER_SCHED -static struct kobject uids_kobject;/* represents /sys/kernel/uids directory */ -static DEFINE_MUTEX (uids_mutex); -static void sched_destroy_user (struct user_struct *up) {sched_destroy_group (up->tg);
@@ -111,6 +108,19 @@ static void sched_switch_user(struct tassched_move_task (p); } +#else /* CONFIG_FAIR_USER_SCHED */ + +static void sched_destroy_user (struct user_struct *up) { } +static int sched_create_user (struct user_struct *up) {return 0 ; } +static void sched_switch_user (struct task_struct *p) { } + +#endif /* CONFIG_FAIR_USER_SCHED */ + +#if defined(CONFIG_FAIR_USER_SCHED ) && defined(CONFIG_SYSFS ) + +static struct kobject uids_kobject;/* represents /sys/kernel/uids directory */ +static DEFINE_MUTEX (uids_mutex); +static inline void uids_mutex_lock (void ) {mutex_lock (&uids_mutex);
@@ -257,11 +267,8 @@ static inline void free_user(struct user schedule_work(&up->work); } -#else /* CONFIG_FAIR_USER_SCHED */ +#else /* CONFIG_FAIR_USER_SCHED && CONFIG_SYSFS */ -static void sched_destroy_user (struct user_struct *up) { } -static int sched_create_user (struct user_struct *up) {return 0 ; } -static void sched_switch_user (struct task_struct *p) { }static inline int user_kobject_create (struct user_struct *up) {return 0 ; }static inline void uids_mutex_lock (void ) { }static inline void uids_mutex_unlock (void ) { }
@@ -280,7 +287,7 @@ static inline void free_user(struct user kmem_cache_free(uid_cachep, up); } -#endif /* CONFIG_FAIR_USER_SCHED */ +#endif /* * Locate the user_struct for the passed UID. If found, take a ref on it. The
Signature · 2 lines
regards, Dhaval
Re: [PATCH] Fix build breakage if !SYSFS
Quoted 1 line · Dhaval Giani
Could you please include this patch to fix the build breakage?
thanks - i've added this to the scheduler patch-queue.
Ingo