-
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
Allow OMPI to compile on OSX with gcc13 #12117
Conversation
c480a65
to
ebbdfd5
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.
Can you cite @eschnett somewhere? He did report these issues.
Per #12110 (comment), I don't actually have problems compiling OMPI with Homebrew-installed gcc 13.2.0. 🤷♂️
But most of these changes look good, anyway -- the only quibble I have is with SSIZE_MAX
(noted above).
ebbdfd5
to
fc96057
Compare
fc96057
to
4a79146
Compare
all the commits are unverified now. let me try to fix this. |
4a79146
to
533b8d6
Compare
The only way to get IOV_MAX (and friends) is to manually include the GCC specific syslimits.h header (sys/syslimits.h would not work either). Fixes open-mpi#12110 Signed-off-by: George Bosilca <[email protected]>
Manually define it based on the length of the ssize_t type. Fixes open-mpi#12109 Signed-off-by: George Bosilca <[email protected]>
Instead rely on OPAL_PATH_MAX #define. This complements the fix for open-mpi#12108 Signed-off-by: George Bosilca <[email protected]>
We need to discover the existence and then include sys/param.h while using the correctly named MPL defines. Fixes open-mpi#12108 Signed-off-by: George Bosilca <[email protected]>
cbadfa5
to
9347a55
Compare
Sorry, that was probably just because I pushed last night (i.e., I became the committer on those commits). The NVIDIA CI was failing last night; let's see if it passes today... |
Thanks @eschnett for reporting the 3 issues related to gcc13.
I am not entirely convinced the root cause is on OMPI side. It seems to me that some versions of gcc13.2 fail to define critical POSIX constants/defines (IOV_MAX, PATH_MAX and SSIZE_MAX) as well as their minimal values. Digging a little around it seems gcc13.2 (at least the MacPort variant) fails to use the OSX system headers to get these constants, aka. basically missing an #include_next on limits.h (this #include_next existed in gcc12).
Anyway, until we figure out the real solution I need to be able to compile on my laptop with gcc13.
Fixes #12108
Fixes #12109
Fixes #12110