#ifndef GL_ARB_shader_objects
/* GL types for program/shader text and shader object handles */
typedef char GLcharARB;
+#ifdef __APPLE__
+typedef unsigned long GLhandleARB;
+#else
typedef unsigned int GLhandleARB;
#endif
+#endif
/* GL type for "half" precision (s10e5) float data in host memory */
#ifndef GL_ARB_half_float_pixel
--- /dev/null
+# MacOSX doesn't follow the official glext.h definition for GLhandleARB, and
+# instead defines it as:
+#
+# typedef void *GLhandleARB;
+#
+# But to avoid integer to pointer conversion issues, we simply use 'unsigned
+# long' which should be the same size on all supported architectures.
+
+/^typedef unsigned int GLhandleARB;$/ {
+
+ i\
+#ifdef __APPLE__\
+typedef unsigned long GLhandleARB;\
+#else
+
+ a\
+#endif
+
+}