[yocto] gdb built with musl libc segfault
Lluis Campos
lluis.campos at northern.tech
Thu Apr 4 03:58:05 PDT 2019
On 03.04.2019 18:59, Khem Raj wrote:
> On Tue, Apr 2, 2019 at 4:51 AM Lluis Campos <lluis.campos at northern.tech> wrote:
>> Hi all,
>>
>> This is my very first question in the Yocto mailing list. Very exited!
>> Please let me know if I should use other list for this.
>>
>>
>> I am building an image using musl libc instead of gnu libc. I am not
>> using yocto-tiny distro, instead I achieve this by setting on my local.conf:
>>
>> TCLIBC = "musl"
>>
>>
>> My app (mender) got a segfault just starting. See output from strace:
>>
>> root at raspberrypi3:~# strace mender
>> execve("/usr/bin/mender", ["mender"], 0x7ee65e10 /* 13 vars */) = 0
>> set_tls(0x76f1bffc) = 0
>> set_tid_address(0x76f1bfa0) = 3020
>> --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_ACCERR, si_addr=0x530bc8} ---
>> +++ killed by SIGSEGV +++
>> Segmentation fault
>>
>>
>> To be able to debug the process, I added gdb to my image adding to my
>> local.conf:
>>
>> CORE_IMAGE_EXTRA_INSTALL += "packagegroup-core-buildessential
>> packagegroup-core-tools-debug"
>>
>>
>> Then, ironically, gdb itself also segfaults:
>>
>> root at raspberrypi3:~# strace gdb 2>&1 | tail
>> fcntl64(3, F_SETFD, FD_CLOEXEC) = 0
>> getdents64(3, /* 6 entries */, 2048) = 144
>> getdents64(3, /* 0 entries */, 2048) = 0
>> close(3) = 0
>> ioctl(0, TIOCGWINSZ, {ws_row=25, ws_col=74, ws_xpixel=0, ws_ypixel=0}) = 0
>> getcwd("/home/root", 4096) = 11
>> access("/usr/local/bin/gdb", X_OK) = -1 ENOENT (No such file or
>> directory)
>> access("/usr/bin/gdb", X_OK) = 0
>> --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x7e35aff0} ---
>> +++ killed by SIGSEGV +++
>>
>>
>> So, what is going on here? My guess is that some recipes are being
>> wrongly linked with gnu libc instead of musl, and then cannot run in my
>> device.
>>
>> Any ideas on how to debug the issue?
>>
> We have switched to using PIE by default in last few releases, can you
> try master but comment out
> require conf/distro/include/security_flags.inc
> in your distro conf file.
Hi Khem,
Thanks for your help.
Commenting out this line seems to work!
I will try to figure out exactly which exact option is causing the issue.
>
>> Thanks!
>>
>>
>> Lluís Campos
>> mender.io
>> Northen Tech
>>
>> --
>> _______________________________________________
>> yocto mailing list
>> yocto at yoctoproject.org
>> https://lists.yoctoproject.org/listinfo/yocto
More information about the yocto
mailing list