Skip to content

how the official linux binary is built? #1039

Closed
@shyhpei

Description

@shyhpei

Version: 6.11.5
Platform: Linux fcdev 4.13.13-300.fc27.x86_64 #1 SMP Wed Nov 15 15:47:50 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

I am trying to build nodejs binary on a Fedora 27 host, using --fully-static, because my target host is Fedora Core 6. This is how I build:

./configure --fully-static
make -j

The compile/link would go thru and generate a node binary, with some warnings similar to the one below:

dso_dlfcn.c:(.text+0x12): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/home/syen/src/node-v6.11.5/out/Release/obj.target/node/src/node.o: In function `node::InitGroups(v8::FunctionCallbackInfov8::Value const&)':

But I could run this node binary just fine on the Fedora 27 build host. But when I copy node binary to my target Fedora 6 host and run it, it would segment fault immediately without even get to the ">" prompt.

The weird thing is, the official linux binary from nodejs.org site would have no problem running on my target Fedora 6 host. I can get a ">" prompt, and I can execute my javascript with this binary.

So, my questions:

  1. how is the official node binary for linux built?
  2. why my "--fully-static" binary build would still generate some binary that will reference a shared glibc library?

I've looked up and down on nodejs website and I couldn't find any documentation on how the official binary was built...

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