Hi, My current diff to the svn is below (as in the chain of mails). Now i get it to wrap my library in both 2.7, 3.5 and 3.6.
/Regards Index: jcc2/__init__.py =================================================================== --- jcc2/__init__.py (revision 1789413) +++ jcc2/__init__.py (working copy) @@ -20,7 +20,7 @@ from windows import add_jvm_dll_directory_to_path add_jvm_dll_directory_to_path() - from jcc2.config import SHARED + from jcc.config import SHARED if SHARED: path = os.environ['Path'].split(os.pathsep) eggpath = os.path.abspath(os.path.dirname(os.path.dirname(__file__))) Index: jcc3/sources/functions.cpp =================================================================== --- jcc3/sources/functions.cpp (revision 1789413) +++ jcc3/sources/functions.cpp (working copy) @@ -300,7 +300,7 @@ #if defined(_MSC_VER) || defined(__SUNPRO_CC) int __parseArgs(PyObject *args, char *types, ...) { - int count = PY_SIZE((PyTupleObject *) args); + int count = Py_SIZE((PyTupleObject *) args); //WAS PY_SIZE va_list list, check; va_start(list, types); Index: jcc3/sources/jcc.cpp =================================================================== --- jcc3/sources/jcc.cpp (revision 1789413) +++ jcc3/sources/jcc.cpp (working copy) @@ -195,11 +195,11 @@ static PyObject *t_jccenv_strhash(PyObject *self, PyObject *arg) { - static const size_t hexdig = sizeof(uintmax_t) * 2; - uintmax_t hash = (uintmax_t) PyObject_Hash(arg); + unsigned long long hash = (unsigned long long) PyObject_Hash(arg); + static const size_t hexdig = sizeof(hash) * 2; char buffer[hexdig + 1]; - sprintf(buffer, "%0*"PRIxMAX, (int) hexdig, hash); + sprintf(buffer, "%0*llx", (int) hexdig, hash); return PyUnicode_FromStringAndSize(buffer, hexdig); } Index: setup.py =================================================================== --- setup.py (revision 1789413) +++ setup.py (working copy) @@ -158,7 +158,7 @@ 'sunos5': ['-L%(sunos5)s/jre/lib/i386' %(JDK), '-ljava', '-L%(sunos5)s/jre/lib/i386/client' %(JDK), '-ljvm', '-R%(sunos5)s/jre/lib/i386:%(sunos5)s/jre/lib/i386/client' %(JDK)], - 'win32': ['/LIBPATH:%(win32)s/lib' %(JDK), 'Ws2_32.lib', 'jvm.lib'], + 'win32': ['/LIBPATH:%(win32)s/lib' %(JDK), 'Ws2_32.lib', 'jvm.lib','/DLL'], 'mingw32': ['-L%(mingw32)s/lib' %(JDK), '-ljvm'], 'freebsd7': ['-L%(freebsd7)s/jre/lib/i386' %(JDK), '-ljava', '-lverify', '-L%(freebsd7)s/jre/lib/i386/client' %(JDK), '-ljvm', On Thu, Mar 30, 2017 at 5:36 PM, Petrus Hyvönen <petrus.hyvo...@gmail.com> wrote: > Hi, > > I was trying the python 2.7 build and I think the line 23 in > jcc2/__init__.py should be: > > from jcc.config import SHARED > > (instead of from jcc2.config import..) > > Regards > /Petrus > > > On Thu, Mar 30, 2017 at 9:10 AM, Petrus Hyvönen <petrus.hyvo...@gmail.com> > wrote: > >> Hi, >> >> With this version of of t_jccenv_strhash I can build both JCC and wrap >> the library I'm using! >> >> Regards >> /Petrus >> >> >> >>> >>> >>>> static PyObject *t_jccenv_strhash(PyObject *self, PyObject *arg) >>>> { >>>> unsigned long long hash = (unsigned long long) PyObject_Hash(arg); >>>> static const size_t hexdig = sizeof(hash) * 2; >>>> char buffer[hexdig + 1]; >>>> >>>> sprintf(buffer, "%0*llx", (int) hexdig, hash); >>>> return PyUnicode_FromStringAndSize(buffer, hexdig); >>>> } >>>> >>>> BTW this function should be also copied to the py2 directory where we >>>> still use int allthough PyObject_Hash returns already long on python >>>> >>>>> 2.x. >>>>> >>>> >>>> cu, >>>> Rudi >>>> >>>> >>>> >> >> >> -- >> _____________________________________________ >> Petrus Hyvönen, Uppsala, Sweden >> Mobile Phone/SMS:+46 73 803 19 00 <073-803%2019%2000> >> > > > > -- > _____________________________________________ > Petrus Hyvönen, Uppsala, Sweden > Mobile Phone/SMS:+46 73 803 19 00 <073-803%2019%2000> > -- _____________________________________________ Petrus Hyvönen, Uppsala, Sweden Mobile Phone/SMS:+46 73 803 19 00