Symbol troubles in 2.4.18pre... kernels
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
Quoted 6 lines
depmod:
sis_mallocThe trouble is that these modules are exported by
drivers/video/sis/sis_main.cso 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, likedrivers/net/3c503.oand 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
Quoted 9 lines · Alan Cox
Quoted 6 lines
'
isa_eth_io_copy_and_sum' is defined only for some architectures but assorted modules, likedrivers/net/3c503.oand 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