My favorites | Sign in
Project Home Downloads Wiki
READ-ONLY: This project has been archived. For more information see this post.
Search
for
  Advanced search   Search tips   Subscriptions
Issue 179: Build problem on solaris with Sun compiler
2 people starred this issue and may be notified of changes. Back to list
Status:  Complete
Owner:  ----
Closed:  Jul 2011


 
Reported by mattias....@gmail.com, May 27, 2011
pyodbc does not build on solaris with the Sun compiler.
I'm including some details about the problem and a diff showin what I did to make it compile.
Would it be possible to add this to get pyodbc to build with the sun compiler?

What steps will reproduce the problem?
1. set the CC/CXX environment variables to the Sun compiler.
2. set the CFLAGS/CXXFLAGS/LDFLAGS to "-m64"
3. python setyp.py.build

What is the expected output? What do you see instead?

output:
========
running build
running build_ext
building 'pyodbc' extension
creating build
creating build/temp.solaris-2.10-i86pc-2.7
creating build/temp.solaris-2.10-i86pc-2.7/slask
creating build/temp.solaris-2.10-i86pc-2.7/slask/epkmann
creating build/temp.solaris-2.10-i86pc-2.7/slask/epkmann/build
creating build/temp.solaris-2.10-i86pc-2.7/slask/epkmann/build/pyodbc-2.1.8
creating build/temp.solaris-2.10-i86pc-2.7/slask/epkmann/build/pyodbc-2.1.8/src
/proj/vau/devcs/products/3rd/cxx/12/_debug/solx86/bin/CC -DNDEBUG -O -m64 -I/slask/epkmann/installed64/include -Kpic -DPYODBC_VERSION=2.1.8 -I/slask/epkmann/installed64/include/python2.7 -c /slask/epkmann/build/pyodbc-2.1.8/src/cnxninfo.cpp -o build/temp.solaris-2.10-i86pc-2.7/slask/epkmann/build/pyodbc-2.1.8/src/cnxninfo.o -Wno-write-strings
CC: Warning: Option -Wno-write-strings passed to ld, if ld is invoked, ignored otherwise
"/slask/epkmann/build/pyodbc-2.1.8/src/cnxninfo.cpp", line 44: Warning: String literal converted to char* in formal argument name in call to _PyObject_CallMethod_SizeT(_object*, char*, char*, ...).
"/slask/epkmann/build/pyodbc-2.1.8/src/cnxninfo.cpp", line 44: Warning: String literal converted to char* in formal argument format in call to _PyObject_CallMethod_SizeT(_object*, char*, char*, ...).
"/slask/epkmann/build/pyodbc-2.1.8/src/cnxninfo.cpp", line 49: Warning: String literal converted to char* in formal argument name in call to _PyObject_CallMethod_SizeT(_object*, char*, char*, ...).
"/slask/epkmann/build/pyodbc-2.1.8/src/cnxninfo.cpp", line 54: Warning: String literal converted to char* in formal argument name in call to _PyObject_CallMethod_SizeT(_object*, char*, char*, ...).
"/slask/epkmann/build/pyodbc-2.1.8/src/cnxninfo.cpp", line 59: Warning: String literal converted to char* in formal argument name in call to _PyObject_CallMethod_SizeT(_object*, char*, char*, ...).
5 Warning(s) detected.
/proj/vau/devcs/products/3rd/cxx/12/_debug/solx86/bin/CC -DNDEBUG -O -m64 -I/slask/epkmann/installed64/include -Kpic -DPYODBC_VERSION=2.1.8 -I/slask/epkmann/installed64/include/python2.7 -c /slask/epkmann/build/pyodbc-2.1.8/src/buffer.cpp -o build/temp.solaris-2.10-i86pc-2.7/slask/epkmann/build/pyodbc-2.1.8/src/buffer.o -Wno-write-strings
CC: Warning: Option -Wno-write-strings passed to ld, if ld is invoked, ignored otherwise
/proj/vau/devcs/products/3rd/cxx/12/_debug/solx86/bin/CC -DNDEBUG -O -m64 -I/slask/epkmann/installed64/include -Kpic -DPYODBC_VERSION=2.1.8 -I/slask/epkmann/installed64/include/python2.7 -c /slask/epkmann/build/pyodbc-2.1.8/src/cursor.cpp -o build/temp.solaris-2.10-i86pc-2.7/slask/epkmann/build/pyodbc-2.1.8/src/cursor.o -Wno-write-strings
CC: Warning: Option -Wno-write-strings passed to ld, if ld is invoked, ignored otherwise
"/slask/epkmann/build/pyodbc-2.1.8/src/cursor.cpp", line 34: Warning: Identifier expected instead of "}".
"/slask/epkmann/build/pyodbc-2.1.8/src/cursor.cpp", line 278: Error: The function "_strlwr" must have a prototype.
"/slask/epkmann/build/pyodbc-2.1.8/src/cursor.cpp", line 748: Error: The function "min" must have a prototype.
"/slask/epkmann/build/pyodbc-2.1.8/src/cursor.cpp", line 764: Error: The function "min" must have a prototype.
"/slask/epkmann/build/pyodbc-2.1.8/src/cursor.cpp", line 1891: Warning: String literal converted to char* in initialization.
"/slask/epkmann/build/pyodbc-2.1.8/src/cursor.cpp", line 1892: Warning: String literal converted to char* in initialization.
"/slask/epkmann/build/pyodbc-2.1.8/src/cursor.cpp", line 1893: Warning: String literal converted to char* in initialization.
"/slask/epkmann/build/pyodbc-2.1.8/src/cursor.cpp", line 1894: Warning: String literal converted to char* in initialization.
"/slask/epkmann/build/pyodbc-2.1.8/src/cursor.cpp", line 1953: Warning: String literal converted to char* in initialization.
"/slask/epkmann/build/pyodbc-2.1.8/src/cursor.cpp", line 1953: Warning: String literal converted to char* in initialization.
3 Error(s) and 7 Warning(s) detected.
error: command '/proj/vau/devcs/products/3rd/cxx/12/_debug/solx86/bin/CC' failed with exit status 3



What version of the product are you using? On what operating system?
Pyodbc version: 2.1.8
% uname -a 
SunOS ws021-4 5.10 Generic_142901-04 i86pc i386 i86pc
% CC -V
CC: Sun C++ 5.9 SunOS_i386 Patch 124864-07 2008/08/22


Please provide any additional information below.

I did the following changes and got it to compile (git diff output):

--- a/src/getdata.cpp
+++ b/src/getdata.cpp
@@ -9,6 +9,7 @@
 #include "errors.h"
 #include "dbspecific.h"
 #include "sqlwchar.h"
+#include <alloca.h>

 void GetData_init()
 {
diff --git a/src/pyodbc.h b/src/pyodbc.h
index e49045b..cb6045b 100644
--- a/src/pyodbc.h
+++ b/src/pyodbc.h
@@ -103,7 +103,7 @@ inline void UNUSED(...) { }

 #include <stdarg.h>

-#if defined(__GNUC__) && !defined(__MINGW32__)
+#if defined(__SUNPRO_CC) || defined(__SUNPRO_C) || (defined(__GNUC__) && !defined(__MINGW32__))
 #define CDECL cdecl
 #define min(X,Y) ((X) < (Y) ? (X) : (Y))
 #define max(X,Y) ((X) > (Y) ? (X) : (Y))

Jun 12, 2011
Project Member #1 mkleehammer
(No comment was entered for this change.)
Status: Investigating
Jul 10, 2011
Project Member #2 mkleehammer
Thanks for the fixes. 

Checked into 2.1.9-beta16
Status: Complete

Powered by Google Project Hosting