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: export zlib symbols on Windows #7983

Closed
wants to merge 1 commit into from
Closed

build: export zlib symbols on Windows #7983

wants to merge 1 commit into from

Conversation

ghost
Copy link

@ghost ghost commented Aug 5, 2016

Checklist
  • make -j4 test (UNIX), or vcbuild test nosign (Windows) passes
  • commit message follows commit guidelines
Affected core subsystem(s)

build, addons

Description of change

Base the generated openssl.def on existing zlib.def. We cannot specify more than one DEF file per executable so we need to merge the two DEF files to expose both OpenSSL and Zlib functionality to addons.

If OpenSSL is not used, link against zlib.def itself.

@bnoordhuis knows about the mkssldef.py

@nodejs-github-bot nodejs-github-bot added the build Issues and PRs related to build files or the CI. label Aug 5, 2016
@ghost
Copy link
Author

ghost commented Aug 5, 2016

It would be really nice if this could land in time for Node.js 6.4.0 with the other build fixes.

@mscdex mscdex added zlib Issues and PRs related to the zlib subsystem. openssl Issues and PRs related to the OpenSSL dependency. labels Aug 5, 2016
@@ -369,9 +369,14 @@
'-Wl,--no-whole-archive',
],
}],
# openssl.def is based on zlib.def, zlib symbols
# are always exported
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you punctuate the comment?

@bnoordhuis
Copy link
Member

LGTM with style nit. CI: https://ci.nodejs.org/job/node-test-pull-request/3535/

To be clear, this only applies to non-ssl Windows builds?

@ghost
Copy link
Author

ghost commented Aug 5, 2016

I added a dot in the end. This applies to both ssl and non-ssl:

  • When building with ssl, it makes the mkssldef.py base the list of exports from the already existing zlib.def.
  • When building without ssl it simply links against zlib.def.

The main point is to always export zlib symbols, with or without ssl being exported.

@ghost
Copy link
Author

ghost commented Aug 5, 2016

A more to the point but less "technical" commit description could be "build: export zlib symbols on Windows".

@ghost ghost changed the title build: base generated openssl.def on zlib.def build: export zlib symbols on Windows Aug 5, 2016
@ghost
Copy link
Author

ghost commented Aug 5, 2016

Rebased, added reviewer & changed title. It passed the tests.

@jasnell
Copy link
Member

jasnell commented Aug 5, 2016

LGTM

Base the generated openssl.def on existing zlib.def. We cannot specify
more than one DEF file per executable so we need to merge the two DEF
files to expose both OpenSSL and Zlib functionality to addons.

If OpenSSL is not used, link against zlib.def itself.

PR-URL: #7983
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: James M Snell <[email protected]>
@ghost
Copy link
Author

ghost commented Aug 8, 2016

Could this get merged this week? I do rebase it frequently.

I have one other pending commit that is tagged semver-minor and will get into 6.4.0: #7576 because of similar changes.

So I guess this commit also should be tagged semver-minor and thus it needs to be committed in time for 6.4.0.

@bnoordhuis
Copy link
Member

CI is green so I'm okay with it getting merged. That particular configuration is not tested, of course, but it's unlikely to make matters worse than they currently are.

/cc @nodejs/release - there is no land-on-v6.x label, how should I tag it for v6?

@evanlucas
Copy link
Contributor

If it cherry-picks cleanly, then you really don't need to do anything.

@addaleax addaleax added the semver-minor PRs that contain new features and should be released in the next minor version. label Aug 8, 2016
@addaleax
Copy link
Member

addaleax commented Aug 8, 2016

One more CI: https://ci.nodejs.org/job/node-test-commit/4444/
Will land if it’s green.

@addaleax
Copy link
Member

addaleax commented Aug 8, 2016

Landed in 359352c, thanks for the PR!

@addaleax addaleax closed this Aug 8, 2016
addaleax pushed a commit that referenced this pull request Aug 8, 2016
Base the generated openssl.def on existing zlib.def. We cannot specify
more than one DEF file per executable so we need to merge the two DEF
files to expose both OpenSSL and Zlib functionality to addons.

If OpenSSL is not used, link against zlib.def itself.

PR-URL: #7983
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: James M Snell <[email protected]>
@ghost
Copy link
Author

ghost commented Aug 8, 2016

Thanks 🎉

@cjihrig cjihrig mentioned this pull request Aug 8, 2016
cjihrig pushed a commit that referenced this pull request Aug 10, 2016
Base the generated openssl.def on existing zlib.def. We cannot specify
more than one DEF file per executable so we need to merge the two DEF
files to expose both OpenSSL and Zlib functionality to addons.

If OpenSSL is not used, link against zlib.def itself.

PR-URL: #7983
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: James M Snell <[email protected]>
@cjihrig cjihrig mentioned this pull request Aug 11, 2016
cjihrig added a commit that referenced this pull request Aug 11, 2016
Notable changes:

* build: zlib symbols and additional OpenSSL symbols are now exposed on Windows platforms. (Alex Hultman) #7983 and #7576
* child_process, cluster: Forked child processes and cluster workers now support stdio configuration. (Colin Ihrig) #7811 and #7838
* fs: fs.ReadStream now exposes the number of bytes it has read so far. (Linus Unnebäck) #7942
* repl: The REPL now supports editor mode. (Prince J Wesley) #7275
* util: inspect() can now be configured globally using util.inspect.defaultOptions. (Roman Reiss) #8013

Refs: #8020
PR-URL: #8070
cjihrig added a commit that referenced this pull request Aug 11, 2016
Notable changes:

* build: zlib symbols and additional OpenSSL symbols are now exposed on Windows platforms. (Alex Hultman) #7983 and #7576
* child_process, cluster: Forked child processes and cluster workers now support stdio configuration. (Colin Ihrig) #7811 and #7838
* child_process: argv[0] can now be set to arbitrary values in spawned processes. (Pat Pannuto) #7696
* fs: fs.ReadStream now exposes the number of bytes it has read so far. (Linus Unnebäck) #7942
* repl: The REPL now supports editor mode. (Prince J Wesley) #7275
* util: inspect() can now be configured globally using util.inspect.defaultOptions. (Roman Reiss) #8013

Refs: #8020
PR-URL: #8070
cjihrig added a commit that referenced this pull request Aug 15, 2016
Notable changes:

* build: zlib symbols and additional OpenSSL symbols are now exposed on Windows platforms. (Alex Hultman) #7983 and #7576
* child_process, cluster: Forked child processes and cluster workers now support stdio configuration. (Colin Ihrig) #7811 and #7838
* child_process: argv[0] can now be set to arbitrary values in spawned processes. (Pat Pannuto) #7696
* fs: fs.ReadStream now exposes the number of bytes it has read so far. (Linus Unnebäck) #7942
* repl: The REPL now supports editor mode. (Prince J Wesley) #7275
* util: inspect() can now be configured globally using util.inspect.defaultOptions. (Roman Reiss) #8013

Refs: #8020
PR-URL: #8070
cjihrig added a commit to cjihrig/node that referenced this pull request Aug 16, 2016
Notable changes:

* build: zlib symbols and additional OpenSSL symbols are now exposed on Windows platforms. (Alex Hultman) nodejs#7983 and nodejs#7576
* child_process, cluster: Forked child processes and cluster workers now support stdio configuration. (Colin Ihrig) nodejs#7811 and nodejs#7838
* child_process: argv[0] can now be set to arbitrary values in spawned processes. (Pat Pannuto) nodejs#7696
* fs: fs.ReadStream now exposes the number of bytes it has read so far. (Linus Unnebäck) nodejs#7942
* repl: The REPL now supports editor mode. (Prince J Wesley) nodejs#7275
* util: inspect() can now be configured globally using util.inspect.defaultOptions. (Roman Reiss) nodejs#8013

Refs: nodejs#8020
PR-URL: nodejs#8070
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build Issues and PRs related to build files or the CI. openssl Issues and PRs related to the OpenSSL dependency. semver-minor PRs that contain new features and should be released in the next minor version. zlib Issues and PRs related to the zlib subsystem.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants