-
-
Notifications
You must be signed in to change notification settings - Fork 33k
Closed
Description
Version
24.7.0
Platform
NetBSD 11.99.1/x86_64
Subsystem
No response
What steps will reproduce the bug?
When building nodejs 24.7.0 on NetBSD, I see:
In file included from ../deps/v8/include/v8-platform.h:8,
from ../src/tracing/traced_value.h:8,
from ../src/tracing/traced_value.cc:5:
../src/tracing/traced_value.cc: In function 'std::string node::tracing::{anonymous}::DoubleToCString(double)':
../src/tracing/traced_value.cc:90:33: error: expected unqualified-id before '(' token
90 | switch (FPCLASSIFY_NAMESPACE::fpclassify(v)) {
| ^~~~~~~~~~
The problem is that fpclassify
is a macro in math.h
:
#define fpclassify(__x) __fpmacro_unary_floating(fpclassify, __x)
I use this patch as a workaround:
--- src/tracing/traced_value.cc.orig 2025-09-01 20:45:44.230556337 +0000
+++ src/tracing/traced_value.cc
@@ -87,7 +87,11 @@ std::string EscapeString(const char* val
}
std::string DoubleToCString(double v) {
+#if defined(__NetBSD__)
+ switch (fpclassify(v)) {
+#else
switch (FPCLASSIFY_NAMESPACE::fpclassify(v)) {
+#endif
case FP_NAN: return "\"NaN\"";
case FP_INFINITE: return (v < 0.0 ? "\"-Infinity\"" : "\"Infinity\"");
case FP_ZERO: return "0";
Adding || defined(NetBSD)
to the FPCLASSIFY_NAMESPACE
definition block at the top doesn't work because then it's still ::fpclassify
which won't work with the macro.
If this is not allowed to be a macro and I should file a bug report with NetBSD, please let me know.
Thanks!
How often does it reproduce? Is there a required condition?
always
What is the expected behavior? Why is that the expected behavior?
see above
What do you see instead?
see above
Additional information
No response
Metadata
Metadata
Assignees
Labels
No labels