-
Notifications
You must be signed in to change notification settings - Fork 900
v4.0.x: Make sure MPIR_Breakpoint() is compiled without CFLAGS. #8422
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
Conversation
1d391c7
to
77b018e
Compare
bot:ibm:retest |
77b018e
to
6beacf3
Compare
In optimized builds, CFLAGS contains various optimizations such as -O3, and is propogated by automake to all files. To work-around this, isolate MPIR_Breakpoint() and other MPIR_* symbols into its own library built with debugger specific CFLAGS. To prevent CFLAGS from being polluted elsewhere in the make tree, build this in its own tiny stand-alone makefile. Fixes open-mpi#7757 Signed-off-by: Austen Lauria <[email protected]>
6beacf3
to
6d82003
Compare
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 did a line-by-line review of this with Austen, and this looks fine.
It's a shame we have to go to such lengths to specify a different CFLAGS for a file, but creating a more generic system would be more work, and this is the only file that really NEEDs it.
Austen will post his build log showing that this indeed dropped the Opt level to -O0 for this particular file.
Austen will also PR this to v4.1.x, as no orte in master.
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.
Thanks for fighting through the build system to do this.
It is unfortunate that we have to manipulate the build system in this way, but there are worse sins I suppose :)
I agree that we should fix this more generally. But for the 4.x release series it's good. Going forward I might keep plugging away at removing the global CFLAGS in my free time and post that PR if the community wants it. |
Here's a piece of the make V=1 output showing only this file is compiled without O3: |
@jsquyres Please review. |
In optimized builds, CFLAGS contains various optimizations such as -O3,
and is propogated by automake to all files. To work-around this,
isolate MPIR_Breakpoint() and other MPIR_* symbols into its own library
built with debugger specific CFLAGS.
To prevent CFLAGS from being polluted elsewhere in the make tree, build
this in its own tiny stand-alone makefile.
Fixes #7757
Signed-off-by: Austen Lauria [email protected]
NOTE: This is not a cherry-pick from master because ORTE no longer exists on master.