Skip to content

Node 15 build fails with LTO enabled #35957

Closed
@astefanutti

Description

@astefanutti

Node 15.0.1 build fails when LTO is enabled with the following message:

/tmp/ccikGPmp.s: Assembler messages:
/tmp/ccikGPmp.s:26: Error: symbol `PushAllRegistersAndIterateStack' is already defined
make[2]: *** [/tmp/ccdIdoeH.mk:2: /tmp/node.aneJAa.ltrans0.ltrans.o] Error 1
make[2]: *** Waiting for unfinished jobs....
lto-wrapper: fatal error: make returned 2 exit status
compilation terminated.

The build with same configuration used to be successful for Node 14.x and previous versions.

It seems related to the v8 version upgrade from 8.4 to 8.6. It may be the PushAllRegistersAndIterateStack assembly gets inlined multiple times, which leads to duplicated symbols in the LTO compilation unit.

  • Version: 15.0.1
  • Platform: Linux

What steps will reproduce the bug?

$ ./configure --enable-lto && make -j$(getconf _NPROCESSORS_ONLN) V=

Metadata

Metadata

Assignees

No one assigned

    Labels

    buildIssues and PRs related to build files or the CI.linuxIssues and PRs related to the Linux platform.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions