Aha, outstanding!

Glad that's all it took.

Aside: Now that everybody's on C++11 or later, it's best to use 
std::shared_ptr, not boost nor tr1.

        -- lg


> On Jul 1, 2020, at 5:33 PM, Zac Coster <zac.cos...@rsp.com.au> wrote:
> 
> You Geniuses!
> 
> I rebuilt ocio/1.1.1 with  the -DOCIO_USE_BOOST_PTR=ON  and now everything is 
> working fine in Nuke12.1
> 
> Thank you so much for the help!!!
> 
> 
> From: "Zac Coster" <zac.cos...@rsp.com.au>
> To: "oiio-dev" <oiio-dev@lists.openimageio.org>
> Sent: Thursday, 2 July, 2020 9:12:05 AM
> Subject: Re: [Oiio-dev] Do the tx plugins support Nuke12+?
> 
> Many Thanks Nathan & Larry,
> 
> Apologies for the late reply, i was not at work. I'll take a look at fixing 
> this up now.
> 
> Appreciate your help!
> 
> 
> From: "Larry Gritz" <l...@larrygritz.com>
> To: "oiio-dev" <oiio-dev@lists.openimageio.org>
> Sent: Wednesday, 1 July, 2020 3:27:49 PM
> Subject: Re: [Oiio-dev] Do the tx plugins support Nuke12+?
> 
> Pro tip for apps out there:
> 
> If you are embedding or shipping your own build of a commonly-used library 
> and use a custom namespace (yes, please do!) you should either link 
> statically, or ALSO make sure the shared library itself also has a custom 
> name.
> 
> Pro tip for library authors:
> 
> Your build system should allow customizing of both the namespace and the 
> library name. (For OIIO, those build options are controlled by 
> -DOIIO_NAMESPACE=... and -DOIIO_LIBNAME_SUFFIX=...)
> 
> 
> On Jun 30, 2020, at 10:31 PM, Nathan Rusch <nathanru...@gmail.com 
> <mailto:nathanru...@gmail.com>> wrote:
> 
> OK, I think the OpenColorIO symbol lookup error was the missing link here 
> (pun very much intended). I should mention that we don’t currently build OIIO 
> against OCIO because static linkage won’t work without backporting some OCIO 
> build changes from the 2.x development branch, so that would explain why I 
> don’t encounter anything like this issue.
> 
> Nuke ships with its own OCIO library that uses a custom outer symbol 
> namespace of FnOpenColorIO (which is what you’re seeing in your loader 
> error), but the library name is not customized (it’s just libOpenColorIO.so). 
> Because of this, the runtime OCIO requirement for your compiled 
> libOpenImageIO.so is going to resolve to the  libOpenColorIO.so that ships 
> with Nuke.
> 
> The smoking gun is that the OCIO library they ship in 12.x uses 
> boost::shared_ptr, while Nuke 11.3 and prior used std::tr1::shared_ptr (and 
> I’m guessing the OCIO build you’re using for OIIO does as well). This would 
> explain where the symbol mismatch is coming from, and why the plugins work in 
> 11.3. Thus, you’ll likely need to produce an alternate OCIO build (or at 
> least configure and install a new set of headers and find a way to link 
> against the libOpenColorIO.so that ships with Nuke) in order to build against 
> 12.x.
> 
> Hope this helps.
> 
> -Nathan
> 
> On Tue, Jun 30, 2020 at 8:04 PM Zac Coster <zac.cos...@rsp.com.au 
> <mailto:zac.cos...@rsp.com.au>> wrote:
> 
> 
> 
> Hi Larry,
> 
> Many Thanks for taking a look!
> 
> When i drop a Read Node down in Nuke. I get a red banner appear with the 
> below error after i try to read a .tx file
> 
> Read1: ${tx_file_name}.tx: Read error: 
> /home/zacc/dev/junk/build_test/oiio/oiio-rb-2.2.3/oiio-RB-2.2.3/install/lib64/txReader.so:plugin
>  did not define txReader
> 
> (*Not sure if this part is relevant)
> If i then try to import txReader via the python scriptEditor, it returns.
> 
> import txReader
> # Result: Traceback (most recent call last):
>   File "<string>", line 1, in <module>
> ImportError: dynamic module does not define init function (inittxReader)
> 
> Interestingly if i try the same import, however without first creating a read 
> node, i actually get an OCIO symbol error.
> 
> import txReader
> # Result: Traceback (most recent call last):
>   File "<string>", line 1, in <module>
> ImportError: 
> /home/zacc/dev/junk/build_test/oiio/oiio-rb-2.2.3/oiio-RB-2.2.3/install/lib64/libOpenImageIO.so.2.2.3:
>  undefined symbol: 
> _ZNK13FnOpenColorIO2v16Config12getProcessorERKNSt3tr110shared_ptrIKNS0_7ContextEEERKNS3_IKNS0_9TransformEEENS0_18TransformDirectionE
> 
> Using C++Filt results in
> FnOpenColorIO::v1::Config::getProcessor(std::tr1::shared_ptr<FnOpenColorIO::v1::Context
>  const> const&, std::tr1::shared_ptr<FnOpenColorIO::v1::Transform const> 
> const&, FnOpenColorIO::v1::TransformDirection) const
> 
> (Strace results from forced plugin reload)
> 
> I also see the below strace
> if i try to forcefully load all of Nuke's plugins
> import nuke
> nuke.nodeTypes(True)
> 
> open("/home/zacc/dev/junk/build_test/oiio/oiio-rb-2.2.3/oiio-RB-2.2.3/install/lib64/txWriter.so",
>  O_RDONLY|O_CLOEXEC) = 118
> read(118, 
> "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220\242\0\0\0\0\0\0"..., 832) 
> = 832
> fstat(118, {st_mode=S_IFREG|0755, st_size=186872, ...}) = 0
> mmap(NULL, 2251928, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 118, 0) = 
> 0x7f88e758a000
> mprotect(0x7f88e75af000, 2093056, PROT_NONE) = 0
> mmap(0x7f88e77ae000, 8192, PROT_READ|PROT_WRITE, 
> MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 118, 0x24000) = 0x7f88e77ae000
> close(118)                              = 0
> mprotect(0x7f88e77ae000, 4096, PROT_READ) = 0
> openat(AT_FDCWD, "/sys/devices/system/cpu", 
> O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 118
> brk(NULL)                               = 0xcec3000
> brk(0xcee7000)                          = 0xcee7000
> getdents(118, /* 42 entries */, 32768)  = 1248
> getdents(118, /* 0 entries */, 32768)   = 0
> close(118)                              = 0
> sched_getaffinity(29347, 8, [0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 
> 19 20 21 22 23]) = 8
> futex(0x7f8a2c3f8678, FUTEX_WAKE_PRIVATE, 2147483647) = 0
> futex(0x7f8a2c3f8678, FUTEX_WAKE_PRIVATE, 2147483647) = 0
> --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0xad8f6} ---
> rt_sigaction(SIGSEGV, NULL, {0x451580, [ILL ABRT BUS FPE SEGV], 
> SA_RESTORER|SA_STACK|SA_SIGINFO, 0x7f8b4d7365f0}, 8) = 0
> prctl(PR_SET_DUMPABLE, 1)               = 0
> gettid()                                = 29347
> socketpair(AF_LOCAL, SOCK_STREAM, 0, [118, 119]) = 0
> sendmsg(11, {msg_name(0)=NULL, 
> msg_iov(1)=[{"\v\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\366\330\n\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
>  1584}], msg_controllen=24, [{cmsg_len=20, cmsg_level=SOL_SOCKET, 
> cmsg_type=SCM_RIGHTS, [119]}], msg_flags=0}, 0) = 1584
> close(119)                              = 0
> read(118, "B", 1)                       = 1
> close(118)                              = 0
> rt_sigaction(SIGSEGV, {SIG_DFL, [SEGV], SA_RESTORER|SA_RESTART, 
> 0x7f8b4b6d03b0}, {0x451580, [ILL ABRT BUS FPE SEGV], 
> SA_RESTORER|SA_STACK|SA_SIGINFO, 0x7f8b4d7365f0}, 8) = 0
> gettid()                                = 29347
> tgkill(29347, 29347, SIGSEGV)           = 0
> rt_sigreturn({mask=[]})                 = 0
> --- SIGSEGV {si_signo=SIGSEGV, si_code=SI_TKILL, si_pid=29347, si_uid=50242} 
> ---
> +++ killed by SIGSEGV +++
> Segmentation fault
> 
> Apologies, i wish i knew more. This is what i have found so far.
> 
> 
> 
> From: "Larry Gritz" <l...@larrygritz.com <mailto:l...@larrygritz.com>>
> To: "oiio-dev" <oiio-dev@lists.openimageio.org 
> <mailto:oiio-dev@lists.openimageio.org>>
> Sent: Wednesday, 1 July, 2020 11:51:02 AM
> Subject: Re: [Oiio-dev] Do the tx plugins support Nuke12+?
> 
> Zac, what error message do you get, exactly?
> 
> 
> _______________________________________________
> Oiio-dev mailing list
> Oiio-dev@lists.openimageio.org <mailto:Oiio-dev@lists.openimageio.org>
> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
> 
> --
> Larry Gritz
> l...@larrygritz.com <mailto:l...@larrygritz.com>
> 
> 
> 
> 
> 
> _______________________________________________
> Oiio-dev mailing list
> Oiio-dev@lists.openimageio.org
> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
> 
> _______________________________________________
> Oiio-dev mailing list
> Oiio-dev@lists.openimageio.org
> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
> _______________________________________________
> Oiio-dev mailing list
> Oiio-dev@lists.openimageio.org
> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org

--
Larry Gritz
l...@larrygritz.com




_______________________________________________
Oiio-dev mailing list
Oiio-dev@lists.openimageio.org
http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org

Reply via email to