Skip to content

Commit 4488716

Browse files
committed
[flang] Tighten requirements on some glibc float128 functions
j0l, j1l, jnl, y0l, y1l and ynl are glibc extensions rather than standard POSIX functions, and so are not available in every Linux libc. This patch checks if __GLIBC__ and _GNU_SOURCE are defined before using these functions. This patch allows the float128 runtime to build with musl libc on Linux.
1 parent be9461c commit 4488716

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

flang/runtime/Float128Math/math-entries.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -185,9 +185,6 @@ DEFINE_SIMPLE_ALIAS(Hypot, std::hypot)
185185
DEFINE_SIMPLE_ALIAS(Ilogb, std::ilogb)
186186
DEFINE_SIMPLE_ALIAS(Isinf, std::isinf)
187187
DEFINE_SIMPLE_ALIAS(Isnan, std::isnan)
188-
DEFINE_SIMPLE_ALIAS(J0, j0l)
189-
DEFINE_SIMPLE_ALIAS(J1, j1l)
190-
DEFINE_SIMPLE_ALIAS(Jn, jnl)
191188
DEFINE_SIMPLE_ALIAS(Ldexp, std::ldexp)
192189
DEFINE_SIMPLE_ALIAS(Lgamma, std::lgamma)
193190
DEFINE_SIMPLE_ALIAS(Llround, std::llround)
@@ -204,9 +201,15 @@ DEFINE_SIMPLE_ALIAS(Tan, std::tan)
204201
DEFINE_SIMPLE_ALIAS(Tanh, std::tanh)
205202
DEFINE_SIMPLE_ALIAS(Tgamma, std::tgamma)
206203
DEFINE_SIMPLE_ALIAS(Trunc, std::trunc)
204+
205+
#if defined(__GLIBC__) && defined(_GNU_SOURCE)
206+
DEFINE_SIMPLE_ALIAS(J0, j0l)
207+
DEFINE_SIMPLE_ALIAS(J1, j1l)
208+
DEFINE_SIMPLE_ALIAS(Jn, jnl)
207209
DEFINE_SIMPLE_ALIAS(Y0, y0l)
208210
DEFINE_SIMPLE_ALIAS(Y1, y1l)
209211
DEFINE_SIMPLE_ALIAS(Yn, ynl)
212+
#endif
210213

211214
// Use numeric_limits to produce infinity of the right type.
212215
#define F128_RT_INFINITY \

0 commit comments

Comments
 (0)