Re: [PATCH v2] async_die_is_recursing: work around GCC v11.x issue on Fedora
From: Junio C Hamano <hidden>
Date: 2021-11-04 06:36:02
"Victoria Dye via GitGitGadget" [off-list ref] writes:
From: Victoria Dye <redacted> This fix corrects an issue found in the `dockerized(pedantic, fedora)` CI build, first appearing after the introduction of a new version of the Fedora docker image version. This image includes a version of `glibc` with the attribute `__attr_access_none` added to `pthread_setspecific` [1], the implementation of which only exists for GCC 11.X - the version included in the Fedora image. The attribute requires that the pointer provided in the second argument of `pthread_getspecific` must, if not NULL, be a pointer to a valid object. In the usage in `async_die_is_recursing`, `(void *)1` is not valid, causing the error. This fix imitates a workaround added in SELinux [2] by using the pointer to the static `async_die_counter` itself as the second argument to `pthread_setspecific`. This guaranteed non-NULL, valid pointer matches the intent of the current usage while not triggering the build error. [1] https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=a1561c3bbe8 [2] https://lore.kernel.org/all/20211021140519.6593-1-cgzones@googlemail.com/ Co-authored-by: Johannes Schindelin [off-list ref] Signed-off-by: Victoria Dye <redacted> ---
Looks like they timed their update to disrupt us most effectively, but we are gifted with watchful eyes and competent hands ;-). Thanks for coming up with a clearly written description and a clean fix so quickly. Will apply.