-
Notifications
You must be signed in to change notification settings - Fork 29.6k
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: disable libstdc++ debug containers globally #30147
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
@bnoordhuis this failure https://ci.nodejs.org/job/node-test-commit-linux-containered/16694/nodes=ubuntu1804_sharedlibs_debug_x64/console seems to be related. |
Ping @bnoordhuis |
@bnoordhuis PTAL at the mentioned failure. |
This comment has been minimized.
This comment has been minimized.
Different parts of the debug build were using differently sized std::vectors due to `_GLIBCXX_DEBUG` sometimes being defined and sometimes not. That ended about as well as you would expect. Remove the flag. Fixes: nodejs#30056
Thanks for the ping, Ruben, and sorry for the delay. I decided to simply remove the setting since we want it disabled anyway. |
It would be good to get a confirmation of some of the LGs, since this has changed since the PR was opened. |
@@ -30,10 +30,6 @@ | |||
'openssl_fips%': '', | |||
'openssl_no_asm%': 0, | |||
|
|||
# Some STL containers (e.g. std::vector) do not preserve ABI compatibility | |||
# between debug and non-debug mode. | |||
'disable_glibcxx_debug': 1, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So this may not have had the desired effect (being overridden by the value in toolchain.gypi) but I'm a little hesitant about removing it completely from common.gypi
from the release lines as that's visible to addon authors using node-gyp
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I know it's not an exact science but GH search doesn't turn up any binding.gyp files nor any JS or TS source files that contain the string disable_glibcxx_debug.
I think it's a pretty safe bet it's unused because it was non-functional anyway.
Different parts of the debug build were using differently sized std::vectors due to `_GLIBCXX_DEBUG` sometimes being defined and sometimes not. That ended about as well as you would expect. Remove the flag. Fixes: #30056 PR-URL: #30147 Reviewed-By: Richard Lau <[email protected]> Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: David Carlier <[email protected]> Reviewed-By: Anna Henningsen <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Michael Dawson <[email protected]> Reviewed-By: Ruben Bridgewater <[email protected]>
Landed in 7f44d2c |
Different parts of the debug build were using differently sized std::vectors due to `_GLIBCXX_DEBUG` sometimes being defined and sometimes not. That ended about as well as you would expect. Remove the flag. Fixes: #30056 PR-URL: #30147 Reviewed-By: Richard Lau <[email protected]> Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: David Carlier <[email protected]> Reviewed-By: Anna Henningsen <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Michael Dawson <[email protected]> Reviewed-By: Ruben Bridgewater <[email protected]>
Different parts of the debug build were using differently sized std::vectors due to `_GLIBCXX_DEBUG` sometimes being defined and sometimes not. That ended about as well as you would expect. Remove the flag. Fixes: #30056 PR-URL: #30147 Reviewed-By: Richard Lau <[email protected]> Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: David Carlier <[email protected]> Reviewed-By: Anna Henningsen <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Michael Dawson <[email protected]> Reviewed-By: Ruben Bridgewater <[email protected]>
Different parts of the debug build were using differently sized std::vectors due to `_GLIBCXX_DEBUG` sometimes being defined and sometimes not. That ended about as well as you would expect. Remove the flag. Fixes: #30056 PR-URL: #30147 Reviewed-By: Richard Lau <[email protected]> Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: David Carlier <[email protected]> Reviewed-By: Anna Henningsen <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Michael Dawson <[email protected]> Reviewed-By: Ruben Bridgewater <[email protected]>
Make sure
_GLIBCXX_DEBUG
is (un)defined consistently by turning thedisable_glibcxx_debug
in common.gypi into a global variable thatoverrides the definition in toolchain.gypi.
Different parts of the debug build were using differently sized
std::vectors and that ended about as well as you would expect.
Fixes: #30056