Opened 16 years ago

Closed 16 years ago

#2088 closed defect (wontfix)

pycc errror while building Python on Solaris 10

Reported by: Mateusz Łoskot Owned by: hobu
Priority: normal Milestone:
Component: PythonBindings Version: svn-trunk
Severity: normal Keywords: sun solaris pycc
Cc:

Description

I'm trying to build and test GDAL under Solaris 10 using Sun C compiler and Python 2.4:

$ cc -V
cc: Sun C 5.9 SunOS_i386 Build47_dlight 2007/05/22
$ python -V
Python 2.4.4
$ swig -version
SWIG Version 1.3.33
Compiled with CC [i386-pc-solaris2.11]

GDAL core and base set of driver build without any errors. Trying to build SWIG Python bindings gives following error:

$ ./configure --without-libtool --without-ogpython --with-python
...
checking for python bindings... enabled
checking for python setuptools... not found
checking for old-gen python bindings... disabled
...
  Old-gen python          no
  SWIG Bindings:          python 
...

$ gmake
gmake[2]: Entering directory `/export/home/mloskot/dev/gdal/_svn/trunk/gdal/swig/python'
python setup.py build
running build
running build_py
creating build
creating build/lib.solaris-2.11-i86pc-2.4
copying gdal.py -> build/lib.solaris-2.11-i86pc-2.4
copying ogr.py -> build/lib.solaris-2.11-i86pc-2.4
copying osr.py -> build/lib.solaris-2.11-i86pc-2.4
copying gdalconst.py -> build/lib.solaris-2.11-i86pc-2.4
creating build/lib.solaris-2.11-i86pc-2.4/osgeo
copying osgeo/gdalnumeric.py -> build/lib.solaris-2.11-i86pc-2.4/osgeo
copying osgeo/gdalconst.py -> build/lib.solaris-2.11-i86pc-2.4/osgeo
copying osgeo/__init__.py -> build/lib.solaris-2.11-i86pc-2.4/osgeo
copying osgeo/osr.py -> build/lib.solaris-2.11-i86pc-2.4/osgeo
copying osgeo/gdal_array.py -> build/lib.solaris-2.11-i86pc-2.4/osgeo
copying osgeo/gdal.py -> build/lib.solaris-2.11-i86pc-2.4/osgeo
copying osgeo/ogr.py -> build/lib.solaris-2.11-i86pc-2.4/osgeo
running build_ext
building 'osgeo._gdal' extension
creating build/temp.solaris-2.11-i86pc-2.4
creating build/temp.solaris-2.11-i86pc-2.4/extensions
/usr/lib/python2.4/pycc -DNDEBUG -I../../port -I../../gcore -I../../alg -I../../ogr/ -I/usr/local/include -I/usr/include -I/usr/include/python2.4 -I. -I/export/home/mloskot/dev/gdal/_svn/trunk/gdal/include -c extensions/gdal_wrap.cpp -o build/temp.solaris-2.11-i86pc-2.4/extensions/gdal_wrap.o
cc: No input file specified, no output generated
error: command '/usr/lib/python2.4/pycc' failed with exit status 1
gmake[2]: *** [build] Error 1
gmake[2]: Leaving directory `/export/home/mloskot/dev/gdal/_svn/trunk/gdal/swig/python'
gmake[1]: *** [build] Error 2
gmake[1]: Leaving directory `/export/home/mloskot/dev/gdal/_svn/trunk/gdal/swig'
gmake: *** [swig-modules] Error 2

It seems that the last command /usr/lib/python2.4/pycc is incorrect on Solaris. There are two pycc-like commands installed:

/usr/lib/python2.4/pycc
/usr/lib/python2.4/pyCC

The pycc gives error, as also given above:

$ /usr/lib/python2.4/pycc -DNDEBUG -I../../port -I../../gcore -I../../alg -I../../ogr/ -I/usr/local/include -I/usr/include -I/usr/include/python2.4 -I. -I/export/home/mloskot/dev/gdal/_svn/trunk/gdal/include -c extensions/gdal_wrap.cpp -o build/temp.solaris-2.11-i86pc-2.4/extensions/gdal_wrap.o
cc: No input file specified, no output generated

Changing pycc to pyCC seems to work:

$ /usr/lib/python2.4/pyCC -DNDEBUG -I../../port -I../../gcore -I../../alg -I../../ogr/ -I/usr/local/include -I/usr/include -I/usr/include/python2.4 -I. -I/export/home/mloskot/dev/gdal/_svn/trunk/gdal/include -c extensions/gdal_wrap.cpp -o build/temp.solaris-2.11-i86pc-2.4/extensions/gdal_wrap.o
"extensions/gdal_wrap.cpp", line 2656: Warning: String literal converted to char* in formal argument 1 in call to Py_BuildValue(char*, ...).
"extensions/gdal_wrap.cpp", line 2658: Warning: String literal converted to char* in formal argument 1 in call to Py_BuildValue(char*, ...).
"extensions/gdal_wrap.cpp", line 2675: Warning: String literal converted to char* in formal argument 2 in call to PyArg_Parse(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 3701: Warning: String literal converted to char* in formal argument 1 in call to Py_BuildValue(char*, ...).
"extensions/gdal_wrap.cpp", line 3702: Warning: String literal converted to char* in formal argument 1 in call to Py_BuildValue(char*, ...).
"extensions/gdal_wrap.cpp", line 3733: Warning: String literal converted to char* in formal argument 2 in call to PyArg_Parse(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 3734: Warning: String literal converted to char* in formal argument 2 in call to PyArg_Parse(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 4720: Warning: String literal converted to char* in formal argument 2 in call to PyArg_Parse(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 4731: Warning: String literal converted to char* in formal argument m in call to PyObject_CallMethod(_object*, char*, char*, ...).
"extensions/gdal_wrap.cpp", line 4736: Warning: String literal converted to char* in formal argument 2 in call to PyArg_ParseTuple(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 5092: Warning: String literal converted to char* in formal argument 2 in call to PyArg_Parse(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 5197: Warning: String literal converted to char* in formal argument 2 in call to PyArg_Parse(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 5225: Warning (Anachronism): Assigning int(*)(double,const char*,void*) to extern "C" int(*)(double,const char*,void*).
"extensions/gdal_wrap.cpp", line 5464: Warning: String literal converted to char* in formal argument 2 in call to PyArg_ParseTuple(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 5501: Warning: String literal converted to char* in formal argument 2 in call to PyArg_ParseTuple(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 5535: Warning: String literal converted to char* in formal argument 2 in call to PyArg_ParseTuple(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 5572: Warning: String literal converted to char* in formal argument 2 in call to PyArg_ParseTuple(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 5606: Warning: String literal converted to char* in formal argument 2 in call to PyArg_ParseTuple(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 5643: Warning: String literal converted to char* in formal argument 2 in call to PyArg_ParseTuple(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 5677: Warning: String literal converted to char* in formal argument 2 in call to PyArg_ParseTuple(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 5714: Warning: String literal converted to char* in formal argument 2 in call to PyArg_ParseTuple(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 5741: Warning: String literal converted to char* in formal argument 1 in call to Py_BuildValue(char*, ...).
"extensions/gdal_wrap.cpp", line 5768: Warning: String literal converted to char* in formal argument 2 in call to PyArg_ParseTuple(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 7854: Warning: String literal converted to char* in formal argument 2 in call to PyArg_Parse(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 7938: Warning: String literal converted to char* in formal argument 2 in call to PyArg_Parse(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 7964: Warning (Anachronism): Assigning int(*)(double,const char*,void*) to extern "C" int(*)(double,const char*,void*).
"extensions/gdal_wrap.cpp", line 8298: Warning: String literal converted to char* in formal argument 2 in call to PyArg_Parse(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 8469: Warning: String literal converted to char* in formal argument 2 in call to PyArg_Parse(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 8484: Warning: String literal converted to char* in formal argument 2 in call to PyArg_Parse(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 8499: Warning: String literal converted to char* in formal argument 2 in call to PyArg_Parse(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 8520: Warning: String literal converted to char* in formal argument 2 in call to PyArg_Parse(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 8644: Warning: String literal converted to char* in formal argument 2 in call to PyArg_Parse(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 8659: Warning: String literal converted to char* in formal argument 2 in call to PyArg_Parse(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 8674: Warning: String literal converted to char* in formal argument 2 in call to PyArg_Parse(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 8695: Warning: String literal converted to char* in formal argument 2 in call to PyArg_Parse(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 9153: Warning: String literal converted to char* in formal argument 2 in call to PyArg_Parse(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 9684: Warning: String literal converted to char* in formal argument 2 in call to PyArg_Parse(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 9699: Warning: String literal converted to char* in formal argument 2 in call to PyArg_Parse(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 9953: Warning: String literal converted to char* in formal argument 2 in call to PyArg_Parse(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 9968: Warning: String literal converted to char* in formal argument 2 in call to PyArg_Parse(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 9983: Warning: String literal converted to char* in formal argument 2 in call to PyArg_Parse(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 10102: Warning: String literal converted to char* in formal argument 2 in call to PyArg_Parse(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 10117: Warning: String literal converted to char* in formal argument 2 in call to PyArg_Parse(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 10132: Warning: String literal converted to char* in formal argument 2 in call to PyArg_Parse(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 10619: Warning: String literal converted to char* in formal argument 1 in call to Py_BuildValue(char*, ...).
"extensions/gdal_wrap.cpp", line 10665: Warning: String literal converted to char* in formal argument 2 in call to PyArg_ParseTuple(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 10721: Warning: String literal converted to char* in formal argument 2 in call to PyArg_ParseTuple(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 10784: Warning: String literal converted to char* in formal argument 2 in call to PyArg_ParseTuple(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 10804: Warning: String literal converted to char* in formal argument 2 in call to PyArg_ParseTuple(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 11734: Warning (Anachronism): Assigning int(*)(double,const char*,void*) to extern "C" int(*)(double,const char*,void*).
"extensions/gdal_wrap.cpp", line 11861: Warning (Anachronism): Assigning int(*)(double,const char*,void*) to extern "C" int(*)(double,const char*,void*).
"extensions/gdal_wrap.cpp", line 12804: Warning: String literal converted to char* in formal argument 2 in call to PyArg_Parse(_object*, char*, ...).
"extensions/gdal_wrap.cpp", line 12860: Warning: String literal converted to char* in formal argument 2 in call to PyArg_Parse(_object*, char*, ...).
53 Warning(s) detected.

Inspite of the flood of warnings the expected binary has been produced

$ ls -l build/temp.solaris-2.11-i86pc-2.4/extensions/gdal_wrap.o
-rw-r--r--   1 mloskot  staff     279444 Dec 14 00:03 build/temp.solaris-2.11-i86pc-2.4/extensions/gdal_wrap.o

Unfortunately, I'm not experienced Solaris user to know what's the difference between pycc and pyCC, and how to tell the Python setup.py to use the latter than the former. I suppose pycc calls C compiler: cc but pyCC calls C++ compiler CC.

Change History (1)

comment:1 by hobu, 16 years ago

Resolution: wontfix
Status: newclosed

Yep, this is Python's fault, not ours. Maybe Python 2.5 has improved the situation...

Note: See TracTickets for help on using tickets.