ghc 4.08 under Win98 [was: Re: ghc 4.08 under WinNT]
I've just tried to fix that stub file problem on Win98 and now I'm even more confused: * Setting TMPDIR to a path with a drive letter works, no need to edit the Perl driver. Without a drive letter, Perl/Bash/Cygwin seems to forget the drive and/or the location of the tmp dir. * OK, so I've tried a simple HelloWorld app next, but failed immediately again: The resulting main.exe can't find HSSTD.DLL. Where is it searching? How can I find that out from an .exe? How can I set the DLL search path at compilation time? Things I definitely knew in the past, but happily forgot. * Cunningly I've tried -static then, but linking failed with: Main.o(.text+0x1c):fake: undefined reference to `_imp__PrelBase_unpackCStringzh_closure' Main.o(.text+0x20):fake: undefined reference to `_imp__PrelIO_putStrLn_closure' Main.o(.text+0x3a):fake: undefined reference to `_imp__stg_gc_enter_1' Main.o(.text+0x3f):fake: undefined reference to `_imp__upd_frame_info' Main.o(.text+0x66):fake: undefined reference to `_imp__PrelBase_unpackCStringzh_closure' Main.o(.text+0x8e):fake: undefined reference to `_imp__stg_gc_enter_1' Main.o(.text+0x93):fake: undefined reference to `_imp__CAF_BLACKHOLE_info' Main.o(.text+0x9b):fake: undefined reference to `_imp__IND_STATIC_info' Main.o(.text+0xb1):fake: undefined reference to `_imp__upd_frame_info' Main.o(.text+0xd9):fake: undefined reference to `_imp__PrelIO_putStrLn_closure' collect2: ld returned 1 exit status At least Cygwin didn't crash my Win98 box, which it easily does after emitting some obscure error messages when -split-objs is given to GHC for large files. I forgot the exact text of the messages, but cut'n'paste is a little bit hard when your box is thrashing and about to die in the next 3 seconds. Although I'd really like to make a compatibility release for HOpenGL, personally I declare Windows deprecated for now and switch back to Diablo II... Frustrated, Sven
En: ghc 4.08 under WinNT
I would like just to say that I had no problems to upgrade my GHC 4.045 to 4.08 in WinNT 4.0 Workstation... My biggest problems was during 4.045 installation when I had to set a path with a MS strange directory (c:/tmp instead of c:\tmp) and perl. - Original Message - From: Sven Panne [EMAIL PROTECTED] To: GHC Users [EMAIL PROTECTED] Sent: Sunday, July 23, 2000 1:25 PM Subject: Re: ghc 4.08 under WinNT It seems like the saga continues: With Reuben's TMPDIR-fix the handling of stub files (for foreign export dynamic) is broken: ... Copy foreign export C stubs: rm -f GLU_Quadrics_stub.c echo '#include "GLU_Quadrics_stub.h"' GLU_Quadrics_stub.c cat C:/tmp/ghc1139_stb.c GLU_Quadrics_stub.c 0.00user 0.00system 0:00.11elapsed 0%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (0major+0minor)pagefaults 0swaps C compiler: gcc -v -S -Wimplicit -O -mno-cygwin -DSTOLEN_X86_REGS=4 -I. -Id:/programm e/ghc-4.08/lib/includes ghc1139.c C:/tmp/ghc1139.ccout 21 ( if ghc1139.s != C:/tmp/ghc1139.s ] ; then mv ghc1139.s C:/tmp/ghc1139.s ; else exit 0 ; fi ) mv: cannot move `ghc1139.s' to `C:/tmp/ghc1139.s': File exists Double-*sigh* :-( The invention of drive letters marks one of the darkest days in computer science... Cheers, Sven
Re: ghc 4.08 under WinNT
It seems like the saga continues: With Reuben's TMPDIR-fix the handling of stub files (for foreign export dynamic) is broken: ... Copy foreign export C stubs: rm -f GLU_Quadrics_stub.c echo '#include "GLU_Quadrics_stub.h"' GLU_Quadrics_stub.c cat C:/tmp/ghc1139_stb.c GLU_Quadrics_stub.c 0.00user 0.00system 0:00.11elapsed 0%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (0major+0minor)pagefaults 0swaps C compiler: gcc -v -S -Wimplicit -O -mno-cygwin -DSTOLEN_X86_REGS=4 -I. -Id:/programme/ghc-4.08/lib/includes ghc1139.c C:/tmp/ghc1139.ccout 21 ( if [ ghc1139.s != C:/tmp/ghc1139.s ] ; then mv ghc1139.s C:/tmp/ghc1139.s ; else exit 0 ; fi ) mv: cannot move `ghc1139.s' to `C:/tmp/ghc1139.s': File exists Double-*sigh* :-( The invention of drive letters marks one of the darkest days in computer science... Cheers, Sven
Re: ghc 4.08 under WinNT
I spoke too soon. I can only compile from C:\ not from any subdirectory, i.e. not just failure from another drive. This I can't reproduce. Failure to compile from another drive, I can. A fix is to edit C:/ghc/ghc-4.08/bin/ghc in the following way: change the definition of $TMPDIR near the top to be $TMPDIR='C:/tmp'; and lower down find the line that says if ( $ENV{'TMPDIR'} ) ... and insert $ENV{'TMPDIR'} = $TMPDIR; directly before it. Fiddling with the driver script directly is necessary because even if you set the environment variable TMPDIR to C:/tmp, bash reduces it to /tmp, and even if you set it in your .bashrc, Perl mangles it to /tmp. Aargh. -- http://sc3d.org/rrt/ L'art des vers est de transformer en beautés les faiblesses (Aragon)