[Haskell-cafe] Problems with building GCJNI 1.2

Dmitri Pissarenko mailing-lists at dapissarenko.com
Tue Feb 15 16:33:30 EST 2005


Hello!

I am trying to build GCJNI 1.2 under Windows (cygwin) with GHC 6.2.1 and Green
Card 3.01.

I am getting following error messages when entering "make".

<error-messages>
$ make
make -C src
make[1]: Entering directory `/cygdrive/c/dapWork/temp/downloads/gcjni/gcjni-
1.2/
src'
gcc -MM -I/cygdrive/c/Programme/Java/jdk1.5.0/include -I./win32
> .c_dependences
 jniInit.c util.c || (rm -f .c_dependences ; exit 1)
m4 JNI.m4 > JNI.hs
m4 GCJNI.m4 > GCJNI.gc
/cygdrive/c/Programme/GreenCard/lib/greencard-3.01/greencard-bin --target ghc -
i
/cygdrive/c/Programme/GreenCard/lib/greencard-3.01/imports --
libdir=/cygdrive/c/
Programme/GreenCard/lib/greencard-3.01/ GCJNI.gc
Warning: unable to find StdDIS along the import
path: /cygdrive/c/Programme/Gree
nCard/lib/greencard-3.01/, /cygdrive/c/Programme/GreenCard/lib/greencard-
3.01/im
ports,
user error ("GCJNI.gc", proc. spec "gcJniJObjectToString", line 139:
      marshall: Don't know how to marshall (declare { jniObjRef_t * } oref in
(J
Object (foreign oref {jniFreeObjRef})))

"GCJNI.gc", proc. spec "jniGetJVMState", line 156:
      Don't know how to unmarshall ((JVM (addr vmp)),(JEnv (addr envp)))

"GCJNI.gc", proc. spec "jniGetEnv", line 160:
      Don't know how to unmarshall (JEnv (addr envp))

"GCJNI.gc", proc. spec "jniFreeVM", line 167:
      marshall: Don't know how to marshall (JVM (addr vm))

"GCJNI.gc", proc. spec "jniAddClassPath", line 181:
      marshall: Don't know how to marshall (string s)

"GCJNI.gc", proc. spec "jniAddJVMOpt", line 188:
      marshall: Don't know how to marshall (string s)

"GCJNI.gc", proc. spec "jniFindClass", line 192:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "jniIsInstanceOf", line 200:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniExceptionOccurred", line 206:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "jniExceptionDescribe", line 211:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "jniExceptionClear", line 215:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniDeleteLocalRef", line 224:
      marshall: Don't know how to marshall (declare { jniObjRef_t * } oref in
(J
Object (foreign oref {jniFreeObjRef})))

"GCJNI.gc", proc. spec "jniNewLocalRef", line 230:
      marshall: Don't know how to marshall (declare { jniObjRef_t * } lsrc in
(J
Object (foreign lsrc {jniFreeObjRef})))

"GCJNI.gc", proc. spec "jniNewGlobalRef", line 239:
      marshall: Don't know how to marshall (declare { jniObjRef_t * } loref in
(
JObject (foreign loref {jniFreeObjRef})))

"GCJNI.gc", proc. spec "jniGetStaticMethodID", line 248:
      marshall: Don't know how to marshall (declare { jniObjRef_t * } cls in
(JO
bject (foreign cls {jniFreeObjRef})))

"GCJNI.gc", proc. spec "jniGetMethodID", line 255:
      marshall: Don't know how to marshall (declare { jniObjRef_t * } cls in
(JO
bject (foreign cls {jniFreeObjRef})))

"GCJNI.gc", proc. spec "jniGetStaticFieldID", line 263:
      marshall: Don't know how to marshall (declare { jniObjRef_t * } cls in
(JO
bject (foreign cls {jniFreeObjRef})))

"GCJNI.gc", proc. spec "jniGetFieldID", line 270:
      marshall: Don't know how to marshall (declare { jniObjRef_t * } cls in
(JO
bject (foreign cls {jniFreeObjRef})))

"GCJNI.gc", proc. spec "jniNewStringUTF", line 277:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "jniNewObjectArray", line 285:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniObjToJValue", line 295:
      marshall: Don't know how to marshall (declare { jniObjRef_t * } oref in
(J
Object (foreign oref {jniFreeObjRef})))

"GCJNI.gc", proc. spec "gcJniObjFromJValue", line 304:
      marshall: Don't know how to marshall (addr jvalp)

"GCJNI.gc", proc. spec "jniPushLocalFrame", line 311:
      marshall: Don't know how to marshall (int count)

"GCJNI.gc", proc. spec "gcJniIntToJValue", line 325:
      marshall: Don't know how to marshall (int val)

"GCJNI.gc", proc. spec "gcJniIntFromJValue", line 330:
      marshall: Don't know how to marshall (addr jvalp)

"GCJNI.gc", proc. spec "gcJniFloatToJValue", line 335:
      marshall: Don't know how to marshall (float val)

"GCJNI.gc", proc. spec "gcJniFloatFromJValue", line 340:
      marshall: Don't know how to marshall (addr jvalp)

"GCJNI.gc", proc. spec "gcJniDoubleToJValue", line 345:
      marshall: Don't know how to marshall (double val)

"GCJNI.gc", proc. spec "gcJniDoubleFromJValue", line 350:
      marshall: Don't know how to marshall (addr jvalp)

"GCJNI.gc", proc. spec "gcJniBoolToJValue", line 355:
      marshall: Don't know how to marshall (bool val)

"GCJNI.gc", proc. spec "gcJniBoolFromJValue", line 360:
      marshall: Don't know how to marshall (addr jvalp)

"GCJNI.gc", proc. spec "gcJniCharToJValue", line 365:
      marshall: Don't know how to marshall (char val)

"GCJNI.gc", proc. spec "gcJniCharFromJValue", line 370:
      marshall: Don't know how to marshall (addr jvalp)

"GCJNI.gc", proc. spec "gcJniAllocJValue", line 377:
      marshall: Don't know how to marshall (int nv)

"GCJNI.gc", proc. spec "gcJniFree", line 386:
      marshall: Don't know how to marshall (addr a)

"GCJNI.gc", proc. spec "gcJniCallStaticVoidMethod", line 391:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniCallVoidMethod", line 396:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniCallNonvirtualVoidMethod", line 401:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniGetStaticObjectField", line 406:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniGetObjectField", line 414:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniCallStaticObjectMethod", line 422:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniCallObjectMethod", line 430:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniCallNonvirtualObjectMethod", line 439:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniGetStaticIntField", line 451:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniGetIntField", line 457:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniCallStaticIntMethod", line 463:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniCallIntMethod", line 469:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniCallNonvirtualIntMethod", line 474:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniGetStaticCharField", line 481:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniGetCharField", line 487:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniCallStaticCharMethod", line 493:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniCallCharMethod", line 499:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniCallNonvirtualCharMethod", line 504:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniGetStaticByteField", line 511:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniGetByteField", line 517:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniCallStaticByteMethod", line 523:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniCallByteMethod", line 529:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniCallNonvirtualByteMethod", line 534:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniGetStaticFloatField", line 541:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniGetFloatField", line 547:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniCallStaticFloatMethod", line 553:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniCallFloatMethod", line 559:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniCallNonvirtualFloatMethod", line 564:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniGetStaticDoubleField", line 571:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniGetDoubleField", line 577:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniCallStaticDoubleMethod", line 583:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniCallDoubleMethod", line 589:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniCallNonvirtualDoubleMethod", line 594:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniGetStaticBooleanField", line 601:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniGetBooleanField", line 607:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniCallStaticBooleanMethod", line 613:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniCallBooleanMethod", line 619:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniCallNonvirtualBooleanMethod", line 624:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniNewObject", line 635:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniIsSameObject", line 649:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniGetObjectClass", line 658:
      marshall: Don't know how to marshall (JEnv (addr env))

"GCJNI.gc", proc. spec "gcJniAllocArgLocals", line 677:
      marshall: Don't know how to marshall (int capacity)

"GCJNI.gc", proc. spec "gcJniFreeArgLocals", line 682:
      marshall: Don't know how to marshall (addr als)

)

make[1]: *** [GCJNI.hs] Error 1
make[1]: Leaving directory `/cygdrive/c/dapWork/temp/downloads/gcjni/gcjni-
1.2/s
rc'
make: *** [src] Error 2
</error-messages>

I think that the error is caused by missing StdDIS file in the GreenCard
directory.

The files in this directory are (ls -lAR):

<filelist>
.:
total 0
drwxr-xr-x+ 2 eleonora Kein 0 Feb 15 21:55 bin
drwxr-xr-x+ 3 eleonora Kein 0 Feb 15 21:47 lib

./bin:
total 1
-rwxr-xr-x  1 eleonora Kein 164 Feb 15 21:55 greencard

./lib:
total 0
drwxr-xr-x+ 4 eleonora Kein 0 Feb 15 21:55 greencard-3.01

./lib/greencard-3.01:
total 1867
drwxr-xr-x+ 2 eleonora Kein       0 Feb 15 21:55 Foreign
-rwxr-xr-x  1 eleonora Kein 1895082 Feb 15 21:55 greencard-bin.exe
drwxr-xr-x+ 3 eleonora Kein       0 Feb 15 21:55 imports
-rwxr-xr-x  1 eleonora Kein    6612 Feb 15 21:55 libHSgreencard.a
-rwxr-xr-x  1 eleonora Kein    8670 Feb 15 21:55 libHSgreencard.p_a

./lib/greencard-3.01/Foreign:
total 4
-rwxr-xr-x  1 eleonora Kein 3309 Feb 15 21:55 GreenCard.gc

./lib/greencard-3.01/imports:
total 0
drwxr-xr-x+ 2 eleonora Kein 0 Feb 15 21:55 Foreign

./lib/greencard-3.01/imports/Foreign:
total 16
-rwxr-xr-x  1 eleonora Kein 7392 Feb 15 21:55 GreenCard.hi
-rwxr-xr-x  1 eleonora Kein 7397 Feb 15 21:55 GreenCard.p_hi
</filelist>

As you see, there is no StdDIS file among them.

AFAIK, the installation of GreenCard 3.01 was successful.

I would like to receive a hint about how this problem can be solved.

TIA

Dmitri Pissarenko
--
Dmitri Pissarenko
Software Engineer
http://dapissarenko.com


More information about the Haskell-Cafe mailing list