-
Notifications
You must be signed in to change notification settings - Fork 868
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
Check issues with GCC-14 new errors #12169
Comments
Hmmm...little problem here. That macro is not used anywhere in PMIx itself, so the error isn't in PMIx - it is somewhere else in OMPI that uses the macro. In this case, the error is in oshmem: ../../../../oshmem/mca/memheap/base/memheap_base_mkey.c: In function 'mca_memheap_modex_recv_all' |
Thanks @rhc54, I didn't realize that. The called function |
The Standard committee voted to deprecate all the macro versions of those functions, which is why the macro ( If someday you bump your minimum supported version of PMIx to something post-deprecation, then it would be safe to remove those references. Deprecation occurred in PMIx v4.2.4. Right now, OMPI v5's min PMIx version is v4.2.0. |
BTW: it is entirely possible the error is in the PMIx header where we translate the macro to the functional form. It is a tad odd that it includes an ampersand in front of that argument. As I said, we don't use that macro, so it could easily go undetected. Just took a peek at PRRTE, and we do use the macro there in one place. In that usage, the ampersand would be correct - just seems a tad weird when you look at it. I can take a look and see if I can resurrect the reasoning for its presence - might take me a day or two. |
Looking at the 5.0 standard, the |
The issue is created by changing to the functional form. The macro can contain multiple lines, and so one can take an argument to the macro and place it on the left side of an Cannot do that for a function - instead, you have to pass the extra level of indirection to the function arguments. Hence the addition of the ampersand. I suspect this new experimental compiler is complaining because the function argument is defined as The Standard group decided to make the transition - but I don't believe anyone has yet written up the new functions. 🤷♂️ Pretty sure there is an issue about someone needing to do it. |
I mentioned the perl script that we've used in HDF5 when fixing warnings on this morning's OMPI developer call, and thought that I'd add it here, so it's preserved for reference later, in case anyone would like to use it. HDF5 turns on the following set of warnings for a "kitchen sink developer warnings" build ("env CC=gcc-13 ./configure --enable-build-mode=debug --enable-maintainer-mode --enable-developer-warnings --enable-diags --disable-shared --enable-map-api --enable-threadsafe --enable-build-all --enable-mirror-vfd --enable-unsupported") with GCC 13:
I've attached thee output from "make 2>&1 | tee make.out.txt" to this comment, along with the "warnhist" (for "warning histograms") script: (rename the attached "warnhist.txt to just "warnhist" or "warnhist.pl", etc) "warnhist -h" will give you the options for running the script, but here's some examples. "warnhist make.out.txt" :
"warnhist -w 1 make.out.txt" :
"warnhist -f 0 make.out.txt" :
|
@devreal I committed the change to PMIx master branch - if you get a chance, could you update your submodule pointer and see if the issue is gone? |
Thanks @rhc54, with current openpmix master my build succeeds (and I made sure it fails without your patch). There does not seem to be another place in OMPI where GCC strikes us out, at least for the configuration I had. |
Very good - thanks! |
fixed, in main and v5.0.x openpmix/openpmix@142625e |
- add missing construct_event_strings.py - add fix from upstream bug open-mpi/ompi#12169 which then triggers the usage of construct_event_strings.py Signed-off-by: Mika Laitio <lamikr@gmail.com>
- add missing construct_event_strings.py - add fix from upstream bug open-mpi/ompi#12169 which then triggers the usage of construct_event_strings.py fixes: #12 Signed-off-by: Mika Laitio <lamikr@gmail.com>
- add missing construct_event_strings.py - add fix from upstream bug open-mpi/ompi#12169 which then triggers the usage of construct_event_strings.py fixes: #12 Signed-off-by: Mika Laitio <lamikr@gmail.com>
Background information
The upcoming GCC 14 will be more picky about things that have been warnings so far:
https://discourse.nixos.org/t/rfc-more-c-errors-by-default-in-gcc-14/27390
This was already reported to break the 5.0.0 release on the user ML: https://www.mail-archive.com/users@lists.open-mpi.org/msg35255.html
The reported build failure was in
PMIxoshmem component and there may be other places in OMPI that are affected once the build progresses past PMIx.Ideally, we make sure Open MPI builds with GCC 14 before it is released.
For reference, the reported build error is:
The text was updated successfully, but these errors were encountered: