Other build issues on macOS with clang 17.0.0: issue #4

40 views
Skip to first unread message

Marc Culler

unread,
Jul 23, 2025, 12:37:28 PMJul 23
to sage-release
4. The gap_packages spkg does not build.  The build fails on the semigroup package.  The failure is caused by C++ errors which presumably have been upgraded from warnings to errors in clang 17.0.0.  Some of these have been fixed upstream, but some have not.  The patch is non-trivial, so I wish I could upload it as a file.  But I don't seem to have that option.

diff -rc gap-4.14.0/pkg/semigroups/gapbind14/include/gapbind14/gapbind14.hpp src/pkg/semigroups/gapbind14/include/gapbind14/gapbind14.hpp
*** gap-4.14.0/pkg/semigroups/gapbind14/include/gapbind14/gapbind14.hpp Sat Oct 19 06:11:26 2024
--- src/pkg/semigroups/gapbind14/include/gapbind14/gapbind14.hpp Wed Jul 16 17:24:09 2025
***************
*** 70,77 ****
  // Typdefs for GAP
  ////////////////////////////////////////////////////////////////////////
 
- typedef Obj (*GVarFunc)(/*arguments*/);
-
  namespace gapbind14 {
 
    // Forward decl
--- 70,75 ----
***************
*** 288,298 ****
        static_assert(sizeof...(Args) > 0,
                      "there must be at least 1 parameter: Obj self");
        static_assert(sizeof...(Args) <= 7, "Args must be at most 7");
!       _funcs.push_back({detail::copy_c_str(nm),
!                         sizeof...(Args) - 1,
!                         detail::params_c_str(sizeof...(Args) - 1),
!                         (GVarFunc) func,
!                         detail::copy_c_str(fnm + ":Func" + nm)});
      }
 
      template <typename... Args>
--- 286,297 ----
        static_assert(sizeof...(Args) > 0,
                      "there must be at least 1 parameter: Obj self");
        static_assert(sizeof...(Args) <= 7, "Args must be at most 7");
!      
!       _funcs.push_back(StructGVarFunc{detail::copy_c_str(nm),
!               sizeof...(Args) - 1,
!               detail::params_c_str(sizeof...(Args) - 1),
!               (ObjFunc) func,
!               detail::copy_c_str(fnm + ":Func" + nm)});
      }
 
      template <typename... Args>
***************
*** 302,312 ****
                        Obj (*func)(Args...)) {
        static_assert(sizeof...(Args) <= 7, "Args must be at most 7");
        _mem_funcs.at(subtype(sbtyp))
!           .push_back({detail::copy_c_str(nm),
!                       sizeof...(Args) - 1,
!                       detail::params_c_str(sizeof...(Args) - 1),
!                       (GVarFunc) func,
!                       detail::copy_c_str(flnm + ":Func" + sbtyp + "::" + nm)});
      }
 
      void finalize();
--- 301,311 ----
                        Obj (*func)(Args...)) {
        static_assert(sizeof...(Args) <= 7, "Args must be at most 7");
        _mem_funcs.at(subtype(sbtyp))
!           .push_back(StructGVarFunc{detail::copy_c_str(nm),
!                   sizeof...(Args) - 1,
!                   detail::params_c_str(sizeof...(Args) - 1),
!                   (ObjFunc) func,
!                   detail::copy_c_str(flnm + ":Func" + sbtyp + "::" + nm)});
      }
 
      void finalize();
diff -rc gap-4.14.0/pkg/semigroups/gapbind14/src/gapbind14.cpp src/pkg/semigroups/gapbind14/src/gapbind14.cpp
*** gap-4.14.0/pkg/semigroups/gapbind14/src/gapbind14.cpp Sat Oct 19 06:11:26 2024
--- src/pkg/semigroups/gapbind14/src/gapbind14.cpp Wed Jul 16 17:30:54 2025
***************
*** 25,32 ****
 
  #include "gapbind14/gap_include.hpp"  // for Obj etc
 
! #define GVAR_ENTRY(srcfile, name, nparam, params) \
!   {#name, nparam, params, (GVarFunc) name, srcfile ":Func" #name}
 
  namespace gapbind14 {
    UInt T_GAPBIND14_OBJ = 0;
--- 25,34 ----
 
  #include "gapbind14/gap_include.hpp"  // for Obj etc
 
! #define GVAR_ENTRY(srcfile, name, nparam, params)                \
!   {                                                              \
! #name, nparam, params, (ObjFunc) name, srcfile ":Func" #name     \
!   }
 
  namespace gapbind14 {
    UInt T_GAPBIND14_OBJ = 0;
diff -rc gap-4.14.0/pkg/semigroups/src/pkg.cpp src/pkg/semigroups/src/pkg.cpp
*** gap-4.14.0/pkg/semigroups/src/pkg.cpp Sat Oct 19 06:11:26 2024
--- src/pkg/semigroups/src/pkg.cpp Wed Jul 16 17:30:45 2025
***************
*** 426,436 ****
 
  /*****************************************************************************/
 
- typedef Obj (*GVarFunc)(/*arguments*/);
-
  #define GVAR_ENTRY(srcfile, name, nparam, params)                 \
    {                                                               \
! #name, nparam, params, (GVarFunc) name, srcfile ":Func" #name \
    }
 
  // Table of functions to export
--- 426,434 ----
 
  /*****************************************************************************/
 
  #define GVAR_ENTRY(srcfile, name, nparam, params)                 \
    {                                                               \
! #name, nparam, params, (ObjFunc) name, srcfile ":Func" #name      \
    }
 
  // Table of functions to export

Reply all
Reply to author
Forward
0 new messages