[OE-core] pthreads should rdepend on libgcc

Bartosz Golaszewski brgl at bgdev.pl
Wed Nov 13 08:34:12 UTC 2019


This isn't a patch as I'm not sure how to fix the right way it but it
seems to my that every program that calls pthread_exit() indirectly
rdepends on libgcc_s.so.1 being installed in the system (at least when
using glibc).

This is because the implementation of __pthread_exit() in glibc calls
pthread_cancel() which leads to pthread_cancel_init() being called in
which said shared object is being loaded with dlopen(). When this
fails, the program aborts with the following error message:

    libgcc_s.so.1 must be installed for pthread_cancel to work
    Aborted

A quick way of reproducing it is building a core-image-minimal (which
by default doesn't contain libgcc) with the core python3 package and
running the simple python HTTP server:

    python3 -m http.server 8000

Fetching any file will result in the above crash of the python process
when the thread serving the file exits.

I'm not sure if the same issue is present in musl - the implementation
of __pthread_exit() there is different.

Please advise on how to best approach this.

Thanks in advance,
Bartosz Golaszewski


More information about the Openembedded-core mailing list