aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2024-12-18 18:58:34 +0800
committerH.J. Lu <hjl.tools@gmail.com>2024-12-21 05:24:07 +0800
commit034cd675286db07110a773fdb6a857285485d2d4 (patch)
tree7c7d90d534fae490f07c2091e8da69340b9b1073
parent6025b399c735d3d9f27472b11fad2cab4f62aeb5 (diff)
downloadglibc-034cd675286db07110a773fdb6a857285485d2d4.zip
glibc-034cd675286db07110a773fdb6a857285485d2d4.tar.gz
glibc-034cd675286db07110a773fdb6a857285485d2d4.tar.bz2
Don't use glibc <tgmath.h> when testing with Clang
Clang has its own <tgmath.h> and doesn't use <tgmath.h> from glibc. Pass "-I." to compiler only if $($(<F)-no-include-dot) are undefined. Define it to yes for tgmath tests when testing with Clang. Signed-off-by: H.J. Lu <hjl.tools@gmail.com> Reviewed-by: Sam James <sam@gentoo.org>
-rw-r--r--Makeconfig3
-rw-r--r--include/tgmath.h8
-rw-r--r--math/Makefile24
3 files changed, 27 insertions, 8 deletions
diff --git a/Makeconfig b/Makeconfig
index d33369e..02a3d37 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -1031,7 +1031,8 @@ endif
# current directory.
+includes = -I$(..)include $(if $(subdir),$(objpfx:%/=-I%)) \
$(+sysdep-includes) $(includes) \
- $(patsubst %/,-I%,$(..)) $(libio-include) -I. $(sysincludes)
+ $(patsubst %/,-I%,$(..)) $(libio-include) \
+ $(if $($(<F)-no-include-dot),,-I.) $(sysincludes)
# Since libio has several internal header files, we use a -I instead
# of many little headers in the include directory.
diff --git a/include/tgmath.h b/include/tgmath.h
index 3a2c4a2..1e81bcb 100644
--- a/include/tgmath.h
+++ b/include/tgmath.h
@@ -1 +1,7 @@
-#include <math/tgmath.h>
+/* NB: Clang has its own <tgmath.h> and doesn't use <tgmath.h> from
+ glibc. */
+#if defined _ISOMAC && defined __clang__
+# include_next <tgmath.h>
+#else
+# include <math/tgmath.h>
+#endif
diff --git a/math/Makefile b/math/Makefile
index 36fe5c2..d262de8 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -510,7 +510,6 @@ tests = \
$(tests-static) \
bug-nextafter \
bug-nexttoward \
- bug-tgmath1 \
test-ceil-except-2 \
test-femode \
test-femode-traps \
@@ -548,15 +547,18 @@ tests = \
test-signgam-ullong \
test-signgam-ullong-init \
test-snan \
- test-tgmath \
- test-tgmath-int \
- test-tgmath-ret \
- test-tgmath2 \
test-trunc-except-2 \
tst-CMPLX \
tst-CMPLX2 \
tst-definitions \
# tests
+tests-tgmath = \
+ bug-tgmath1 \
+ test-tgmath \
+ test-tgmath-int \
+ test-tgmath-ret \
+ test-tgmath2 \
+ # tests-tgmath
ifneq ($(config-cflags-signaling-nans),)
tests += \
test-fe-snans-always-signal \
@@ -1026,7 +1028,9 @@ tgmath3-macros = \
ufromfpx \
# tgmath3-macros
tgmath3-macro-tests = $(addprefix test-tgmath3-,$(tgmath3-macros))
-tests += $(tgmath3-macro-tests)
+tests-tgmath += $(tgmath3-macro-tests)
+tests += $(tests-tgmath)
+
generated += $(addsuffix .c,$(tgmath3-macro-tests))
$(tgmath3-macro-tests:%=$(objpfx)%.o): CFLAGS += -fno-builtin
@@ -1043,6 +1047,14 @@ $(objpfx)test-tgmath3-macro-list.out: gen-tgmath-tests.py
$(PYTHON) $< check-list $(tgmath3-macros) > $@; \
$(evaluate-test)
+ifeq ($(have-test-clang),yes)
+# NB: Clang has its own <tgmath.h> and doesn't use <tgmath.h> from glibc.
+define no-include
+$(1).c-no-include-dot = yes
+endef
+$(foreach m,$(tests-tgmath),$(eval $(call no-include,$(m))))
+endif
+
libm-test-fast-math-cflags = -fno-builtin -D__FAST_MATH__ -DTEST_FAST_MATH
libm-test-vec-cflags = $(libm-test-fast-math-cflags) -fno-inline \
-ffloat-store -D_OPENMP=201307 -Wno-unknown-pragmas