Skip to contentSkip to conversation

Move kasprintf.o to obj-y

PATCH In review Alexey Dobriyan 4 participants 6 messages Sep 24, 2007 Library code

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Move kasprintf.o to obj-y

Modular puppyvisor started giving linking errors

MODPOST 1 modules
ERROR: "kasprintf" [drivers/lguest/lg.ko] undefined!

---

 lib/Makefile |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
lib/Makefile +2 -2
@@ -2,7 +2,7 @@
 # Makefile for some libs needed in the kernel.
 #
 
-lib-y := ctype.o string.o vsprintf.o kasprintf.o cmdline.o \
+lib-y := ctype.o string.o vsprintf.o cmdline.o \
 	 rbtree.o radix-tree.o dump_stack.o \
 	 idr.o int_sqrt.o bitmap.o extable.o prio_tree.o \
 	 sha1.o irq_regs.o reciprocal_div.o argv_split.o
@@ -13,7 +13,7 @@ lib-$(CONFIG_SMP) += cpumask.o
 lib-y	+= kobject.o kref.o kobject_uevent.o klist.o
 
 obj-y += div64.o sort.o parser.o halfmd4.o debug_locks.o random32.o \
-	 bust_spinlocks.o hexdump.o
+	 bust_spinlocks.o hexdump.o kasprintf.o
 
 ifeq ($(CONFIG_DEBUG_KOBJECT),y)
 CFLAGS_kobject.o += -DDEBUG
#1 lore raw
Quoted 4 lines · Alexey Dobriyan

Modular puppyvisor started giving linking errors

MODPOST 1 modules
ERROR: "kasprintf" [drivers/lguest/lg.ko] undefined!

Please kill lib-y while you're at it. It's useless and a constant source of pain like this.

#2 lore raw
Quoted 8 lines · Christoph Hellwig
Quoted 4 lines · Alexey Dobriyan

Modular puppyvisor started giving linking errors

MODPOST 1 modules
ERROR: "kasprintf" [drivers/lguest/lg.ko] undefined!

Please kill lib-y while you're at it. It's useless and a constant source of pain like this.

Kernel-bloat is another "constant source of pain".
But the troubles are that increased blot does not result in compiler erros.

And your proposal to kil lib-y is a counter-act here.

Sam

#3 lore raw
Quoted 6 lines · Sam Ravnborg
Quoted 2 lines

Please kill lib-y while you're at it. It's useless and a constant source of pain like this.

Kernel-bloat is another "constant source of pain".
But the troubles are that increased blot does not result in compiler erros.

And your proposal to kil lib-y is a counter-act here.

Killing lib-y doesn't create kernel bloat if done right. Just introduce proper Kconfig dependencies for the truely optional parts. But if you look at the list of objects in lib-y you'll see that they fall in basically three categories:

(1) always used by core code - should be obj-y
(2) generic implementation for arch-specific functionality, should be guarded by Kconfig for clarity reasons anyway
(3) library code often but not always used by code that's not always built in. Here we run into the move to obj-y to avoid compiler warning when used as module issue all the time. Adding a CONFIG for the bigger onces actually avoids bloat over obj-y here, and when it's small enough obj-y is a lot safer in the presence of modular users

Really, trying to use the old static library use on demand concept simply doesn't fit the way the kernel is built with it's modules and dependencies.

maintainer
#4 lore raw
Quoted 23 lines · On Mon, 24 Sep 2007 09:09:48 +0100 Christoph Hellwig <[email protected]> wrote:
Quoted 6 lines · Sam Ravnborg
Quoted 2 lines

Please kill lib-y while you're at it. It's useless and a constant source of pain like this.

Kernel-bloat is another "constant source of pain".
But the troubles are that increased blot does not result in compiler erros.

And your proposal to kil lib-y is a counter-act here.

Killing lib-y doesn't create kernel bloat if done right. Just introduce proper Kconfig dependencies for the truely optional parts. But if you look at the list of objects in lib-y you'll see that they fall in basically three categories:

(1) always used by core code - should be obj-y
(2) generic implementation for arch-specific functionality, should be guarded by Kconfig for clarity reasons anyway
(3) library code often but not always used by code that's not always built in. Here we run into the move to obj-y to avoid compiler warning when used as module issue all the time. Adding a CONFIG for the bigger onces actually avoids bloat over obj-y here, and when it's small enough obj-y is a lot safer in the presence of modular users

Quoted 2 lines

Really, trying to use the old static library use on demand concept simply doesn't fit the way the kernel is built with it's modules and dependencies.

yup, it duplicates what the config system does and is a common source of problems.

#5 lore raw
In reply to Christoph Hellwig
Quoted 23 lines · Christoph Hellwig
Quoted 6 lines · Sam Ravnborg
Quoted 2 lines

Please kill lib-y while you're at it. It's useless and a constant source of pain like this.

Kernel-bloat is another "constant source of pain".
But the troubles are that increased blot does not result in compiler erros.

And your proposal to kil lib-y is a counter-act here.

Killing lib-y doesn't create kernel bloat if done right. Just introduce proper Kconfig dependencies for the truely optional parts. But if you look at the list of objects in lib-y you'll see that they fall in basically three categories:

(1) always used by core code - should be obj-y
(2) generic implementation for arch-specific functionality, should be guarded by Kconfig for clarity reasons anyway
(3) library code often but not always used by code that's not always built in. Here we run into the move to obj-y to avoid compiler warning when used as module issue all the time. Adding a CONFIG for the bigger onces actually avoids bloat over obj-y here, and when it's small enough obj-y is a lot safer in the presence of modular users

Quoted 2 lines

Really, trying to use the old static library use on demand concept simply doesn't fit the way the kernel is built with it's modules and dependencies.

I objected to just killing lib-y (the way I read your original proposal). If we introduce proper kconfig dependencies as in (3) then I am all for it.

Sam