2003-07-28 20:25:32

by Adrian Bunk

[permalink] [raw]
Subject: [2.6 patch] 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:

--- linux-2.6.0-test2-full-no-smp/drivers/isdn/pcbit/module.c.tmp 2003-07-28 22:03:38.000000000 +0200
+++ linux-2.6.0-test2-full-no-smp/drivers/isdn/pcbit/module.c 2003-07-28 22:08:57.000000000 +0200
@@ -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

--

"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


2003-08-15 18:49:50

by Rusty Russell

[permalink] [raw]
Subject: Re: [2.6 patch] ISDN PCBIT: #ifdef MODULE some code

In message <[email protected]> you write:
> 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.

2003-08-15 20:46:25

by Adrian Bunk

[permalink] [raw]
Subject: Re: [2.6 patch] ISDN PCBIT: #ifdef MODULE some code

On Sat, Aug 16, 2003 at 02:51:20AM +1000, Rusty Russell wrote:
> In message <[email protected]> you write:
> > 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?

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).

> Taken anyway, for both.
> Rusty.

cu
Adrian

--

"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

2003-08-16 11:46:11

by Karsten Keil

[permalink] [raw]
Subject: Re: [2.6 patch] ISDN PCBIT: #ifdef MODULE some code

On Sat, Aug 16, 2003 at 02:51:20AM +1000, Rusty Russell wrote:
> In message <[email protected]> you write:
> > 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.

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.

--
Karsten Keil
SuSE Labs
ISDN development