Closed eloparco closed 1 year ago
Update: if I just remove the std::
prefix for the functions generating the error (for instance std::isnan(f)
), it temporarily solves the problem, but then I bump into a new one:
FAILED: tools/lldb/source/Plugins/ExpressionParser/Clang/CMakeFiles/lldbPluginExpressionParserClang.dir/IRDynamicChecks.cpp.o
/Library/Developer/CommandLineTools/usr/bin/c++ -DGTEST_HAS_RTTI=0 -DHAVE_ROUND -DLLDB_CONFIGURATION_DEBUG -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/Users/eloparco/dev/wasm-micro-runtime/core/deps/llvm/build/tools/lldb/source/Plugins/ExpressionParser/Clang -I/Users/eloparco/dev/wasm-micro-runtime/core/deps/llvm/lldb/source/Plugins/ExpressionParser/Clang -I/Users/eloparco/dev/wasm-micro-runtime/core/deps/llvm/build/tools/lldb/source -I/Users/eloparco/dev/wasm-micro-runtime/core/deps/llvm/lldb/include -I/Users/eloparco/dev/wasm-micro-runtime/core/deps/llvm/build/tools/lldb/include -I/Users/eloparco/dev/wasm-micro-runtime/core/deps/llvm/build/include -I/Users/eloparco/dev/wasm-micro-runtime/core/deps/llvm/llvm/include -I/Users/eloparco/dev/wasm-micro-runtime/core/deps/llvm/llvm/../clang/include -I/Users/eloparco/dev/wasm-micro-runtime/core/deps/llvm/build/tools/lldb/../clang/include -I/opt/homebrew/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/libxml2 -I/Users/eloparco/dev/wasm-micro-runtime/core/deps/llvm/lldb/source/. -I/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -fdiagnostics-color -Wno-deprecated-declarations -Wno-unknown-pragmas -Wno-strict-aliasing -Wno-deprecated-register -Wno-vla-extension -g -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX13.0.sdk -mmacosx-version-min=12.6 -fno-exceptions -fno-rtti -std=c++14 -MD -MT tools/lldb/source/Plugins/ExpressionParser/Clang/CMakeFiles/lldbPluginExpressionParserClang.dir/IRDynamicChecks.cpp.o -MF tools/lldb/source/Plugins/ExpressionParser/Clang/CMakeFiles/lldbPluginExpressionParserClang.dir/IRDynamicChecks.cpp.o.d -o tools/lldb/source/Plugins/ExpressionParser/Clang/CMakeFiles/lldbPluginExpressionParserClang.dir/IRDynamicChecks.cpp.o -c /Users/eloparco/dev/wasm-micro-runtime/core/deps/llvm/lldb/source/Plugins/ExpressionParser/Clang/IRDynamicChecks.cpp
In file included from /Users/eloparco/dev/wasm-micro-runtime/core/deps/llvm/lldb/source/Plugins/ExpressionParser/Clang/IRDynamicChecks.cpp:9:
In file included from /Users/eloparco/dev/wasm-micro-runtime/core/deps/llvm/build/include/llvm/IR/Constants.h:23:
In file included from /Users/eloparco/dev/wasm-micro-runtime/core/deps/llvm/build/include/llvm/ADT/APFloat.h:19:
In file included from /Users/eloparco/dev/wasm-micro-runtime/core/deps/llvm/build/include/llvm/ADT/APInt.h:19:
In file included from /Users/eloparco/dev/wasm-micro-runtime/core/deps/llvm/build/include/llvm/Support/MathExtras.h:19:
/Library/Developer/CommandLineTools/SDKs/MacOSX13.0.sdk/usr/include/c++/v1/cmath:642:26: error: no template named 'numeric_limits'
bool _FloatBigger = (numeric_limits<_FloatT>::digits > numeric_limits<_IntT>::digits),
^
/Library/Developer/CommandLineTools/SDKs/MacOSX13.0.sdk/usr/include/c++/v1/cmath:642:60: error: no template named 'numeric_limits'
bool _FloatBigger = (numeric_limits<_FloatT>::digits > numeric_limits<_IntT>::digits),
^
/Library/Developer/CommandLineTools/SDKs/MacOSX13.0.sdk/usr/include/c++/v1/cmath:643:18: error: no template named 'numeric_limits'
int _Bits = (numeric_limits<_IntT>::digits - numeric_limits<_FloatT>::digits)>
^
/Library/Developer/CommandLineTools/SDKs/MacOSX13.0.sdk/usr/include/c++/v1/cmath:643:50: error: no template named 'numeric_limits'
int _Bits = (numeric_limits<_IntT>::digits - numeric_limits<_FloatT>::digits)>
^
/Library/Developer/CommandLineTools/SDKs/MacOSX13.0.sdk/usr/include/c++/v1/cmath:648:17: error: no template named 'numeric_limits'
static_assert(numeric_limits<_FloatT>::radix == 2, "FloatT has incorrect radix");
^
/Library/Developer/CommandLineTools/SDKs/MacOSX13.0.sdk/usr/include/c++/v1/cmath:651:25: error: no template named 'numeric_limits'
return _FloatBigger ? numeric_limits<_IntT>::max() : (numeric_limits<_IntT>::max() >> _Bits << _Bits);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX13.0.sdk/usr/include/c++/v1/cmath:651:58: error: no template named 'numeric_limits'
return _FloatBigger ? numeric_limits<_IntT>::max() : (numeric_limits<_IntT>::max() >> _Bits << _Bits);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX13.0.sdk/usr/include/c++/v1/cmath:661:16: error: no template named 'numeric_limits'
using _Lim = numeric_limits<_IntT>;
^
/Library/Developer/CommandLineTools/SDKs/MacOSX13.0.sdk/usr/include/c++/v1/cmath:664:12: error: use of undeclared identifier '_Lim'
return _Lim::max();
^
/Library/Developer/CommandLineTools/SDKs/MacOSX13.0.sdk/usr/include/c++/v1/cmath:665:21: error: use of undeclared identifier '_Lim'
} else if (__r <= _Lim::lowest()) {
^
/Library/Developer/CommandLineTools/SDKs/MacOSX13.0.sdk/usr/include/c++/v1/cmath:666:12: error: use of undeclared identifier '_Lim'
return _Lim::min();
^
11 errors generated.
[14/1060] Building CXX object tools/lldb/source/Plugins/Language/CPlusPlus/CMakeFiles/lldbPluginCPlusPlusLanguage.dir/BlockPointer.cpp.o
ninja: build stopped: subcommand failed.
Hi @eloparco; I think it's not an issue with WAMR, but rather with LLVM. However, I looked into that briefly, and I think the problem is with the way CMake generates compilation command and set of include directives, especially those two look suspicious to me:
-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX13.0.sdk
-I/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include
as I 1) wouldn't expect the sdk to be included twice, 2) I'd expect those paths to point to the same SDK, whereas here we have two different versions (12 and 13). I'm mainly developing on Linux but also have MacOS M1 so I can try to reproduce and debug it tomorrow.
Thanks @loganek. I just fixed it by deleting one of the SDK versions from /Library/Developer/CommandLineTools/SDKs
, to avoid headers being picked from different versions.
This is an issue already raised on the llvm project repo: https://github.com/llvm/llvm-project/issues/54988.
Hi @eloparco, I'm glad there's a path forward. Whereas I still think it's just a workaround and not the proper solution, I think what we at least can do here is document the steps or point to the issue you linked above in the documentation. Would you like to open a PR for that?
Hello, When I try to build
lldb
as described here I get the following error:This happens on my MacOS M1 environment. Any idea on how to solve it? Thanks