Date: Wed, 20 Feb 2002 22:06:51 -0500 (EST) From: Andrew Gallatin <gallatin@cs.duke.edu> To: dfr@nlsystems.com Cc: freebsd-alpha@freebsd.org Subject: alpha klds and the new linker Message-ID: <15476.25675.437556.224218@grasshopper.cs.duke.edu>
index | next in thread | raw e-mail
Doug,
There's something about the new linker (from the latest binutils
import) which breaks klds on alpha. If I attempt to load a module
built with the new binutils, things go kaboom like this:
<...>
fatal kernel trap:
trap entry = 0x2 (memory management fault)
faulting va = 0xfffffe00015502f4
type = access violation
cause = load instructon
pc = 0xfffffc0000490984
ra = 0xfffffc000049094c
sp = 0xfffffe000b749b80
usp = 0x11fffcb0
curthread = 0xfffffe000b3627c0
pid = 45, comm = kldload
Stopped at linker_file_register_modules+0xa4: ldl t0,0x4(a0) <0xfffffe00015502f4> <t0=0x1,a0=0xfffffe00015502f0>
db> tr
linker_file_register_modules() at linker_file_register_modules+0xa4
linker_load_file() at linker_load_file+0xc4
linker_load_module() at linker_load_module+0x13c
kldload() at kldload+0x148
syscall() at syscall+0x2c4
XentSys() at XentSys+0x64
--- syscall (304, FreeBSD ELF, kldload) ---
The faulting code is:
for (mdp = start; mdp < stop; mdp++) {
if ((*mdp)->md_type != MDT_MODULE) <-----------
continue;
Of course, I don't have a good stack from inside of gdb. But I"m able
to get at the lf. The elf info looks like this:
preloaded = 0,
address = 0xfffffe0001516000 "\177ELF\002\001\001\t",
dynamic = 0xfffffe00015332c8,
nbuckets = 197,
nchains = 231,
buckets = 0xfffffe00015160f8,
chains = 0xfffffe0001516720,
hash = 0x0,
strtab = 0xfffffe0001518400 "",
strsz = 1882,
symtab = 0xfffffe0001516e58,
got = 0xfffffe00015333f8,
pltrel = 0x0,
pltrelsize = 0,
pltrela = 0xfffffe000151b158,
pltrelasize = 2160,
rel = 0x0,
relsize = 0,
rela = 0xfffffe0001518b60,
relasize = 9720,
modptr = 0x0,
ddbsymtab = 0xfffffe0001534000,
ddbsymcnt = 349,
ddbstrtab = 0xfffffe0001539000 "",
ddbstrcnt = 3865,
symbase = 0xfffffe0001534000 "",
strbase = 0xfffffe0001539000 "",
The klds produced by the new linker look like this:
osf1.ko: file format elf64-alpha
Sections:
Idx Name Size VMA LMA File off Algn Flags
0 .hash 00000d70 00000000000000e8 00000000000000e8 000000e8 2**3 CONTENTS, ALLOC, LOAD, READONLY, DATA
1 .dynsym 000015a8 0000000000000e58 0000000000000e58 00000e58 2**3 CONTENTS, ALLOC, LOAD, READONLY, DATA
2 .dynstr 0000075a 0000000000002400 0000000000002400 00002400 2**0 CONTENTS, ALLOC, LOAD, READONLY, DATA
3 .rela.data 00001e60 0000000000002b60 0000000000002b60 00002b60 2**3 CONTENTS, ALLOC, LOAD, READONLY, DATA
4 .relaset_modmetadata_set 00000078 00000000000049c0 00000000000049c0 000049c0 2**3 CONTENTS, ALLOC, LOAD, READONLY, DATA
5 .relaset_sysinit_set 00000018 0000000000004a38 0000000000004a38 00004a38 2**3 CONTENTS, ALLOC, LOAD, READONLY, DATA
6 .rela.got 00000708 0000000000004a50 0000000000004a50 00004a50 2**3 CONTENTS, ALLOC, LOAD, READONLY, DATA
7 .rela.plt 00000870 0000000000005158 0000000000005158 00005158 2**3 CONTENTS, ALLOC, LOAD, READONLY, DATA
8 .text 00005be0 00000000000059e0 00000000000059e0 000059e0 2**5 CONTENTS, ALLOC, LOAD, READONLY, CODE
9 .rodata 00000883 000000000000b5c0 000000000000b5c0 0000b5c0 2**3 CONTENTS, ALLOC, LOAD, READONLY, DATA
10 set_modmetadata_set 00000028 000000000000be48 000000000000be48 0000be48 2**3 CONTENTS, ALLOC, LOAD, READONLY, DATA
11 set_sysinit_set 00000008 000000000000be70 000000000000be70 0000be70 2**3 CONTENTS, ALLOC, LOAD, READONLY, DATA
12 .data 00001450 000000000001be78 000000000001be78 0000be78 2**3 CONTENTS, ALLOC, LOAD, DATA
13 .dynamic 00000130 000000000001d2c8 000000000001d2c8 0000d2c8 2**3 CONTENTS, ALLOC, LOAD, DATA
14 .plt 00000458 000000000001d3f8 000000000001d3f8 0000d3f8 2**3 CONTENTS, ALLOC, LOAD, CODE
15 .got 00000528 000000000001d850 000000000001d850 0000d850 2**3 CONTENTS, ALLOC, LOAD, DATA
16 .sbss 00000000 000000000001dd78 000000000001dd78 0000dd78 2**0 CONTENTS, SMALL_DATA
17 .bss 00000000 000000000001dd78 000000000001dd78 0000dd78 2**0 ALLOC
18 .comment 0000010a 0000000000000000 0000000000000000 0000dd78 2**0 CONTENTS, READONLY
19 .debug_line 00000129 0000000000000000 0000000000000000 0000de82 2**0 CONTENTS, READONLY, DEBUGGING
20 .note 0000008c 0000000000000000 0000000000000000 0000dfab 2**0 CONTENTS, READONLY
And those produced by the old linker look like this:
osf1.ko.works: file format elf64-alpha
Sections:
Idx Name Size VMA LMA File off Algn Flags
0 .hash 00000d70 00000000000000e8 00000000000000e8 000000e8 2**3 CONTENTS, ALLOC, LOAD, READONLY, DATA
1 .dynsym 000015a8 0000000000000e58 0000000000000e58 00000e58 2**3 CONTENTS, ALLOC, LOAD, READONLY, DATA
2 .dynstr 000007d3 0000000000002400 0000000000002400 00002400 2**0 CONTENTS, ALLOC, LOAD, READONLY, DATA
3 .rela.data 00001e60 0000000000002bd8 0000000000002bd8 00002bd8 2**3 CONTENTS, ALLOC, LOAD, READONLY, DATA
4 .relaset_modmetadata_set 00000078 0000000000004a38 0000000000004a38 00004a38 2**3 CONTENTS, ALLOC, LOAD, READONLY, DATA
5 .relaset_sysinit_set 00000018 0000000000004ab0 0000000000004ab0 00004ab0 2**3 CONTENTS, ALLOC, LOAD, READONLY, DATA
6 .rela.got 00000708 0000000000004ac8 0000000000004ac8 00004ac8 2**3 CONTENTS, ALLOC, LOAD, READONLY, DATA
7 .rela.plt 00000870 00000000000051d0 00000000000051d0 000051d0 2**3 CONTENTS, ALLOC, LOAD, READONLY, DATA
8 .text 00005be0 0000000000005a40 0000000000005a40 00005a40 2**5 CONTENTS, ALLOC, LOAD, READONLY, CODE
9 .rodata 00000883 000000000000b620 000000000000b620 0000b620 2**3 CONTENTS, ALLOC, LOAD, READONLY, DATA
10 set_modmetadata_set 00000028 000000000000bea8 000000000000bea8 0000bea8 2**3 CONTENTS, ALLOC, LOAD, READONLY, DATA
11 set_sysinit_set 00000008 000000000000bed0 000000000000bed0 0000bed0 2**3 CONTENTS, ALLOC, LOAD, READONLY, DATA
12 .data 00001450 000000000001bed8 000000000001bed8 0000bed8 2**3 CONTENTS, ALLOC, LOAD, DATA
13 .plt 00000458 000000000001d328 000000000001d328 0000d328 2**3 CONTENTS, ALLOC, LOAD, CODE
14 .got 00000528 000000000001d780 000000000001d780 0000d780 2**3 CONTENTS, ALLOC, LOAD, DATA
15 .dynamic 000000e0 000000000001dca8 000000000001dca8 0000dca8 2**3 CONTENTS, ALLOC, LOAD, DATA
16 .sbss 00000000 000000000001dd88 000000000001dd88 0000dd88 2**0 CONTENTS, SMALL_DATA
17 .bss 00000000 000000000001dd88 000000000001dd88 0000dd88 2**0 ALLOC
18 .comment 0000010a 0000000000000000 0000000000000000 0000dd88 2**0 CONTENTS, READONLY
19 .debug_line 00000129 0000000000000000 0000000000000000 0000de92 2**0 CONTENTS, READONLY, DEBUGGING
20 .note 0000008c 0000000000000000 0000000000000000 0000dfbb 2**0 CONTENTS, READONLY
Do you have any feeling for what might be going wrong here?
Thanks,
Drew
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-alpha" in the body of the message
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?15476.25675.437556.224218>
