On 11/13/19 2:34 AM, Bartosz Golaszewski wrote:
> 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
Fix for this would be to declare a runtime-dependency on libgcc_s.so.1 in the
glibc libpthread package.
--Mark
> 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
>
--
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core