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

Reply via email to