Some further information on this problem. It appears to be data-dependent. Just to see what happened, I used stock 2.6.7 kernel sources, and the modules built successfully. So, I took the modpost command from the 2.6.7 tree, and copied it into the 2.6.5 tree. I got the same error. Something about the 2.6.5 modules is triggering an error in modpost. Using gdb, I was able to get this backtrace:
Program received signal SIGSEGV, Segmentation fault. 0x00401848 in handle_modversions () (gdb) bt #0 0x00401848 in handle_modversions () #1 0x004019e2 in read_symbols () #2 0x00401fda in main () That seemed like it might be useful, so I re-compiled modpost and it's sub-modules with -g, and got this: Program received signal SIGSEGV, Segmentation fault. 0x00401848 in handle_modversions (mod=0x410990, info=0x7fffdfc0, sym=0x40018dcc, symname=0x40018ff0 "vfs_readdir") at scripts/modpost.c:344 344 if (strcmp(symname, "_GLOBAL_OFFSET_TABLE_") == 0) (gdb) bt #0 0x00401848 in handle_modversions (mod=0x410990, info=0x7fffdfc0, sym=0x40018dcc, symname=0x40018ff0 "vfs_readdir") at scripts/modpost.c:344 #1 0x004019e2 in read_symbols (modname=0x7fffe92e "fs/exportfs/exportfs.o") at scripts/modpost.c:407 #2 0x00401fda in main (argc=4262160, argv=0x7fffe370) at scripts/modpost.c:601 The corresponding section of code is this: case SHN_UNDEF: /* undefined symbol */ if (ELF_ST_BIND(sym->st_info) != STB_GLOBAL) break; /* ignore global offset table */ if (strcmp(symname, "_GLOBAL_OFFSET_TABLE_") == 0) break; I don't know if this is any more help or not. Does it generate any ideas from anyone? Mark Post -----Original Message----- From: Post, Mark K Sent: Tuesday, July 20, 2004 5:18 PM To: 'Linux390'; '[EMAIL PROTECTED]' Subject: make modules build error w/ 2.6.5 I'm trying to compile a 2.6.5 kernel and corresponding modules. The kernel build seems to work fine, but I'm getting this linking error for the modules: CC [M] drivers/s390/char/tty3270.o CC [M] drivers/s390/char/fs3270.o LD [M] drivers/s390/char/tub3270.o drivers/s390/char/fs3270.o(.init.text+0x0): In function `init_module': : multiple definition of `init_module' drivers/s390/char/tty3270.o(.init.text+0x0): first defined here ld: Warning: size of symbol `init_module' changed from 250 in drivers/s390/char/tty3270.o to 100 in drivers/s390/char/fs3270.o drivers/s390/char/fs3270.o(.exit.text+0x0): In function `cleanup_module': : multiple definition of `cleanup_module' drivers/s390/char/tty3270.o(.exit.text+0x0): first defined here ld: Warning: size of symbol `cleanup_module' changed from 68 in drivers/s390/char/tty3270.o to 50 in drivers/s390/char/fs3270.o make[2]: *** [drivers/s390/char/tub3270.o] Error 1 make[1]: *** [drivers/s390/char] Error 2 make: *** [drivers/s390] Error 2 Anyone with any ideas on what might be causing this and/or how to get around it? gcc 3.3.4 binutils 2.15.90.0.3 glibc 2.3.2 Mark Post ---------------------------------------------------------------------- For LINUX-390 subscribe / signoff / archive access instructions, send email to [EMAIL PROTECTED] with the message: INFO LINUX-390 or visit http://www.marist.edu/htbin/wlvindex?LINUX-390