Skip to contentSkip to conversation

fix non-modular ftape compile

PATCH In review Adrian Bunk 2 participants 5 messages Sep 25, 2003

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 fix non-modular ftape compile

I got the following link error in 2.60-test5-mm4 (but it doesn't seem to be specific to -mm):

<-- snip -->

...
LD .tmp_vmlinux1
drivers/built-in.o(.exit.text+0xfe6): In function `ftape_exit':
: undefined reference to `ftape_proc_destroy'
make: *** [.tmp_vmlinux1] Error 1

<-- snip -->

ftape_proc_destroy is only available #ifdef MODULE, the following patch fixes the link error:

drivers/char/ftape/lowlevel/ftape-init.c renamed from drivers/char/ftape/lowlevel/ftape-init.c.old +1 -1
@@ -148,7 +148,7 @@
 {
 	TRACE_FUN(ft_t_flow);
 
-#if defined(CONFIG_PROC_FS) && defined(CONFIG_FT_PROC_FS)
+#if defined(CONFIG_PROC_FS) && defined(CONFIG_FT_PROC_FS) && defined(MODULE)
 	ftape_proc_destroy();
 #endif
 	(void)ftape_set_nr_buffers(0);

cu
Adrian

Signature · 4 lines
       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed
#1 lore raw
Quoted 2 lines · Adrian Bunk

ftape_proc_destroy is only available #ifdef MODULE, the following patch fixes the link error:

I'd suggest to kill the #ifdef MODULE instead and mark it __exit. Same result but less ifdef crap..

#2 lore raw
Quoted 6 lines · Christoph Hellwig
Quoted 2 lines · Adrian Bunk

ftape_proc_destroy is only available #ifdef MODULE, the following patch fixes the link error:

I'd suggest to kill the #ifdef MODULE instead and mark it __exit. Same result but less ifdef crap..

It increases the kernel size since in 2.6 __exit functions are discarded at runtime and not at link time.

Anyway, I agree with your suggestion. The following patch works instead of the first patch I sent.

drivers/char/ftape/lowlevel/ftape-proc.c renamed from drivers/char/ftape/lowlevel/ftape-proc.c.old +1 -3
@@ -207,11 +207,9 @@
 		ftape_read_proc, NULL) != NULL;
 }
 
-#ifdef MODULE
-void ftape_proc_destroy(void)
+void __exit ftape_proc_destroy(void)
 {
 	remove_proc_entry("ftape", &proc_root);
 }
-#endif
 
 #endif /* defined(CONFIG_PROC_FS) && defined(CONFIG_FT_PROC_FS) */

cu
Adrian

Signature · 4 lines
       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed
#3 lore raw
Quoted 2 lines · Adrian Bunk

It increases the kernel size since in 2.6 __exit functions are discarded at runtime and not at link time.

Oh. That sounds silly. Do you remember who changed it and why?

#4 lore raw
Quoted 5 lines · Christoph Hellwig
Quoted 2 lines · Adrian Bunk

It increases the kernel size since in 2.6 __exit functions are discarded at runtime and not at link time.

Oh. That sounds silly. Do you remember who changed it and why?

Andi Kleen changed it, it was needed for .altinstructions .

cu
Adrian

Signature · 4 lines
       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed