Skip to contentSkip to conversation

ISDN PCBIT: #ifdef MODULE some code

PATCH In review Adrian Bunk 3 participants 4 messages Jul 28, 2003 – Aug 16, 2003

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ISDN PCBIT: #ifdef MODULE some code

I got the following error at the final linkage of 2.6.0-test2 if CONFIG_ISDN_DRV_PCBIT is compiled statically:

<-- snip -->

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

<-- snip -->

I don't know whether the following patch is the best solution, but it solves the problem:

drivers/isdn/pcbit/module.c renamed from drivers/isdn/pcbit/module.c.tmp +2 -0
@@ -82,12 +82,14 @@
 
 static void __exit pcbit_exit(void)
 {
+#ifdef MODULE
 	int board;
 
 	for (board = 0; board < num_boards; board++)
 		pcbit_terminate(board);
 	printk(KERN_NOTICE 
 	       "PCBIT-D module unloaded\n");
+#endif
 }
 
 #ifndef MODULE

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

In message <[email protected]> you write:

Quoted 11 lines

I got the following error at the final linkage of 2.6.0-test2 if CONFIG_ISDN_DRV_PCBIT is compiled statically:

<-- snip -->

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

AFAICT This is also broken in 2.4.22-rc2, which makes me wonder if anyone actually cares about this driver?

Taken anyway, for both.
Rusty.
--
Anyone who quotes me in their sig is an idiot. -- Rusty Russell.

#2 lore raw
Quoted 13 lines · Rusty Russell

In message <[email protected]> you write:

Quoted 11 lines

I got the following error at the final linkage of 2.6.0-test2 if CONFIG_ISDN_DRV_PCBIT is compiled statically:

<-- snip -->

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

Quoted 2 lines

AFAICT This is also broken in 2.4.22-rc2, which makes me wonder if anyone actually cares about this driver?

It doesn't cause a compile error in 2.4.

This is inside an __exit function and in 2.4 __exit functions are discarded at link time when compiling a driver statically.

Due to changes Andi Kleen did in 2.6 __exit functions are no longer discarded at link time when compiling a driver statically (they are discarded at runtime).

Quoted 2 lines

Taken anyway, for both.
Rusty.

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
In reply to Rusty Russell
Quoted 13 lines · Rusty Russell

In message <[email protected]> you write:

Quoted 11 lines

I got the following error at the final linkage of 2.6.0-test2 if CONFIG_ISDN_DRV_PCBIT is compiled statically:

<-- snip -->

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

Quoted 4 lines

AFAICT This is also broken in 2.4.22-rc2, which makes me wonder if anyone actually cares about this driver?

Taken anyway, for both.

It is used, I got some reports last year (but this card is only sold in Portugal and is expensiv so far I know and so not so much people using this card and linux).

Here 2 reasons why such thinks don't matter today:
1. 99% compile the ISDN stuff as module (and some parts are only work as modules)
2. In 2.4 the exit function is removed at compile time, if not compiled as modul.

I preparing lot of bugfixes for ISDN and 2.6, but testing needs much time and many things are broken not only at compile time.

Signature · 3 lines
Karsten Keil
SuSE Labs
ISDN development