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.
Yep, this is Python's fault, not ours. Maybe Python 2.5 has improved the situation...