pyodbc: use WORDS_BIGENDIAN instead of OS-specific defines
authorDaniel Golle <daniel@makrotopia.org>
Mon, 17 Jul 2017 12:06:12 +0000 (14:06 +0200)
committerDaniel Golle <daniel@makrotopia.org>
Mon, 17 Jul 2017 12:36:48 +0000 (14:36 +0200)
Python provides the WORDS_BIGENDIAN macro, use it to figure out the
native endian of the host.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
lang/python/pyodbc/Makefile
lang/python/pyodbc/patches/100-connection-assume-SQL_C_WCHAR-is-native-endian.patch

index 1c20e7a63504cf93e2cc58d85c924e24c2e7165e..3865167cf9214205d4420233db0b8621ef88f8f1 100644 (file)
@@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pyodbc
 PKG_VERSION:=4.0.17
-PKG_RELEASE:=4
+PKG_RELEASE:=5
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://pypi.python.org/packages/ce/57/6b92aa5b3497dde6be55fd6fcb76c7db215ed1d56fde45c613add4a43095/
index 4d03cb72a93cd160312c1af04d791ac5a48082f3..0819a6dde7a79d7fd9bac3d017f2ff3e46f4cd73 100644 (file)
@@ -1,11 +1,10 @@
 --- a/src/connection.cpp
 +++ b/src/connection.cpp
-@@ -18,6 +18,15 @@
+@@ -18,6 +18,14 @@
  #include "cnxninfo.h"
  #include "sqlwchar.h"
  
-+#include <endian.h>
-+#if __BYTE_ORDER == __BIG_ENDIAN
++#ifdef WORDS_BIGENDIAN
 +# define OPTENC_UTF16NE OPTENC_UTF16BE
 +# define ENCSTR_UTF16NE "utf-16be"
 +#else
@@ -16,7 +15,7 @@
  #if PY_MAJOR_VERSION < 3
  static bool IsStringType(PyObject* t) { return (void*)t == (void*)&PyString_Type; }
  static bool IsUnicodeType(PyObject* t) { return (void*)t == (void*)&PyUnicode_Type; }
-@@ -90,7 +99,7 @@ static bool Connect(PyObject* pConnectSt
+@@ -90,7 +98,7 @@ static bool Connect(PyObject* pConnectSt
          // indication that we can handle Unicode.  We are going to use the same unicode ending
          // as we do for binding parameters.
  
@@ -25,7 +24,7 @@
          if (!wchar)
              return false;
  
-@@ -216,24 +225,24 @@ PyObject* Connection_New(PyObject* pConn
+@@ -216,24 +224,24 @@ PyObject* Connection_New(PyObject* pConn
      // single-byte text we don't actually know what the encoding is.  For example, with SQL
      // Server the encoding is based on the database's collation.  We ask the driver / DB to
      // convert to SQL_C_WCHAR and use the ODBC default of UTF-16LE.