mirror of
git://sourceware.org/git/glibc.git
synced 2026-09-08 23:58:31 +08:00
The `have-cc-with-libunwind` check (and its corresponding macro HAVE_CC_WITH_LIBUNWIND) was historically specific to IA64, intended to supplement libgcc with libunwind. Since this logic is unused in current GCC configurations, this patch repurposes it to support clang-based toolchains that utilize LLVM's libunwind instead of libgcc_s. The configure script now detects if the compiler natively supports unwinding via `-lunwind`. Additionally, when this mode is enabled, `-lclang_rt.builtins` is explicitly added to the `libgcc_eh` definition. This is necessary because `links-dso-program` otherwise fails to link due to a missing `__gcc_personality_v0` symbol. It appears that clang does not automatically link the builtins providing this personality routine when `rlink-path` is actively used during the build. Reviewed-by: Sam James <sam@gentoo.org>
This subdirectory contains infrastructure which is not put into installed libraries, but may be linked into programs (installed or not) and tests. # Error-checking wrappers These wrappers test for error return codes an terminate the process on error. They are declared in these header files: * support.h * xsignal.h * xthread.h * xtime.h In general, new wrappers should be added to support.h if possible. However, support.h must remain fully compatible with C90 and therefore cannot include headers which use identifiers not reserved in C90. If the wrappers need additional types, additional headers such as signal.h need to be introduced. # Test framework The test framework provides a main program for tests, including a timeout for hanging tests. See README-testing.c for a minimal example, and test-driver.c for details how to use it. The following header files provide related declarations: * check.h * temp_file.h * test-driver.h For tests that make use of struct timespec, the following header files contain additional macros and helper functions: * timespec.h