Skip to contentSkip to conversation

Symbol troubles in 2.4.18pre... kernels

PATCH In review Michal Jaegermann 2 participants 3 messages Feb 4, 2002

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Symbol troubles in 2.4.18pre... kernels

Compiling 2.4.18pre7, and also 2.4.18pre7ac, runs into various troubles with symbols. Here is what I got more or less accidentally. :-)

A module drivers/char/drm/sis.o ends up with unresolved symbols

depmod: sis_free
depmod: sis_malloc

The trouble is that these modules are exported by drivers/video/sis/sis_main.c so depmod has valid complaints if the first was configured and the other not. So this is a source error or a configuration error depending if these two are supposed to be independent or not.

'isa_eth_io_copy_and_sum' is defined only for some architectures but assorted modules, like drivers/net/3c503.o and few others, can be configured, say, for Alpha and 'depmod' once again complains about unresolved symbols. I do not think that anybody will really miss that on Alpha but maybe configuring them in should be disallowed?

Some sound modules are using 'mdelay', defined in linux/delay.h, but are not including this header. Here, at last, the patch is trivial. :-)

drivers/sound/ymfpci.c renamed from drivers/sound/ymfpci.c~ +1 -0
@@ -46,6 +46,7 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/ioport.h>
+#include <linux/delay.h>
 #include <linux/pci.h>
 #include <linux/slab.h>
 #include <linux/poll.h>
drivers/sound/opl3sa2.c renamed from drivers/sound/opl3sa2.c~ +1 -0
@@ -64,6 +64,7 @@
 #include <linux/module.h>
 #include <linux/isapnp.h>
 #include <linux/pm.h>
+#include <linux/delay.h>
 #include "sound_config.h"
 
 #include "ad1848.h"

Michal

#1 lore raw
Quoted 6 lines

depmod: sis_malloc

The trouble is that these modules are exported by drivers/video/sis/sis_main.c so depmod has valid complaints if the first was configured and the other not. So this is a source error or a configuration error depending if these two are supposed to be independent or not.

There isnt a good way to fix this in the config language - suggestions welcome

Quoted 5 lines

'isa_eth_io_copy_and_sum' is defined only for some architectures but assorted modules, like drivers/net/3c503.o and few others, can be configured, say, for Alpha and 'depmod' once again complains about unresolved symbols. I do not think that anybody will really miss that on Alpha but maybe configuring them in should be disallowed?

This is a bug in the Alpha port. Fix the port. Its not ecactly the most complex function to implement.

Quoted 2 lines

Some sound modules are using 'mdelay', defined in linux/delay.h, but are not including this header. Here, at last, the patch is trivial. :-)

Yep - looks good to me

#2 lore raw
In reply to Michal Jaegermann
Quoted 9 lines · Alan Cox
Quoted 6 lines

'isa_eth_io_copy_and_sum' is defined only for some architectures but assorted modules, like drivers/net/3c503.o and few others, can be configured, say, for Alpha and 'depmod' once again complains about unresolved symbols. I do not think that anybody will really miss that on Alpha but maybe configuring them in should be disallowed?

This is a bug in the Alpha port. Fix the port. Its not ecactly the most complex function to implement.

Well, the best I can tell by looking at other implementations and comparing there is not much to implement and the fix looks like that:

include/asm-alpha/io.h renamed from include/asm-alpha/io.h~ +2 -0
@@ -432,6 +432,8 @@
 #define eth_io_copy_and_sum(skb,src,len,unused) \
   memcpy_fromio((skb)->data,(src),(len))
 
+#define isa_eth_io_copy_and_sum(a,b,c,d) eth_copy_and_sum((a),(b),(c),(d))
+
 static inline int
 check_signature(unsigned long io_addr, const unsigned char *signature,
 		int length)

But I really have no way to test that on a real, live, hardware. It compiles. :-)

Michal