[yocto] gdb built with musl libc segfault

Khem Raj raj.khem at gmail.com
Wed Apr 3 13:21:27 PDT 2019


On Wed, Apr 3, 2019 at 9:59 AM Khem Raj <raj.khem at gmail.com> 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.
>

I built a fresh image using yoe distro master today and gdb seems to
work fine on rpi3/musl
https://github.com/YoeDistro/yoe-distro


> > 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