Skip to content

v3.0.x: Try to prevent the compiler from optimizing out MPIR_Breakpoint(). #6841

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

Merged
merged 1 commit into from
Jul 24, 2019
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 19 additions & 1 deletion orte/orted/orted_submit.c
Original file line number Diff line number Diff line change
Expand Up @@ -174,12 +174,30 @@ static void orte_debugger_init_before_spawn(orte_job_t *jdata);

ORTE_DECLSPEC void* __opal_attribute_optnone__ MPIR_Breakpoint(void);

/*
* Attempt to prevent the compiler from optimizing out
* MPIR_Breakpoint().
*
* Some older versions of automake can add -O3 to every
* file via CFLAGS (which was demonstrated in automake v1.13.4),
* so there is a possibility that the compiler will see
* this function as a NOOP and optimize it out on older versions.
* While using the current/recommended version of automake
* does not do this, the following will help those
* stuck with an older version, as well as guard against
* future regressions.
*
* See the following git issue for more discussion:
* https://github.com/open-mpi/ompi/issues/5501
*/
static volatile void* volatile noop_mpir_breakpoint_ptr = NULL;

/*
* Breakpoint function for parallel debuggers
*/
void* MPIR_Breakpoint(void)
{
return NULL;
return noop_mpir_breakpoint_ptr;
}

/* local objects */
Expand Down