BUILD: thread: limit the libgcc_s workaround to glibc only
authorWilly Tarreau <w@1wt.eu>
Wed, 2 Sep 2020 07:53:47 +0000 (09:53 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Fri, 11 Sep 2020 08:04:13 +0000 (10:04 +0200)
Previous commit 77b98220e ("BUG/MINOR: threads: work around a libgcc_s
issue with chrooting") broke the build on cygwin. I didn't even know we
supported threads on cygwin. But the point is that it's actually the
glibc-based libpthread which requires libgcc_s, so in absence of other
reports we should not apply the workaround on other libraries.

This should be backported along with the aforementioned patch.

(cherry picked from commit 06a1806083dd9f0d21e045baad4c61559211f956)
Signed-off-by: Willy Tarreau <w@1wt.eu>
(cherry picked from commit e6a4e318db089df3dbadcbed286ed12a3742a7e5)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>

src/hathreads.c

index 5bdb618..e09f187 100644 (file)
@@ -201,7 +201,7 @@ static void __hathreads_init(void)
                exit(1);
        }
 
-#if defined(__GNUC__) && (__GNUC__ >= 3) && !defined(__clang__)
+#if defined(__GNUC__) && (__GNUC__ >= 3) && defined(__GNU_LIBRARY__) && !defined(__clang__)
        /* make sure libgcc_s is already loaded, because pthread_exit() may
         * may need it on exit after the chroot! _Unwind_Find_FDE() is defined
         * there since gcc 3.0, has no side effect, doesn't take any argument