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

deps: define missing operator delete functions #10173

Closed
wants to merge 1 commit into from

Conversation

jBarz
Copy link
Contributor

@jBarz jBarz commented Dec 7, 2016

Checklist
Affected core subsystem(s)

v8

Description of change

Section 3.2 of the C++ standard states that destructor definitions
implicitly "use" operator delete functions. Therefore, these operator
delete functions must be defined even if they are never called by
user code explicitly.
http://www.open-std.org/JTC1/SC22/WG21/docs/cwg_defects.html#261

gcc allows them to remain as empty definitions. However, not all
compilers allow this.

This pull request creates definitions which if ever called, result
in an abort.

Section 3.2 of the C++ standard states that destructor definitions
implicitly "use" operator delete functions. Therefore, these operator
delete functions must be defined even if they are never called by
user code explicitly.
http://www.open-std.org/JTC1/SC22/WG21/docs/cwg_defects.html#261

gcc allows them to remain as empty definitions. However, not all
compilers allow this.

This pull request creates definitions which if ever called, result
in an abort.
@nodejs-github-bot nodejs-github-bot added v0.12 v8 engine Issues and PRs related to the V8 dependency. labels Dec 7, 2016
@addaleax
Copy link
Member

addaleax commented Dec 7, 2016

I guess whether we do this or not is @nodejs/lts’s call?

@cjihrig
Copy link
Contributor

cjihrig commented Dec 7, 2016

I'm not a member of the LTS team, but this doesn't seem worth it for a branch that is EOL in a couple weeks.

@mscdex
Copy link
Contributor

mscdex commented Dec 7, 2016

I agree with @cjihrig

@bnoordhuis
Copy link
Member

Also, is this really an issue and not just academic?

@jBarz
Copy link
Contributor Author

jBarz commented Dec 7, 2016

This affects the z/OS port that uses xlc compiler.
v0.12 is the first version being ported to z/OS.
I plan to upstream this change to the latest v8 so that it can be picked up by Node v6 which is our next target release on the platform.

@bnoordhuis
Copy link
Member

Okay, I think I see. It's because those classes explicitly declare delete operators but without defining them in any compilation units, correct? Don't you also need definitions for Isolate and SealHandleScope in that case?

I should warn you that this pull request may be simply too late if you want it to show up in a release. v0.12 is so close to its end of life that it probably won't see another release again.

@jBarz
Copy link
Contributor Author

jBarz commented Dec 8, 2016

I will cancel this PR since it is close to EOL. Will look at making these changes in node v6

It's because those classes explicitly declare delete operators but without defining them in any compilation units, correct?
Correct

Don't you also need definitions for Isolate and SealHandleScope in that case?
Yes which I missed.

@jBarz jBarz closed this Dec 8, 2016
@addaleax
Copy link
Member

addaleax commented Dec 8, 2016

Will look at making these changes in node v6

If you plan on upstreaming these changes into V8 anyway, the V8 master branch might be the best way to start. Node is somewhat picky a) about the changes to deps/ that it accepts that could also be applied upstream first and b) about changes to LTS versions that would also apply on master (because there is a general rule that changes need to live 2 weeks in a Current release before going into LTS).

@bnoordhuis
Copy link
Member

@jBarz It looks like we will be doing one more v0.12 release after all, see #10352. If you would still like to see this land, can you reopen and update the PR?

@bnoordhuis
Copy link
Member

I've opened #10356 with the extra changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
v8 engine Issues and PRs related to the V8 dependency.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants