[pylucene-dev] Re: using JCC

Andi Vajda vajda at osafoundation.org
Wed Feb 20 08:49:32 PST 2008


On Wed, 20 Feb 2008, Bill Janssen wrote:

>> The error is pretty clear about what's going on. You're picking up a
>> gcj header file.
>
> Sure.  But why?  More specifically, why can I compile PyLucene with
> this installation of JCC on this machine, but not my jar file?  Same
> invocation of "python -m jcc", so far as I can see.  But one picks up
> the gcj header files, and the other doesn't.  Why?

I don't know.
Did you check that you didn't have a stray jni.h lying around ?

Andi..



>
> Bill
>
>>> OK, I discovered the secret --classpath switch to JCC, and was able to
>>> generate the stubs.  However, when I tried to add --build, I run into
>>> the darn Linux gcj problem:
>>>
>>> % python -m jcc --classpath /tmp/Support.jar --jar /tmp/=20
>>> GoodStuff.jar --files 1 --python GoodStuff --build
>>> running build_ext
>>> building 'GoodStuff._GoodStuff' extension
>>> creating build/temp.linux-i686-2.5
>>> creating build/temp.linux-i686-2.5/usr
>>> creating build/temp.linux-i686-2.5/usr/lib
>>> creating build/temp.linux-i686-2.5/usr/lib/python2.5
>>> creating build/temp.linux-i686-2.5/usr/lib/python2.5/site-packages
>>> creating build/temp.linux-i686-2.5/usr/lib/python2.5/site-packages/=20
>>> JCC-1.7-py2.5-linux-i686.egg
>>> creating build/temp.linux-i686-2.5/usr/lib/python2.5/site-packages/=20
>>> JCC-1.7-py2.5-linux-i686.egg/jcc
>>> creating build/temp.linux-i686-2.5/usr/lib/python2.5/site-packages/=20
>>> JCC-1.7-py2.5-linux-i686.egg/jcc/sources
>>> creating build/temp.linux-i686-2.5/build
>>> creating build/temp.linux-i686-2.5/build/_GoodStuff
>>> gcc -pthread -fno-strict-aliasing -DNDEBUG -O2 -g -pipe -Wall -Wp,-=20
>>> D_FORTIFY_SOURCE=3D2 -fexceptions -fstack-protector =
>> --param=3Dssp-buffer-=20
>>> size=3D4 -m32 -march=3Di386 -mtune=3Dgeneric =
>> -fasynchronous-unwind-tables -=20
>>> D_GNU_SOURCE -fPIC -fPIC -DPYTHON=3D1 -I/usr/java/jdk-1.6/include -I/=20=
>>
>>> usr/java/jdk-1.6/include/linux -Ibuild/_GoodStuff -I/usr/lib/=20
>>> python2.5/site-packages/JCC-1.7-py2.5-linux-i686.egg/jcc/sources -I/=20=
>>
>>> usr/include/python2.5 -c /usr/lib/python2.5/site-packages/JCC-1.7-=20
>>> py2.5-linux-i686.egg/jcc/sources/jcc.cpp -o build/temp.linux-=20
>>> i686-2.5/usr/lib/python2.5/site-packages/JCC-1.7-py2.5-linux-=20
>>> i686.egg/jcc/sources/jcc.o -fno-strict-aliasing
>>> /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2/=20
>>> gcj/array.h:19: error: Java class =1B%G=C2=81=C3=A2=C2=80=C2=98=1B%@__JA=
>> rray=1B%G=C2=81=C3=A2=C2=80=C2=99=1B%=20
>>> @ cannot have an implicit non-trivial destructor
>>> /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2/=20
>>> gcj/array.h:59: error: conflicting declaration =1B%G=C2=81=C3=A2=C2=80=C2=
>> =98=1B%@typedef =20
>>> class __JArray* jarray=1B%G=C2=81=C3=A2=C2=80=C2=99=1B%@
>>> /usr/java/jdk-1.6/include/jni.h:68: error: =1B%G=C2=81=C3=A2=C2=80=C2=98=
>> =1B%@jarray=1B%=20
>>> G=C2=81=C3=A2=C2=80=C2=99=1B%@ has a previous declaration as =
>> =1B%G=C2=81=C3=A2=C2=80=C2=98=1B%@typedef =20
>>> class _jarray* jarray=1B%G=C2=81=C3=A2=C2=80=C2=99=1B%@
>>> /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2/=20
>>> gcj/array.h:60: error: conflicting declaration =1B%G=C2=81=C3=A2=C2=80=C2=
>> =98=1B%@typedef =20
>>> class JArray<_jobject*>* jobjectArray=1B%G=C2=81=C3=A2=C2=80=C2=99=1B%@
>>> ...
>>>
>>> Seems like a bug somewhere in JCC.  On the other hand, I was able to
>>> build and install PyLucene with this JCC.  Any idea what's going on?
>>
>> The error is pretty clear about what's going on. You're picking up a =20
>> gcj header file. For instance, how many jni.h files are there on your =20=
>>
>> system ?
>> In particular, is there one being picked up before the JDK's because =20
>> it's in /usr/include or somesuch ?
>>
>> Andi..
>>
>>>
>>>
>>> Bill
>>>
>
>
>


More information about the pylucene-dev mailing list