kexec-tools built with musl-libc fail to load kernel

Yan Yin yinyan192 at
Fri Jun 12 00:22:38 PDT 2015

Hi experts,

I'm trying to get  kexec 2.0.9 built with musl-libc to work with my
customized kernel, but failed with no luck:

the error for i586 is:
my_load:667: do
Could not find a free area of memory of 0x9000 bytes...
locate_hole failed

the error for x86_64 is:
Overlapping memory segments at 0x400000
sort_segments failed
Nothing has been loaded!

I did many tests on various combinations, and find below configs work:
* kexec.musl  can work well with Ubuntu kernel, but can't work with my kernel;
* kexec.eglibc can work well with both Ubuntu kernel and my kernel;

The issue seems to be related with both kernel/libc, I'm curious on:
1) what must be in kernel for kexec to work? it's a trimmed down
kernel for embedded devices, so I may turn off something wrongly.
(however this can't explain why kexec.eglibc works with the same
trimmed kernel)
2) what conditions must be meet in libc/compiler for kexec to work?

Thanks for your help in advance!

1) kexec.eglibc is built manually in Ubuntu 14.04, v2.0.9;
2) kexec.musl is built using Yocto recipe, v2.0.9
3) I tried both static link and dynamic link, same results.
4) Ubuntu kernel is vmlinuz-3.13.0-32-generic, uLinux kernel is bzImage--3.19


More information about the kexec mailing list