-
Notifications
You must be signed in to change notification settings - Fork 405
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
libfabric 2.0.0 fails to build with gcc 15 #10796
Comments
This can be worked around by setting |
It's not mentioned there, but --- a/prov/opx/include/rdma/opx/fi_opx.h
+++ b/prov/opx/include/rdma/opx/fi_opx.h
@@ -271,7 +271,7 @@ static inline void always_assert (bool val, char *msg)
// Useful for checking that structures are the correct size and other
// compile-time tests. static_assert has existed since C11 so this
// should be safe, but we have an else clause just in case.
-#if defined(static_assert)
+#if __STDC_VERSION__ >= 201112L
#define OPX_COMPILE_TIME_ASSERT(cond, msg) static_assert(cond,msg)
#else
#define OPX_COMPILE_TIME_ASSERT(cond, msg) if(0){switch(0){case 0:case cond:;}} Once you get past that, there is more though:
This is explained in the GCC 15 doc; in C23, the interpretation of function declarations without parameters changed from unspecified (as in K&R) to --- a/prov/opx/include/fi_opx_tid_cache.h
+++ b/prov/opx/include/fi_opx_tid_cache.h
@@ -49,8 +49,8 @@
int opx_tid_cache_setup(struct ofi_mr_cache **cache,
struct opx_tid_domain *domain);
-int opx_tid_cache_add_abort();
-void opx_tid_cache_delete_abort();
+int opx_tid_cache_add_abort(struct ofi_mr_cache *, struct ofi_mr_entry *);
+void opx_tid_cache_delete_abort(struct ofi_mr_cache *, struct ofi_mr_entry *);
enum opx_tid_cache_entry_status {
OPX_TID_CACHE_ENTRY_NOT_FOUND = 0,
--- a/prov/opx/src/fi_opx_tid_cache.c
+++ b/prov/opx/src/fi_opx_tid_cache.c
@@ -2059,13 +2059,13 @@ void opx_tid_cache_cleanup(struct ofi_mr_cache *cache)
assert(cache->uncached_size == 0);
}
-int opx_tid_cache_add_abort(){
+int opx_tid_cache_add_abort(struct ofi_mr_cache *, struct ofi_mr_entry *){
fprintf(stderr, "%s unexpected function call\n", __func__);
abort();
return 0;
}
-void opx_tid_cache_delete_abort(){
+void opx_tid_cache_delete_abort(struct ofi_mr_cache *, struct ofi_mr_entry *){
fprintf(stderr, "%s unexpected function call\n", __func__);
abort();
}
|
Describe the bug
Fedora has updated gcc to 15. libfabric fails to build with:
To Reproduce
Build on Fedora 42+ with gcc 15.
The text was updated successfully, but these errors were encountered: