Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build,win: rename node.lib to libnode.lib #27150

Merged
merged 1 commit into from Apr 19, 2019

Conversation

Projects
None yet
4 participants
@refack
Copy link
Member

commented Apr 9, 2019

eliminate the need for rename_node_bin_win

P.S. This might be considered semver-major, but IMO only in the context of of @nodejs/delivery-channels

/CC @nodejs/build-files @nodejs/platform-windows

Checklist
  • make -j4 test (UNIX), or vcbuild test (Windows) passes
  • documentation is changed or added
  • commit message follows commit guidelines
@nodejs-github-bot

This comment has been minimized.

@nodejs-github-bot

This comment has been minimized.

@refack refack referenced this pull request Apr 9, 2019

Open

build: fixes and optimizations in gyp files #27108

3 of 3 tasks complete
@nodejs-github-bot

This comment has been minimized.

@refack refack self-assigned this Apr 9, 2019

@nodejs-github-bot

This comment has been minimized.

@refack refack added the review wanted label Apr 9, 2019

@joyeecheung
Copy link
Member

left a comment

LGTM if CI is happy.

@@ -23,7 +23,7 @@
'node_v8_options%': '',
'node_enable_v8_vtunejit%': 'false',
'node_core_target_name%': 'node',
'node_lib_target_name%': 'node_lib',
'node_lib_target_name%': 'libnode',

This comment has been minimized.

Copy link
@joyeecheung

joyeecheung Apr 9, 2019

Member

I think this would make the product..liblibnode.so/liblibnode.dylib on other platforms? (looks a bit funny, but probably not a big deal)

This comment has been minimized.

Copy link
@refack

refack Apr 10, 2019

Author Member

I think this would make the product..liblibnode.so/liblibnode.dylib on other platforms?

This is the line I see on linuxONE for example:

ar crsT /data/iojs/build/workspace/node-test-commit-linuxone/nodes/rhel72-s390x/out/Release/obj.target/libnode.a ...
                                                                                                       ^^^^^^^^^
@MarshallOfSound

This comment has been minimized.

Copy link
Member

commented Apr 10, 2019

At first glance this would appear to cause issues on Windows with node-gyp that very specifically links to node.lib.

Do we have any validation that native modules still work against a renamed node binary with this change?

@joyeecheung

This comment has been minimized.

Copy link
Member

commented Apr 10, 2019

@MarshallOfSound test/addons should cover that, I believe.

@joyeecheung

This comment has been minimized.

Copy link
Member

commented Apr 10, 2019

I just noticed that we explicitly mentions node.lib in several documentation e.g. it's part of process.release.libUrl

@refack

This comment has been minimized.

Copy link
Member Author

commented Apr 10, 2019

Do we have any validation that native modules still work against a renamed node binary with this change?

Each one of our CI jobs builds several native addons (with node-gyp). But it does seem like there's a bug in the CI script...

This will not land until I'm sure that is resolved.

I just noticed that we explicitly mentions node.lib in several documentation e.g. it's part of process.release.libUrl

I'll grep for these.

@refack

This comment has been minimized.

Copy link
Member Author

commented Apr 11, 2019

Do we have any validation that native modules still work against a renamed node binary with this change?

Each one of our CI jobs builds several native addons (with node-gyp). But it does seem like there's a bug in the CI script...

This will not land until I'm sure that is resolved.

I just noticed that we explicitly mentions node.lib in several documentation e.g. it's part of process.release.libUrl

I'll grep for these.

Ok, so even I got confused. node.lib is an artifact of building the main exe:

     Creating library out\Debug\node.lib and object out\Debug\node.exp
  node.vcxproj -> out\Debug\\node.exe
FinalizeBuildStatus:
  Deleting file "out\Debug\obj\node\node.tlog\unsuccessfulbuild".
  Touching "out\Debug\obj\node\node.tlog\node.lastbuildstate".
Done Building Project "D:\code\node\node.vcxproj" (Build target(s)).

nodelib.lib as a static library is just a partial part of the build, and it could be configured to be a dynamic library in special build configuration.

tl;dr this is not semver major even WRT to downstream embedders.

@nodejs-github-bot

This comment has been minimized.

@refack

This comment has been minimized.

Copy link
Member Author

commented Apr 11, 2019

build,win: rename node.lib to libnode.lib
eliminate the need for `rename_node_bin_win`

PR-URL: #27150
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>

@refack refack force-pushed the refack:gyp-rename-libnode branch from ef7e55a to 88beaf0 Apr 19, 2019

@refack refack merged commit 88beaf0 into nodejs:master Apr 19, 2019

1 of 3 checks passed

Travis CI - Pull Request Build Errored
Details
Travis CI - Pull Request Build Created
Details
Travis CI - Branch Build Passed
Details

@refack refack removed the review wanted label Apr 19, 2019

@refack refack removed their assignment Apr 19, 2019

@refack refack deleted the refack:gyp-rename-libnode branch Apr 19, 2019

@refack refack assigned refack and unassigned refack Apr 19, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.