]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
support: Use unwinder in links-dso-program-c only with libgcc_s
authorFlorian Weimer <fweimer@redhat.com>
Wed, 26 Mar 2025 16:46:40 +0000 (17:46 +0100)
committerFlorian Weimer <fweimer@redhat.com>
Wed, 26 Mar 2025 16:46:40 +0000 (17:46 +0100)
Do not build links-dso-program-c with exception (unwinding) support
if libgcc_s is not available.  In this case, the unwinder may be
part of libgcc.a or libgcc_eh.a, depending on how GCC was built.
If the unwinder is in libgcc_eh.a only, linking links-dso-program-c
failed before this change.  After this change, the exception
handling landing pad is only generated if libgcc_s available,
avoiding an undefined _Unwind_Resume (or equivalent) symbol
reference in the non-libgcc_s case.

Fixes commit ffd36cc27407003a6f9efcb9c16370e3435c5b1d ("support: Use
unwinder in links-dso-program-c only with libgcc_s") and
commit 5dfbc3c43ecc1bcfc760a032c91bb002660051bc ("support: Link
links-dso-program-c with libgcc_s only if available").

support/Makefile

index ea7b4cd4a01137c2d98d7cb020351e6fe401183a..dfe8e547f650c84ff175cd94704922a20729b01f 100644 (file)
@@ -281,9 +281,9 @@ CFLAGS-temp_file.c += -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64
 
 ifeq (,$(CXX))
 LINKS_DSO_PROGRAM = links-dso-program-c
-CFLAGS-links-dso-program-c.c += -fexceptions
 LDLIBS-links-dso-program-c = -lgcc
 ifeq ($(have-libgcc_s),yes)
+CFLAGS-links-dso-program-c.c += -fexceptions
 LDLIBS-links-dso-program-c += -lgcc_s $(libunwind)
 endif
 else