[FreeVMS] build problem
BERTRAND Joël
joel.bertrand at systella.fr
Tue Dec 17 10:19:41 CET 2013
Alessandro Sangiuliano a écrit :
> This evening I cloned the L4Ka git repo, where pistachio resides.
>
> I built it, set up an image with grub2, kickstart, sigma0 and pingpong,
> but I get the same error that I get with FreeVMS:
You cannot obtain another output with L4Ka as last important L4Ka patch
was sent by me ;-)
> qemu: fatal: Trying to execute code outside RAM or ROM at 0x00000000c061e950
>
> I’m wronging something, but still not discovered what.
Can you answer my question ? I don't know what program tries to execute
code outside memory.
I have checked that kickstart works fine under qemu. It detects memory
without error.
When you start qemu with :
qemu-system-x86_64 -cpu kvm64 -hdc freevms.img -smp 2 -serial stdio -m 128M
you should obtain 'two' consoles :
- 1st : graphical one
- 2nd : serial line
Both are driven by libearly, but the firts lines have to be different.
Indeed, kickstart prints information on screen and L4/X2 on serial line.
Can you confirm that you can read on console :
KickStart 0.12.56
Detected multiboot compliant loader
Kernel ....
...
sigma0 ...
...
roottask ...
After that, you should obtain on serial line :
L4Ka::Pistachio - built on Jun 23 2013 22:23:41 by bertrand at riemann
using gcc version 4.7.3
(with your build information of course)
Now, L4/X2 is running and lanching sigma0 (sigma0 has no output) and
roottask (freevms.sys) that prints all other informations.
When do you obtain your error ? This information is very important.
Indeed, kickstart should relocated kernel. For example :
riemann:[~/openvms/mnt/boot] > readelf -l x86-kernel
Type de fichier ELF est EXEC (fichier exécutable)
Point d'entrée 0xd17000
Il y a 6 en-têtes de programme, débutant à l'adresse de décalage64
Type de fichier ELF est EXEC (fichier exécutable)
Point d'entrée 0xd17000
Il y a 6 en-têtes de programme, débutant à l'adresse de décalage64
En-têtes de programme:
Type Décalage Adr.virt Adr.phys.
Taille fichier Taille mémoire Fanion Alignement
LOAD 0x00000000000001a0 0xffffffffc0600000 0x0000000000600000
0x000000000002d560 0x000000000002d560 RWE 20
LOAD 0x000000000002d700 0xffffffffc0800000 0x0000000000800000
0x0000000000000903 0x0000000000000903 R E 10
LOAD 0x000000000002f000 0xffffffffc0a00000 0x0000000000a00000
0x00000000000051b4 0x00000000000051b4 RW 1000
LOAD 0x0000000000035000 0xffffffffc0c00000 0x0000000000c00000
0x0000000000016450 0x0000000000016450 RWE 1000
LOAD 0x000000000004c000 0x0000000000d17000 0x0000000000d17000
0x0000000000007cf0 0x0000000000007cf0 RWE 1000
GNU_STACK 0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000000 0x0000000000000000 RWE 8
and kickstart should indicates the same informations :
... -> 0x00600000-0x0062d560
... -> 0x00800000-0x00800903
...
Please note that Adr.phys. always should be accessible (in the first
128 MB in your case). If not, your linker script is broken.
Can you send here ELF header of your kernel ?
Some addresses are configured by :
cd $(BUILDDIR)/kernel && $(SRCDIR)/kernel/configure \
--with-kickstart-linkbase=0x00100000 \
--with-s0-linkbase=0x00080000 \
--with-roottask-linkbase=0x00200000
Regards,
JKB
More information about the FreeVMS
mailing list