Oleg Endo a écrit :
On Sat, 2013-06-22 at 14:32 +0200, BERTRAND Joël wrote:
Hello,
I have bissected the code and found the faulty .o. I have attached
assembly output. idt.gcc46.s is the good one. If L4 is linked with
idt.gcc.47.s, it only reboots.
The code of 4.6 and 4.7 seems to be pretty much the same, except for
differences in the register allocations.
(I removed all .cfi lines before doing a diff)
However, maybe the following difference ...
4.6:
.section .ctors.10003,"aw",@progbits
.align 8
.quad _GLOBAL__sub_I.55532_idt
...
4.7:
.section .init_array.55532,"aw"
.align 8
.quad _GLOBAL__sub_I.55532_idt
(different sections being used)
... triggers another problem somewhere else? Maybe .init_array is not
handled by the startup code or something like that? I'm just
guessing...
Maybe. But if I build all but idt.c with gcc 4.7 and only idt.c with
gcc 4.6, I obtain a running kernel.
Regards,
JKB