diff --git a/CMakeLists.txt b/CMakeLists.txt index 46ae1f921..c29b4c5ab 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -287,6 +287,9 @@ if(CMAKE_Fortran_COMPILER_ID STREQUAL "GNU") endif() if(CMAKE_C_COMPILER_ID STREQUAL "GNU") + if(CMAKE_C_COMPILER_VERSION VERSION_GREATER "14.0") + add_compile_options(-std=gnu17) + endif() if(ENABLE_CXX) if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") add_compile_options(-fno-aggressive-loop-optimizations) diff --git a/Makefile.am b/Makefile.am index 3b4a6f122..2b67d67b5 100644 --- a/Makefile.am +++ b/Makefile.am @@ -63,6 +63,7 @@ AM_CFLAGS += $(GA_COPT) AM_CFLAGS += $(GA_C_WARN) AM_CFLAGS += $(CFLAG_NO_LOOP_OPT) AM_CFLAGS += $(CFLAG_NO_LOOP_VECT) +AM_CFLAGS += $(CFLAG_STD_GNU17) AM_CXXFLAGS += $(GA_CXXOPT) AM_CXXFLAGS += $(GA_CXX_WARN) diff --git a/configure.ac b/configure.ac index 7ab91f6d1..1f86160e0 100644 --- a/configure.ac +++ b/configure.ac @@ -179,6 +179,7 @@ GA_SYS_WEAK_ALIAS GA_UNION_SEMUN GA_GNU_LOOP_OPT GA_GNU_LOOP_VECT +GA_GNU_STD_GNU17 # Checks for C type sizes. AC_CHECK_SIZEOF([void*]) diff --git a/global/src/sketch.c b/global/src/sketch.c index f205029b3..79dd477b5 100644 --- a/global/src/sketch.c +++ b/global/src/sketch.c @@ -196,7 +196,7 @@ Integer pnga_sprs_array_count_sketch(Integer s_a, Integer size_k, pnga_put(*g_k,lo,hi,kbuf,&ld); free(kbuf); pnga_put(*g_w,lo,hi,kweights,&ld); - pnga_sync(SPA[hdl].grp); + pnga_pgroup_sync(SPA[hdl].grp); /* Create an output matrix of size_k by jdim */ g_a = pnga_create_handle(); if (trans) { diff --git a/m4/ga_gnu_std_gnu17.m4 b/m4/ga_gnu_std_gnu17.m4 new file mode 100644 index 000000000..ffca7473e --- /dev/null +++ b/m4/ga_gnu_std_gnu17.m4 @@ -0,0 +1,23 @@ +# GA_GNU_STD_GNU17 +# --------------- +# Add -std=gnu17 to the compiler flags if using +# GNU compilers to avoid -std=gnu23 issues +AC_DEFUN([GA_GNU_STD_GNU17], [ +AC_PREREQ([2.69]) dnl for _AC_LANG_PREFIX +AC_CACHE_CHECK([for -std=gnu17 support in _AC_LANG compiler], + ga_cv_[]_AC_LANG_ABBREV[]_gnu_std_gnu17, [ + ga_cv_[]_AC_LANG_ABBREV[]_gnu_std_gnu17= + save_[]_AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS" + []_AC_LANG_PREFIX[]FLAGS="$save_[]_AC_LANG_PREFIX[]FLAGS -std=gnu17" + save_ac_[]_AC_LANG_ABBREV[]_werror_flag="$ac_[]_AC_LANG_ABBREV[]_werror_flag" + AC_LANG_WERROR + rm -f a.out + touch a.out + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + ga_cv_[]_AC_LANG_ABBREV[]_gnu_std_gnu17=-std=gnu17) + []_AC_LANG_PREFIX[]FLAGS="$save_[]_AC_LANG_PREFIX[]FLAGS" + ac_[]_AC_LANG_ABBREV[]_werror_flag="$save_ac_[]_AC_LANG_ABBREV[]_werror_flag" + rm -f a.out + ]) + AC_SUBST([]_AC_LANG_PREFIX[]FLAG_STD_GNU17, $ga_cv_[]_AC_LANG_ABBREV[]_gnu_std_gnu17) +])