Port Mesa to build on a P64 platform (e.g., Win64). P64 platforms
use 64-bit pointers and 32-bit longs. So, operations like casting pointers
to unsigned long and back to pointer won't work. glheader.h now
includes files to define uintptr_t, which should instead be used for
this sort of operation. It is an integer type that is the same size
as a pointer.
diff --git a/src/mesa/shader/arbprogram.c b/src/mesa/shader/arbprogram.c
index ad8683f..43baab4 100644
--- a/src/mesa/shader/arbprogram.c
+++ b/src/mesa/shader/arbprogram.c
@@ -509,7 +509,7 @@
switch (pname) {
case GL_PROGRAM_LENGTH_ARB:
- *params = prog->String ? _mesa_strlen((char *) prog->String) : 0;
+ *params = prog->String ? (GLint)_mesa_strlen((char *) prog->String) : 0;
break;
case GL_PROGRAM_FORMAT_ARB:
*params = prog->Format;