Skip to content

npm install fails with Ubuntu 18.04, lldb 6.0 #355

@jlevon

Description

@jlevon
e$ node-gyp -v
v3.6.2
~$ dpkg -l lldb lldb-6.0-dev
ii  lldb                                    1:6.0-41~exp5~ubuntu1    amd64                    Next generation, high-performance debugger
un  lldb-6.0-dev                            

fails "npm install" (w or without --debug):

$ npm install --debug

> llnode@3.1.0 preinstall /home/jlevon/src/llnode
> node scripts/configure.js

Build dir is: /home/jlevon/src/llnode
Looking for lldb executable...
Found lldb executable /usr/bin/lldb

Reading lldb version...
Installing llnode for /usr/bin/lldb, lldb version 6.0

Looking for llvm-config for lldb 6.0...
Using llvm-config in /usr/bin/llvm-config-6.0

Looking for headers for lldb 6.0...
Found lldb headers in /usr/lib/llvm-6.0/include

Looking for shared libraries for lldb 6.0...
Found liblldb.so in /usr/lib/llvm-6.0/lib
Writing config.gypi:
{
  "variables": {
    "lldb_lib_dir%": "/usr/lib/llvm-6.0/lib",
    "lldb_lib%": "lldb",
    "lldb_include_dir%": "/usr/lib/llvm-6.0/include",
    "build_addon": "false",
    "coverage": "false"
  }
}
Writing llnode.js shortcut to /home/jlevon/src/llnode/llnode.js

> llnode@3.1.0 install /home/jlevon/src/llnode
> node scripts/install.js

make: Entering directory '/home/jlevon/src/llnode/build'
  CXX(target) Debug/obj.target/plugin/src/constants.o
  CXX(target) Debug/obj.target/plugin/src/error.o
  CXX(target) Debug/obj.target/plugin/src/llnode.o
  CXX(target) Debug/obj.target/plugin/src/llv8.o
../src/llv8.cc:732:36: warning: trigraph ??) ignored, use -trigraphs to enable [-Wtrigraphs]
   RETURN_IF_INVALID(name, "Symbol(???)");
                                     
../src/llv8.cc: In member function ‘llnode::v8::Value llnode::v8::JSObject::GetDescriptorProperty(std::__cxx11::string, llnode::v8::Map, llnode::Error&)’:
../src/llv8.cc:1179:14: warning: variable ‘value’ set but not used [-Wunused-but-set-variable]
       double value;
              ^~~~~
  CXX(target) Debug/obj.target/plugin/src/llv8-constants.o
  CXX(target) Debug/obj.target/plugin/src/llscan.o
  CXX(target) Debug/obj.target/plugin/src/printer.o
../src/printer.cc: In member function ‘std::__cxx11::string llnode::Printer::Stringify(T, llnode::Error&) [with T = llnode::v8::JSArrayBuffer; Actual = llnode::v8::JSArrayBuffer; std::__cxx11::string = std::__cxx11::basic_string<char>]’:
../src/printer.cc:371:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       if (display_length < *byte_length) {
           ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
../src/printer.cc: In member function ‘std::__cxx11::string llnode::Printer::Stringify(T, llnode::Error&) [with T = llnode::v8::JSTypedArray; Actual = llnode::v8::JSTypedArray; std::__cxx11::string = std::__cxx11::basic_string<char>]’:
../src/printer.cc:436:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if (display_length < *byte_length) {
         ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
../src/printer.cc: In member function ‘std::__cxx11::string llnode::Printer::Stringify(T, llnode::Error&) [with T = llnode::v8::Map; Actual = llnode::v8::Map]’:
../src/printer.cc:516:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
  CXX(target) Debug/obj.target/plugin/src/node.o
  CXX(target) Debug/obj.target/plugin/src/node-constants.o
  CXX(target) Debug/obj.target/plugin/src/settings.o
  SOLINK(target) Debug/obj.target/plugin.so
  COPY Debug/lib.target/plugin.so
make: Leaving directory '/home/jlevon/src/llnode/build'

> llnode@3.1.0 postinstall /home/jlevon/src/llnode
> node scripts/cleanup.js

Moving /home/jlevon/src/llnode/build/Debug/plugin.so to /home/jlevon/src/llnode/llnode.so
fs.js:766
  return binding.rename(pathModule._makeLong(oldPath),
                 ^

Error: ENOENT: no such file or directory, rename '/home/jlevon/src/llnode/build/Debug/plugin.so' -> '/home/jlevon/src/llnode/llnode.so'
    at Object.fs.renameSync (fs.js:766:18)
    at Object.<anonymous> (/home/jlevon/src/llnode/scripts/cleanup.js:26:4)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Function.Module.runMain (module.js:693:10)
    at startup (bootstrap_node.js:188:16)
    at bootstrap_node.js:609:3

I had to use this diff:

$ git diff
diff --git a/scripts/cleanup.js b/scripts/cleanup.js
index 02fd591..98d839e 100644
--- a/scripts/cleanup.js
+++ b/scripts/cleanup.js
@@ -15,7 +15,7 @@ if (osName === 'Darwin') {
 const llnodeLib = `plugin.${libExt}`;
 const destLib = `llnode.${libExt}`;
 
-let buildPath = `${cwd}/build/Release/${llnodeLib}`;
+let buildPath = `${cwd}/build/Release/lib.target/${llnodeLib}`;
 
 if (!fs.existsSync(buildPath))
   buildPath = `${cwd}/build/Debug/${llnodeLib}`;

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions