tech-toolchain archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
NetBSD/usermode link issues
Dear folks,
as you might have read on tech-kern, I'm still having trouble getting the
./build.sh built kernel to run. On closer inspection, i stumbled on this
two things.
For one, why are the crt*.o placed at this address? This is what currently
limits the amount of memory NetBSD/usermode can play with for it gives an
linker error when i put the kernel up higher.
Secondly, the init and finish code are different. The tools variant forgets to
put some code in there and it thus crashes on uninitialized code at startup.
When I go to the build directory and force a relink of `netbsd' by removing it
and typing `make' it creates the working copy.
I've added a dump of the two heads and tails to make clear what I found.
Any comments or reactions are welcome! Thanks in advance,
Reinoud
netbsd:     file format elf64-x86-64
Disassembly of section .text:
0000000070000000 <__start>:
    70000000:	48 83 e4 f0          	and    $0xfffffffffffffff0,%rsp
    70000004:	48 83 ec 08          	sub    $0x8,%rsp
    70000008:	48 89 d7             	mov    %rdx,%rdi
    7000000b:	48 89 ce             	mov    %rcx,%rsi
    7000000e:	48 89 da             	mov    %rbx,%rdx
....
0000000070266a6a <__libc_thr_init_stub>:
    70266a6a:	c3                   	retq   
Disassembly of section .init:
00000000004001c0 <_init-0x10>:
  4001c0:	e8 07 00 c0 6f       	callq  700001cc <___start+0x172>
  4001c5:	66 2e 0f 1f 84 00 00 	nopw   %cs:0x0(%rax,%rax,1)
  4001cc:	00 00 00 
  4001cf:	90                   	nop
00000000004001d0 <_init>:
  4001d0:	48 83 ec 08          	sub    $0x8,%rsp
Disassembly of section .fini:
0000000070266a70 <_fini-0x10>:
    70266a70:	e8 16 97 d9 ff       	callq  7000018b <___start+0x131>
    70266a75:	66 2e 0f 1f 84 00 00 	nopw   %cs:0x0(%rax,%rax,1)
    70266a7c:	00 00 00 
    70266a7f:	90                   	nop
0000000070266a80 <_fini>:
    70266a80:	48 83 ec 08          	sub    $0x8,%rsp
netbsd:     file format elf64-x86-64
Disassembly of section .text:
0000000070000000 <__start>:
    70000000:	48 83 e4 f0          	and    $0xfffffffffffffff0,%rsp
    70000004:	48 83 ec 08          	sub    $0x8,%rsp
    70000008:	48 89 d7             	mov    %rdx,%rdi
    7000000b:	48 89 ce             	mov    %rcx,%rsi
    7000000e:	48 89 da             	mov    %rbx,%rdx
....
000000007026cfc6 <__libc_thr_init_stub>:
    7026cfc6:	c3                   	retq   
Disassembly of section .init:
0000000000400150 <_init>:
  400150:	48 83 ec 08          	sub    $0x8,%rsp
  400154:	e8 22 00 c0 6f       	callq  7000017b <___start+0x165>
  400159:	48 83 c4 08          	add    $0x8,%rsp
  40015d:	c3                   	retq   
Disassembly of section .fini:
000000007026cfd0 <_fini>:
    7026cfd0:	48 83 ec 08          	sub    $0x8,%rsp
    7026cfd4:	e8 61 31 d9 ff       	callq  7000013a <___start+0x124>
    7026cfd9:	48 83 c4 08          	add    $0x8,%rsp
    7026cfdd:	c3                   	retq   
Home |
Main Index |
Thread Index |
Old Index