I changed cproton.i to have nothing in it and I am still experiencing the issue.


I honestly think it is a compiler issue as you said. I will try to use a 
different compiler or try to have a simpler "hello world" in swig and test it.

Hopefully I will find something otherwise I am stuck :(


Regards,

Adel

________________________________
From: Ken Giusti <[email protected]>
Sent: Tuesday, January 17, 2017 6:33:59 PM
To: [email protected]
Subject: Re: [Proton 0.16.0] Compiling Proton Python bindings on Solaris is 
failing in the python tests

Adel,

Seems like the root cause of the problem you're hitting is different than what 
I hit - in my case the imported proton module was incorrectly loading the py3 
shared object (which defines PyInit_cproton, not init_cproton).

But what you seem to be experiencing is different - you've confirmed that 
you're loading the module under python 2, and the module is pulling in the 
correct _cproton.so, and that _cproton.so actually _does_ export the 
init_cproton entry point.

I'm stumped.  Seems almost like a problem with the linker - the correct .so was 
found, the symbol is there, but the dynamic linker isn't resolving it.

I don't have access to a solaris box, unfortunately.

-K

----- Original Message -----
> From: "Adel Boutros" <[email protected]>
> To: [email protected]
> Sent: Tuesday, January 17, 2017 10:33:53 AM
> Subject: Re: [Proton 0.16.0] Compiling Proton Python bindings on Solaris is 
> failing in the python tests
>
> Hello Ken,
>
>
> Based on your reply, I did some investigation. I modified cproton.i to detect
> what version of python is used and I confirmed it is using Python < 3
>
>
> cproton.i
>
> -----------------
>
> #if PY_VERSION_HEX >= 0x03000000
> #else
> #error Unsupported choice setting
> #endif
>
>
>
> I hit the error "Unsupported choice setting" when compiling.
>
>
> I also ran truss because strace was not working correctly and it is loading
> the correct _cproton.so using python 2.7.9.
>
>
> So init_cproton is generated correctly in the code and is present.
>
>
> Do you have some other advice? Could there be an #ifdef related to linux (if
> defined(__GNUC__)) which is not defined for Solaris or something else?
>
>
> Regards,
>
> Adel
>
> ________________________________
> From: Ken Giusti <[email protected]>
> Sent: Monday, January 16, 2017 7:38:46 PM
> To: [email protected]
> Subject: Re: [Proton 0.16.0] Compiling Proton Python bindings on Solaris is
> failing in the python tests
>
> Adel -
>
> I've hit this error before and it was due to a mix up with my library paths.
>
> When I got that error my 2.7 python env was trying to load the .so built
> using the python3 library.
>
> Can you run strace on the test to see exactly which _cproton.so is being
> loaded?
>
> -K
>
>
> ----- Original Message -----
> > From: "Adel Boutros" <[email protected]>
> > To: [email protected]
> > Sent: Monday, January 16, 2017 1:28:36 PM
> > Subject: Re: [Proton 0.16.0] Compiling Proton Python bindings on Solaris is
> > failing in the python tests
> >
> > I just compiled SWIG 1.3.40 on Solaris and tried but still got the same
> > error
> > :(
> >
> > ________________________________
> > From: Adel Boutros <[email protected]>
> > Sent: Monday, January 16, 2017 7:00:41 PM
> > To: [email protected]
> > Subject: [Proton 0.16.0] Compiling Proton Python bindings on Solaris is
> > failing in the python tests
> >
> > Hello,
> >
> >
> > I am actually trying to activate the python bindings in Proton so I can
> > compile Dispatch Router on Solaris. However, the python unit tests of
> > Proton
> > are failing.
> >
> > Cmake Configuration
> >
> > ----------------------------
> >
> > Found PythonInterp: ..../bin/python (found version "2.7.9")
> > Found SWIG: ..../bin/swig (found version "2.0.9")
> > Found CyrusSASL: ..../lib/64/libsasl2.so
> > Found PythonLibs: ..../libpython2.7.so (found suitable exact version
> > "2.7.9")
> > Could NOT find Ruby (missing:  RUBY_EXECUTABLE RUBY_INCLUDE_DIR
> > RUBY_LIBRARY)
> >
> >
> > Error (tests/python/proton-test)
> >
> > ---------------------
> >
> > 1:   File "..../build-dir/proton/proton-c/bindings/python/cproton.py", line
> > 22, in swig_import_helper
> > 1:     _mod = imp.load_module('_cproton', fp, pathname, description)
> > 1: ImportError: dynamic module does not define init function (init_cproton)
> >
> >
> > Analysis
> >
> > --------------------
> >
> > Listing symbols in _cproton.so shows the above function is available
> >
> > nm _cproton.so  | grep init_cproton
> > [62]    |        340924|        5677|FUNC |LOCL |2    |13     |init_cproton
> >
> >
> > I suspect SWIG version (2.0.9) to be the culprit however I am not pretty
> > sure
> > if it related. On Linux, I am using SWIG version 1.3.40 and it is working.
> >
> > I am actually out of ideas. So any help is highly appreciated!
> >
> >
> > PS: I am compiling in 64-bit mode in case it helps.
> >
> >
> > Regards,
> >
> > Adel
> >
>
> --
> -K
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

--
-K

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to