From 6e98f88c51e41019a6d5d66aaf7d2fcd4927504b Mon Sep 17 00:00:00 2001 From: Veselin Dobrev Date: Thu, 15 May 2025 23:19:23 -0700 Subject: [PATCH] glew: add patch for mesa >= 24.0.0 (#50401) Co-authored-by: Massimiliano Culpo --- .../packages/glew/mesa-24.0.0-osmesa.patch | 57 +++++++++++++++++++ .../builtin/packages/glew/package.py | 3 + 2 files changed, 60 insertions(+) create mode 100644 var/spack/repos/spack_repo/builtin/packages/glew/mesa-24.0.0-osmesa.patch diff --git a/var/spack/repos/spack_repo/builtin/packages/glew/mesa-24.0.0-osmesa.patch b/var/spack/repos/spack_repo/builtin/packages/glew/mesa-24.0.0-osmesa.patch new file mode 100644 index 00000000000..ca29afa6a40 --- /dev/null +++ b/var/spack/repos/spack_repo/builtin/packages/glew/mesa-24.0.0-osmesa.patch @@ -0,0 +1,57 @@ +diff -r -u a/src/glew.c b/src/glew.c +--- a/src/glew.c 2020-03-15 04:53:59.000000000 -0700 ++++ b/src/glew.c 2025-05-10 09:30:10.610259000 -0700 +@@ -38,7 +38,15 @@ + + #if defined(GLEW_OSMESA) + # define GLAPI extern ++# ifndef APIENTRY ++# define APIENTRY ++# define GLEW_APIENTRY_DEFINED ++# endif + # include ++# ifdef GLEW_APIENTRY_DEFINED ++# undef APIENTRY ++# undef GLEW_APIENTRY_DEFINED ++# endif + #elif defined(GLEW_EGL) + # include + #elif defined(_WIN32) +diff -r -u a/src/glewinfo.c b/src/glewinfo.c +--- a/src/glewinfo.c 2020-03-15 04:53:59.000000000 -0700 ++++ b/src/glewinfo.c 2025-05-10 09:45:02.853885000 -0700 +@@ -38,7 +38,15 @@ + #include + #elif defined(GLEW_OSMESA) + #define GLAPI extern ++#ifndef APIENTRY ++# define APIENTRY ++# define GLEW_APIENTRY_DEFINED ++#endif + #include ++#ifdef GLEW_APIENTRY_DEFINED ++# undef APIENTRY ++# undef GLEW_APIENTRY_DEFINED ++#endif + #elif defined(_WIN32) + #include + #elif !defined(__APPLE__) && !defined(__HAIKU__) || defined(GLEW_APPLE_GLX) +diff -r -u a/src/visualinfo.c b/src/visualinfo.c +--- a/src/visualinfo.c 2020-03-15 04:53:59.000000000 -0700 ++++ b/src/visualinfo.c 2025-05-10 09:45:38.136185000 -0700 +@@ -36,7 +36,15 @@ + #include + #if defined(GLEW_OSMESA) + #define GLAPI extern ++#ifndef APIENTRY ++# define APIENTRY ++# define GLEW_APIENTRY_DEFINED ++#endif + #include ++#ifdef GLEW_APIENTRY_DEFINED ++# undef APIENTRY ++# undef GLEW_APIENTRY_DEFINED ++#endif + #elif defined(GLEW_EGL) + #include + #elif defined(_WIN32) diff --git a/var/spack/repos/spack_repo/builtin/packages/glew/package.py b/var/spack/repos/spack_repo/builtin/packages/glew/package.py index 2d182accef9..16b8fc40df7 100644 --- a/var/spack/repos/spack_repo/builtin/packages/glew/package.py +++ b/var/spack/repos/spack_repo/builtin/packages/glew/package.py @@ -28,6 +28,9 @@ class Glew(CMakePackage): # glu is already forcibly disabled in the CMakeLists.txt. This prevents # it from showing up in the .pc file patch("remove-pkgconfig-glu-dep.patch") + # Define APIENTRY in osmesa build if not defined, see + # https://github.com/nigels-com/glew/pull/407 + patch("mesa-24.0.0-osmesa.patch", when="^mesa@24.0.0:") def cmake_args(self): spec = self.spec