śr., 13 lis 2019 o 16:04 Mark Hatle <[email protected]> napisał(a): > > > > 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. >
There is no real libpthread package. There's libpthread-stubs but it only contains pkgconfig files. The actual pthread shared library is in libc6 package and its inclusion doesn't seem to be conditional. In that case - isn't it better to just make libgcc_s.so.1 part of libc6? Bart > --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 [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
