[HOpenGL] Re: ANNOUNCE: GHC version 6.0

Sven Panne Sven.Panne@informatik.uni-muenchen.de
Sat, 31 May 2003 17:55:01 +0200


[ Redirected to hopengl mailing list ]

Ralf Hinze wrote:
 >>Compiling 6.0 from source fails with:
 >>
 >>../../ghc/compiler/ghc-inplace -H16m -O -Wall -fffi -Iinclude '-#include
 >>"HsOpenGL.h"' -cpp -I/usr/X11R6/include -DCALLCONV=ccall
 >>'-DGET_PROC_ADDRESS="glXGetProcAddressARB"' -package-name OpenGL -O
 >>-Rghc-timing  -package base -split-objs    -c
 >>Graphics/Rendering/OpenGL/GL/Extensions.hs -o
 >>Graphics/Rendering/OpenGL/GL/Extensions.o  -ohi
 >>Graphics/Rendering/OpenGL/GL/Extensions.hi
 >>Graphics/Rendering/OpenGL/GL/Extensions.hs:42: parse error on input
 >>`glXGetProcAddressARB' <<ghc: 3261568 bytes, 2 GCs, 20548/20548 avg/max
 >>bytes residency (1 samples), 5M in use, 0.00 INIT (0.00 elapsed), 0.01 MUT
 >>(0.09 elapsed), 0.01 GC (0.03 elapsed) :ghc>> make[2]: ***
 >>[Graphics/Rendering/OpenGL/GL/Extensions.o] Fehler 1
 >>make[1]: *** [all] Fehler 1
 >>make[1]: Leaving directory
 >>`/var/tmp/portage/ghc-6.0/work/stage2-build/libraries' make: *** [build]
 >>Fehler 1
 >
 >
 > The following patch worked for me (but does it cure the problem?)
 >
 > irrwisch root # diff libraries/OpenGL/Graphics/Rendering/OpenGL/GL/Extensions.hs libraries/OpenGL/Graphics/Rendering/OpenGL/GL/Extensions.hs-orig
 > 42c42
 > < foreign import CALLCONV unsafe GET_PROC_ADDRESS ::
 > ---
 >
 >>foreign import CALLCONV unsafe GET_PROC_ADDRESS glXGetProcAddressARB ::

Hmmmm, that's definitely no solution. What platform exactly are you
using? (ghc used for building, gcc version, etc.) Calling make with

    EXTRA_HC_OPTS="-v -keep-tmp-files"

and sending the output plus the generated *.hscpp file might help. I
guess that something goes wrong during the preprocessing stage. On a
non-WinDoze platform the last lines of Extensions.hs should expand
into:

    foreign import ccall unsafe "glXGetProcAddressARB" glXGetProcAddressARB ::
       CString -> IO (FunPtr a)

On WinDoze they should expand into:

    foreign import stdcall unsafe "wglGetProcAddress" glXGetProcAddressARB ::
       CString -> IO (FunPtr a)

Cheers,
    S.