MichaReiser / llvm-node

LLVM 9.0+ Node Bindings
MIT License
183 stars 29 forks source link

Won't build on Ubuntu 21.10 with LLVM 13 #140

Closed Vurgak closed 2 years ago

Vurgak commented 2 years ago

The library won't build on Ubuntu 21.10 with LLVM 13 installed. I've installed llvm and llvm-dev packages. cmake is available in the path. I've tried following https://github.com/vsl-lang/VSL/wiki/Installation#source-build-i-get-nanh-no-such-file-or-directory, but with no luck.

npm ERR! code 1
npm ERR! path /home/damian/Code/wisteria/node_modules/llvm-node
npm ERR! command failed
npm ERR! command sh -c cmake-js compile
npm ERR! [
npm ERR!   '/home/damian/.nvm/versions/node/v16.13.1/bin/node',
npm ERR!   '/home/damian/Code/wisteria/node_modules/.bin/cmake-js',
npm ERR!   'compile'
npm ERR! ]
npm ERR! Not searching for unused variables given on the command line.
npm ERR! -- The C compiler identification is GNU 11.2.0
npm ERR! -- The CXX compiler identification is GNU 11.2.0
npm ERR! -- Detecting C compiler ABI info
npm ERR! -- Detecting C compiler ABI info - done
npm ERR! -- Check for working C compiler: /usr/bin/cc - skipped
npm ERR! -- Detecting C compile features
npm ERR! -- Detecting C compile features - done
npm ERR! -- Detecting CXX compiler ABI info
npm ERR! -- Detecting CXX compiler ABI info - done
npm ERR! -- Check for working CXX compiler: /usr/bin/c++ - skipped
npm ERR! -- Detecting CXX compile features
npm ERR! -- Detecting CXX compile features - done
npm ERR! -- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11") 
npm ERR! -- Found LibXml2: /usr/lib/x86_64-linux-gnu/libxml2.so (found version "2.9.12") 
npm ERR! -- Found LLVM 13.0.0
npm ERR! -- Using LLVMConfig.cmake in: /usr/lib/llvm-13/cmake
npm ERR! -- Configuring done
npm ERR! -- Generating done
npm ERR! -- Build files have been written to: /home/damian/Code/wisteria/node_modules/llvm-node/build
npm ERR! Scanning dependencies of target llvm-node
npm ERR! [  2%] Building CXX object CMakeFiles/llvm-node.dir/src/bitcode/bitcode-writer.cc.o
npm ERR! Not searching for unused variables given on the command line.
npm ERR! -- The C compiler identification is GNU 11.2.0
npm ERR! -- The CXX compiler identification is GNU 11.2.0
npm ERR! -- Detecting C compiler ABI info
npm ERR! -- Detecting C compiler ABI info - done
npm ERR! -- Check for working C compiler: /usr/bin/cc - skipped
npm ERR! -- Detecting C compile features
npm ERR! -- Detecting C compile features - done
npm ERR! -- Detecting CXX compiler ABI info
npm ERR! -- Detecting CXX compiler ABI info - done
npm ERR! -- Check for working CXX compiler: /usr/bin/c++ - skipped
npm ERR! -- Detecting CXX compile features
npm ERR! -- Detecting CXX compile features - done
npm ERR! -- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11") 
npm ERR! -- Found LibXml2: /usr/lib/x86_64-linux-gnu/libxml2.so (found version "2.9.12") 
npm ERR! -- Found LLVM 13.0.0
npm ERR! -- Using LLVMConfig.cmake in: /usr/lib/llvm-13/cmake
npm ERR! -- Configuring done
npm ERR! -- Generating done
npm ERR! -- Build files have been written to: /home/damian/Code/wisteria/node_modules/llvm-node/build
npm ERR! Scanning dependencies of target llvm-node
npm ERR! [  2%] Building CXX object CMakeFiles/llvm-node.dir/src/bitcode/bitcode-writer.cc.o
npm ERR! info TOOL Using Unix Makefiles generator.
npm ERR! info CMD CONFIGURE
npm ERR! info RUN [
npm ERR! info RUN   'cmake',
npm ERR! info RUN   '/home/damian/Code/wisteria/node_modules/llvm-node',
npm ERR! info RUN   '--no-warn-unused-cli',
npm ERR! info RUN   '-G',
npm ERR! info RUN   'Unix Makefiles',
npm ERR! info RUN   '-DCMAKE_JS_VERSION=6.3.0',
npm ERR! info RUN   '-DCMAKE_BUILD_TYPE=Release',
npm ERR! info RUN   '-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/home/damian/Code/wisteria/node_modules/llvm-node/build/Release',
npm ERR! info RUN   '-DCMAKE_JS_INC=/home/damian/.cmake-js/node-x64/v16.13.1/include/node;/home/damian/Code/wisteria/node_modules/nan',
npm ERR! info RUN   '-DCMAKE_JS_SRC=',
npm ERR! info RUN   '-DNODE_RUNTIME=node',
npm ERR! info RUN   '-DNODE_RUNTIMEVERSION=16.13.1',
npm ERR! info RUN   '-DNODE_ARCH=x64'
npm ERR! info RUN ]
npm ERR! info CMD BUILD
npm ERR! info RUN [
npm ERR! info RUN   'cmake',
npm ERR! info RUN   '--build',
npm ERR! info RUN   '/home/damian/Code/wisteria/node_modules/llvm-node/build',
npm ERR! info RUN   '--config',
npm ERR! info RUN   'Release'
npm ERR! info RUN ]
npm ERR! /home/damian/Code/wisteria/node_modules/llvm-node/src/bitcode/bitcode-writer.cc: In function ‘Nan::NAN_METHOD_RETURN_TYPE WriteBitcodeToFile(Nan::NAN_METHOD_ARGS_TYPE)’:
npm ERR! /home/damian/Code/wisteria/node_modules/llvm-node/src/bitcode/bitcode-writer.cc:24:77: error: ‘F_None’ is not a member of ‘llvm::sys::fs’; did you mean ‘OF_None’?
npm ERR!    24 |     llvm::raw_fd_ostream byteCodeFile { fileName, errorCode, llvm::sys::fs::F_None };
npm ERR!       |                                                                             ^~~~~~
npm ERR!       |                                                                             OF_None
npm ERR! /home/damian/Code/wisteria/node_modules/llvm-node/src/bitcode/bitcode-writer.cc:24:84: error: no matching function for call to ‘llvm::raw_fd_ostream::raw_fd_ostream(<brace-enclosed initializer list>)’
npm ERR!    24 |     llvm::raw_fd_ostream byteCodeFile { fileName, errorCode, llvm::sys::fs::F_None };
npm ERR!       |                                                                                    ^
npm ERR! In file included from /home/damian/Code/wisteria/node_modules/llvm-node/src/bitcode/bitcode-writer.cc:5:
npm ERR! /usr/lib/llvm-13/include/llvm/Support/raw_ostream.h:504:3: note: candidate: ‘llvm::raw_fd_ostream::raw_fd_ostream(int, bool, bool, llvm::raw_ostream::OStreamKind)’
npm ERR!   504 |   raw_fd_ostream(int fd, bool shouldClose, bool unbuffered = false,
npm ERR!       |   ^~~~~~~~~~~~~~
npm ERR! /usr/lib/llvm-13/include/llvm/Support/raw_ostream.h:504:22: note:   no known conversion for argument 1 from ‘std::__cxx11::basic_string<char>’ to ‘int’
npm ERR!   504 |   raw_fd_ostream(int fd, bool shouldClose, bool unbuffered = false,
npm ERR!       |                  ~~~~^~
npm ERR! /usr/lib/llvm-13/include/llvm/Support/raw_ostream.h:497:3: note: candidate: ‘llvm::raw_fd_ostream::raw_fd_ostream(llvm::StringRef, std::error_code&, llvm::sys::fs::CreationDisposition, llvm::sys::fs::FileAccess, llvm::sys::fs::OpenFlags)’
npm ERR!   497 |   raw_fd_ostream(StringRef Filename, std::error_code &EC,
npm ERR!       |   ^~~~~~~~~~~~~~
npm ERR! /usr/lib/llvm-13/include/llvm/Support/raw_ostream.h:497:3: note:   candidate expects 5 arguments, 3 provided
npm ERR! /usr/lib/llvm-13/include/llvm/Support/raw_ostream.h:495:3: note: candidate: ‘llvm::raw_fd_ostream::raw_fd_ostream(llvm::StringRef, std::error_code&, llvm::sys::fs::OpenFlags)’
npm ERR!   495 |   raw_fd_ostream(StringRef Filename, std::error_code &EC,
npm ERR!       |   ^~~~~~~~~~~~~~
npm ERR! /usr/lib/llvm-13/include/llvm/Support/raw_ostream.h:495:3: note:   conversion of argument 3 would be ill-formed:
npm ERR! /usr/lib/llvm-13/include/llvm/Support/raw_ostream.h:493:3: note: candidate: ‘llvm::raw_fd_ostream::raw_fd_ostream(llvm::StringRef, std::error_code&, llvm::sys::fs::FileAccess)’
npm ERR!   493 |   raw_fd_ostream(StringRef Filename, std::error_code &EC,
npm ERR!       |   ^~~~~~~~~~~~~~
npm ERR! /usr/lib/llvm-13/include/llvm/Support/raw_ostream.h:493:3: note:   conversion of argument 3 would be ill-formed:
npm ERR! /usr/lib/llvm-13/include/llvm/Support/raw_ostream.h:491:3: note: candidate: ‘llvm::raw_fd_ostream::raw_fd_ostream(llvm::StringRef, std::error_code&, llvm::sys::fs::CreationDisposition)’
npm ERR!   491 |   raw_fd_ostream(StringRef Filename, std::error_code &EC,
npm ERR!       |   ^~~~~~~~~~~~~~
npm ERR! /usr/lib/llvm-13/include/llvm/Support/raw_ostream.h:491:3: note:   conversion of argument 3 would be ill-formed:
npm ERR! /usr/lib/llvm-13/include/llvm/Support/raw_ostream.h:490:3: note: candidate: ‘llvm::raw_fd_ostream::raw_fd_ostream(llvm::StringRef, std::error_code&)’
npm ERR!   490 |   raw_fd_ostream(StringRef Filename, std::error_code &EC);
npm ERR!       |   ^~~~~~~~~~~~~~
npm ERR! /usr/lib/llvm-13/include/llvm/Support/raw_ostream.h:490:3: note:   candidate expects 2 arguments, 3 provided
npm ERR! gmake[2]: *** [CMakeFiles/llvm-node.dir/build.make:82: CMakeFiles/llvm-node.dir/src/bitcode/bitcode-writer.cc.o] Error 1
npm ERR! gmake[1]: *** [CMakeFiles/Makefile2:125: CMakeFiles/llvm-node.dir/all] Error 2
npm ERR! gmake: *** [Makefile:103: all] Error 2
npm ERR! info REP Build has been failed, trying to do a full rebuild.
npm ERR! info CMD CLEAN
npm ERR! info RUN [
npm ERR! info RUN   'cmake',
npm ERR! info RUN   '-E',
npm ERR! info RUN   'remove_directory',
npm ERR! info RUN   '/home/damian/Code/wisteria/node_modules/llvm-node/build'
npm ERR! info RUN ]
npm ERR! info CMD CONFIGURE
npm ERR! info RUN [
npm ERR! info RUN   'cmake',
npm ERR! info RUN   '/home/damian/Code/wisteria/node_modules/llvm-node',
npm ERR! info RUN   '--no-warn-unused-cli',
npm ERR! info RUN   '-G',
npm ERR! info RUN   'Unix Makefiles',
npm ERR! info RUN   '-DCMAKE_JS_VERSION=6.3.0',
npm ERR! info RUN   '-DCMAKE_BUILD_TYPE=Release',
npm ERR! info RUN   '-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/home/damian/Code/wisteria/node_modules/llvm-node/build/Release',
npm ERR! info RUN   '-DCMAKE_JS_INC=/home/damian/.cmake-js/node-x64/v16.13.1/include/node;/home/damian/Code/wisteria/node_modules/nan',
npm ERR! info RUN   '-DCMAKE_JS_SRC=',
npm ERR! info RUN   '-DNODE_RUNTIME=node',
npm ERR! info RUN   '-DNODE_RUNTIMEVERSION=16.13.1',
npm ERR! info RUN   '-DNODE_ARCH=x64'
npm ERR! info RUN ]
npm ERR! info CMD BUILD
npm ERR! info RUN [
npm ERR! info RUN   'cmake',
npm ERR! info RUN   '--build',
npm ERR! info RUN   '/home/damian/Code/wisteria/node_modules/llvm-node/build',
npm ERR! info RUN   '--config',
npm ERR! info RUN   'Release'
npm ERR! info RUN ]
npm ERR! /home/damian/Code/wisteria/node_modules/llvm-node/src/bitcode/bitcode-writer.cc: In function ‘Nan::NAN_METHOD_RETURN_TYPE WriteBitcodeToFile(Nan::NAN_METHOD_ARGS_TYPE)’:
npm ERR! /home/damian/Code/wisteria/node_modules/llvm-node/src/bitcode/bitcode-writer.cc:24:77: error: ‘F_None’ is not a member of ‘llvm::sys::fs’; did you mean ‘OF_None’?
npm ERR!    24 |     llvm::raw_fd_ostream byteCodeFile { fileName, errorCode, llvm::sys::fs::F_None };
npm ERR!       |                                                                             ^~~~~~
npm ERR!       |                                                                             OF_None
npm ERR! /home/damian/Code/wisteria/node_modules/llvm-node/src/bitcode/bitcode-writer.cc:24:84: error: no matching function for call to ‘llvm::raw_fd_ostream::raw_fd_ostream(<brace-enclosed initializer list>)’
npm ERR!    24 |     llvm::raw_fd_ostream byteCodeFile { fileName, errorCode, llvm::sys::fs::F_None };
npm ERR!       |                                                                                    ^
npm ERR! In file included from /home/damian/Code/wisteria/node_modules/llvm-node/src/bitcode/bitcode-writer.cc:5:
npm ERR! /usr/lib/llvm-13/include/llvm/Support/raw_ostream.h:504:3: note: candidate: ‘llvm::raw_fd_ostream::raw_fd_ostream(int, bool, bool, llvm::raw_ostream::OStreamKind)’
npm ERR!   504 |   raw_fd_ostream(int fd, bool shouldClose, bool unbuffered = false,
npm ERR!       |   ^~~~~~~~~~~~~~
npm ERR! /usr/lib/llvm-13/include/llvm/Support/raw_ostream.h:504:22: note:   no known conversion for argument 1 from ‘std::__cxx11::basic_string<char>’ to ‘int’
npm ERR!   504 |   raw_fd_ostream(int fd, bool shouldClose, bool unbuffered = false,
npm ERR!       |                  ~~~~^~
npm ERR! /usr/lib/llvm-13/include/llvm/Support/raw_ostream.h:497:3: note: candidate: ‘llvm::raw_fd_ostream::raw_fd_ostream(llvm::StringRef, std::error_code&, llvm::sys::fs::CreationDisposition, llvm::sys::fs::FileAccess, llvm::sys::fs::OpenFlags)’
npm ERR!   497 |   raw_fd_ostream(StringRef Filename, std::error_code &EC,
npm ERR!       |   ^~~~~~~~~~~~~~
npm ERR! /usr/lib/llvm-13/include/llvm/Support/raw_ostream.h:497:3: note:   candidate expects 5 arguments, 3 provided
npm ERR! /usr/lib/llvm-13/include/llvm/Support/raw_ostream.h:495:3: note: candidate: ‘llvm::raw_fd_ostream::raw_fd_ostream(llvm::StringRef, std::error_code&, llvm::sys::fs::OpenFlags)’
npm ERR!   495 |   raw_fd_ostream(StringRef Filename, std::error_code &EC,
npm ERR!       |   ^~~~~~~~~~~~~~
npm ERR! /usr/lib/llvm-13/include/llvm/Support/raw_ostream.h:495:3: note:   conversion of argument 3 would be ill-formed:
npm ERR! /usr/lib/llvm-13/include/llvm/Support/raw_ostream.h:493:3: note: candidate: ‘llvm::raw_fd_ostream::raw_fd_ostream(llvm::StringRef, std::error_code&, llvm::sys::fs::FileAccess)’
npm ERR!   493 |   raw_fd_ostream(StringRef Filename, std::error_code &EC,
npm ERR!       |   ^~~~~~~~~~~~~~
npm ERR! /usr/lib/llvm-13/include/llvm/Support/raw_ostream.h:493:3: note:   conversion of argument 3 would be ill-formed:
npm ERR! /usr/lib/llvm-13/include/llvm/Support/raw_ostream.h:491:3: note: candidate: ‘llvm::raw_fd_ostream::raw_fd_ostream(llvm::StringRef, std::error_code&, llvm::sys::fs::CreationDisposition)’
npm ERR!   491 |   raw_fd_ostream(StringRef Filename, std::error_code &EC,
npm ERR!       |   ^~~~~~~~~~~~~~
npm ERR! /usr/lib/llvm-13/include/llvm/Support/raw_ostream.h:491:3: note:   conversion of argument 3 would be ill-formed:
npm ERR! /usr/lib/llvm-13/include/llvm/Support/raw_ostream.h:490:3: note: candidate: ‘llvm::raw_fd_ostream::raw_fd_ostream(llvm::StringRef, std::error_code&)’
npm ERR!   490 |   raw_fd_ostream(StringRef Filename, std::error_code &EC);
npm ERR!       |   ^~~~~~~~~~~~~~
npm ERR! /usr/lib/llvm-13/include/llvm/Support/raw_ostream.h:490:3: note:   candidate expects 2 arguments, 3 provided
npm ERR! gmake[2]: *** [CMakeFiles/llvm-node.dir/build.make:82: CMakeFiles/llvm-node.dir/src/bitcode/bitcode-writer.cc.o] Error 1
npm ERR! gmake[1]: *** [CMakeFiles/Makefile2:125: CMakeFiles/llvm-node.dir/all] Error 2
npm ERR! gmake: *** [Makefile:103: all] Error 2
npm ERR! ERR! OMG Process terminated: 2

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/damian/.npm/_logs/2021-12-27T09_47_27_201Z-debug.log
ApsarasX commented 2 years ago

llvm-node does not support LLVM 13 for the time being, you can use llvm-bindings to achieve your purpose.