lucene-pylucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andi Vajda <va...@apache.org>
Subject Re: building JCC on Python 2.4
Date Wed, 13 Jun 2012 00:30:22 GMT

  Hi Felix,

On Tue, 12 Jun 2012, Felix Schwarz wrote:

> I'm trying to build JCC on Python 2.4.3 (CentOS 5). However during the
> compilation I get this error:
> gcc -pthread -fno-strict-aliasing -DNDEBUG -O2 -g -pipe -Wall
> -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
> --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fPIC
> -D_java_generics -DJCC_VER="2.13" -I/usr/lib/jvm/java-openjdk/include
> -I/usr/lib/jvm/java-openjdk/include/linux -I_jcc -Ijcc/sources
> -I/usr/include/python2.4 -c jcc/sources/JArray.cpp -o
> build/temp.linux-x86_64-2.4/jcc/sources/JArray.o -DPYTHON -O0
> jcc/sources/JArray.h:44: error: 'Py_ssize_t' does not name a type
> jcc/sources/JArray.h:75: error: expected ';' before '(' token
> jcc/sources/JArray.cpp:1213: error: expected `;' at end of input
> jcc/sources/JArray.cpp:1213: error: expected `}' at end of input
> jcc/sources/JArray.h: In constructor 'JArray<T>::JArray(_jobject*)':
>
> Well, I could work around that one with a patch (see attached) but afterwards
> compilation still fails:
> gcc -pthread -fno-strict-aliasing -DNDEBUG -O2 -g -pipe -Wall
> -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
> --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fPIC
> -D_java_generics -DJCC_VER="2.13" -I/usr/lib/jvm/java-openjdk/include
> -I/usr/lib/jvm/java-openjdk/include/linux -I_jcc -Ijcc/sources
> -I/usr/include/python2.4 -c jcc/sources/JArray.cpp -o
> build/temp.linux-x86_64-2.4/jcc/sources/JArray.o -DPYTHON -O0
> _jcc/java/lang/Class.h:48: error: ISO C++ forbids declaration of 'JArray' with
> no type
> _jcc/java/lang/Class.h:48: error: expected ';' before '<' token
> _jcc/java/lang/Class.h:49: error: ISO C++ forbids declaration of 'JArray' with
> no type
> _jcc/java/lang/Class.h:49: error: expected ';' before '<' token
>
> I'm using GCC 4.1.2:
> gcc-4.1.2-52.el5_8.1
> gcc-c++-4.1.2-52.el5_8.1
>
> Any idea what I'm doing wrong? Do you need more info?

In your patch, instead of including "functions.h", add this to JArray.h 
after the #include "macros.h" line:

#if PY_VERSION_HEX < 0x02050000
typedef int Py_ssize_t;
#endif

I don't have a Python 2.4 install readily available to test this so I hope 
this just works.

Andi..

Mime
View raw message