[FreeVMS] L4Ka does not boot if built by gcc 4.8
BERTRAND Joël
joel.bertrand at systella.fr
Sun Dec 22 17:00:14 CET 2013
Hello,
FreeVMS is running as a roottask over L4Ka. I haven't built a new
microkernel for my patch to build L4Ka with gcc 4.7. Last week,
Alessandro Sangiuliano has reported on FreeVMS mailing list that L4Ka
does not work as expected when its build with gcc 4.8.
Thus, I have tried to build L4 with gcc 4.8. Without any result. With
the same options, L4Ka runs as expected when it is built by gcc 4.7 and
does not when it is built by gcc 4.8. Just after kickstart, I obtain :
fatal: Trying to execute code outside RAM or ROM at 0x00000000c062e730
For information :
riemann:[~/openvms/mnt/boot] > readelf -l x86-kernel-gcc-48
Type de fichier ELF est EXEC (fichier exécutable)
Point d'entrée 0xd1a000
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
0x0000000000050580 0x0000000000050580 RWE 20
LOAD 0x0000000000050720 0xffffffffc0800000 0x0000000000800000
0x0000000000000903 0x0000000000000903 R E 10
LOAD 0x0000000000052000 0xffffffffc0a00000 0x0000000000a00000
0x00000000000051b4 0x00000000000051b4 RW 1000
LOAD 0x0000000000058000 0xffffffffc0c00000 0x0000000000c00000
0x0000000000019a50 0x0000000000019a50 RWE 1000
LOAD 0x0000000000072000 0x0000000000d1a000 0x0000000000d1a000
0x0000000000008dd8 0x0000000000008ee0 RWE 1000
GNU_STACK 0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000000 0x0000000000000000 RWE 10
Section à la projection de segement:
Sections de segment...
00 .text .text._ZN9x86_mmu_t13has_long_modeEv .text.startup
.text._Z19__tbuf_record_eventmmPKcz .text._ZN5tcb_t16init_saved_stateEv
.text._ZN13exregs_ctrl_t6stringEv .text._Z15get_cpu_mailboxt
.text._Z12xcpu_requesttPFvP14cpu_mb_entry_tEP5tcb_tmmmmmmmm
.text._ZN15hs_sched_ktcb_t16delay_preemptionEP5tcb_t
.text._ZN11scheduler_t8scheduleEv
.text._ZN11scheduler_t8scheduleEP5tcb_th
.text._ZN14thread_state_t6stringEv .text._ZN10spinlock_t4lockEv
.text._ZN5tcb_t17get_saved_partnerEm .text._ZN5tcb_t6get_mrEm
.text._ZN5tcb_t6set_mrEmm
.text._Z12xcpu_requesttPFvP14cpu_mb_entry_tEP5tcb_tmmm
.text._ZN14hs_scheduler_t15dequeue_timeoutEP5tcb_t
.text._ZN12sched_ktcb_t11set_timeoutE6time_t
.text._ZN11scheduler_t8scheduleEP5tcb_tS1_h
.text._ZN14hs_scheduler_t15enqueue_timeoutEP5tcb_t
.text._ZN13smp_requeue_t12enqueue_headEP5tcb_t .text._ZN5tcb_t7set_cpuEt
.rodata .kip
01 .syscalls
02 .cpulocal
03 .data .kdebug .sets
04 .init .bss._ZZN14tbuf_handler_t9dump_tbufEmmmbE6tb_str
05
riemann:[~/openvms/mnt/boot] >
Fault comes from .text._ZN9x86_mmu_t13has_long_modeEv address entry
point. When kernel is built with gcc 4.7, executable does not contains
this segment. I don't understand why gcc produces this segment as this
function is inlined in source code.
Any idea ?
Best regards,
JKB
More information about the FreeVMS
mailing list