# Undefined symbols: "_hs_GLUT_getProcAddress", referenced from: _hugsprim_hs_GLUT_getProcAddress_0 in ccZecAVF.o # Fix from: https://mail.haskell.org/pipermail/haskell-cafe/2007-September.txt --- packages/GLUT/Graphics/UI/GLUT/Extensions.hs.orig 2006-09-21 04:15:16.000000000 +0545 +++ packages/GLUT/Graphics/UI/GLUT/Extensions.hs 2022-08-08 00:43:36.000000000 +0545 @@ -42,5 +42,5 @@ getProcAddressInternal :: String -> IO (FunPtr a) getProcAddressInternal call = withCString call hs_GLUT_getProcAddress -foreign import CALLCONV unsafe "hs_GLUT_getProcAddress" hs_GLUT_getProcAddress +foreign import CALLCONV unsafe "glutGetProcAddress" hs_GLUT_getProcAddress :: CString -> IO (FunPtr a) --- packages/GLUT/cbits/HsGLUT.c.orig 2006-09-21 04:15:16.000000000 +0545 +++ packages/GLUT/cbits/HsGLUT.c 2022-08-08 00:46:25.000000000 +0545 @@ -43,22 +43,3 @@ } return (void*)0; } - -/* procName is really a const char*, but currently we can't specify this in - Haskell's FFI and consequently get a warning from the C compiler. */ -void* -hs_GLUT_getProcAddress(char *procName) -{ -#if (FREEGLUT || GLUT_API_VERSION >= 5) -#if GLUT_GET_PROC_ADDRESS_IS_BROKEN - /* There are a few typos/omissions in freeglut 2.20 */ - if (strcmp(procName, "glutWireCylinder" ) == 0) return (void*)glutWireCylinder; - if (strcmp(procName, "glutSolidCylinder" ) == 0) return (void*)glutSolidCylinder; - if (strcmp(procName, "glutWireSierpinskiSponge" ) == 0) return (void*)glutWireSierpinskiSponge; - if (strcmp(procName, "glutSolidSierpinskiSponge") == 0) return (void*)glutSolidSierpinskiSponge; -#endif - return glutGetProcAddress(procName); -#else - return (void*)0; -#endif -}