|
[Fwd: bug in argument processing in hsc2hs]: msg#00078lang.haskell.glasgow.bugs
Oops. Looks like I sent this to the wrong list... -Antony -------- Original Message -------- Subject: bug in argument processing in hsc2hs Date: Sun, 19 Dec 2004 09:50:19 -0500 From: Antony Courtney <antony@xxxxxxxxxxxx> To: cvs-ghc@xxxxxxxxxxx I'm trying to upgrade my Java/Haskell interoperability framework to the latest Java version. Unfortunately, however, it appears that hsc2hs can't deal with embedded spaces in command line arguments. The default install location for the latest JDK under Windows has changed to "C:/Program Files/Java/jdk1.5.0" (note embdedded space), and include files (like <jni.h>) are found in the "include" subdirectory of above. Unfortunately, it appears hsc2hs does some kind of extra parsing of its arguments somewhere, and gets very very confused by the extra spaces. Adding a --cflag=-v to hsc2hs is somewhat illuminating about what's going wrong: $ hsc2hs --cflag=-v -I"C:/Program Files/Java/jdk1.5.0/include" -I"C:/Program Files/Java/jdk1.5.0/include/win32" test2.hsc Glasgow Haskell Compiler, Version 6.2.2, for Haskell 98, compiled by GHC version 6.0.1 Using package config file: c:\ghc\ghc-6.2.2\package.conf [...] *** C Compiler c:\ghc\ghc-6.2.2\gcc -Bc:\ghc\ghc-6.2.2\gcc-lib/ test2_hsc_make.c -o c:\DOCUME~1\antony\LOCALS~1\Temp\ghc2688.s -DDONT_WANT_WIN32_DLL_SUPPORT -v -S -Wimplicit -O -D__GLASGOW_HASKELL__=602 -ffloat-store -I . -I C -I /Program -I C -I /Program -I c:/ghc/ghc-6.2.2/include -I c:/ghc/ghc-6.2.2/include/mingw Note the suspicious "-I C -I /Program" args, which suggests that somebody somewhere is re-parsing the arguments to hsc2hs... I tried to work around this by using an explicit --cc=gcc argument to hsc2hs, but then I get complaints from gcc about being unable to use -c and -S, leading me to think that hsc2hs makes some assumptions about ghc being the C compiler. I've attached a little test program and Makefile to demonstrate the bug. You can re-create the bug with: $ make test2.hs Any help or workarounds would be much appreciated. Thanks, -Antony -- Antony Courtney email: antony@xxxxxxxxxxxx New York, NY WWW: http://www.apocalypse.org/~antony #include <stdio.h> #include <stdlib.h> /* for gcc: */ #define __int64 long long #include <jni.h> JDK = C:/Program Files/Java/jdk1.5.0 CPPFLAGS = -I"$(JDK)/include" -I"$(JDK)/include/win32" CFLAGS = $(CPPFLAGS) # CC = C:/ghc/ghc-6.2.2/bin/ghc # We'd like to do things this way, but it looks like either # hsc2hs or ghc can't handle embedded spaces in arguments: %.hs : %.hsc hsc2hs --cflag=-v $(CPPFLAGS) $< # Attempted workaround: This doesn't work either, because hsc2hs actually # makes a bunch of assumptions about the C compiler and passes arguments to # it that don't actually work with ghc... #%.hs : %.hsc # hsc2hs --cc=gcc --cflag=-V --cflag=-I"$(JDK)/include" --cflag=-I"$(JDK)/include/win32" --ld=ghc -DHSC $(CPPFLAGS) $< module Test2 where import Foreign import Foreign.C.Types import CString #define FFIJNI_IMPL #include <jni.h> _______________________________________________ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@xxxxxxxxxxx http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | [ ghc-Bugs-1063880 ] GHCi on Windows can't stand control-C, SourceForge.net |
|---|---|
| Next by Date: | Re: [Fwd: bug in argument processing in hsc2hs], Sven Panne |
| Previous by Thread: | [ ghc-Bugs-995658 ] hReady always returns True when used on win32 non-Console, SourceForge.net |
| Next by Thread: | Re: [Fwd: bug in argument processing in hsc2hs], Sven Panne |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |