Re: problems with statically linked Boost

2018-02-17 Thread Alex Samuel
Sorry, I think I wasn't clear. I mean the broader issue of C++ extension code. In principle it should be possible to mix C++ extension modules in the same Python process, at least in some cases, especially if they link their own dependencies statically. While "just do it our way, use our

Re: problems with statically linked Boost

2018-02-17 Thread Wes McKinney
> However, extension modules are always going to have to share the Python > process, so this policy kind of says, you can't use external C++ extension > code with conda. This is a bit too extreme. What I meant is that you should try not to mix C++ build toolchains. I think this is good advice

Re: problems with statically linked Boost

2018-02-17 Thread Wes McKinney
It sounds like for your use case that it would be better for you to build your own Arrow packages that use the same Boost as the rest of your repo. You can possible use the scourge tool that Phillip built to help with this (we're using it to build nightlies). conda-forge is a fairly closed

Re: problems with statically linked Boost

2018-02-17 Thread Alex Samuel
OK, though if both modules linked Boost statically, I believe they would have distinct copies of global variables. Whether or not this causes problems depends on whether they are purely internal or tied to external state. My hunch is that for Boost::regex, there wouldn't be an issue with two

Re: problems with statically linked Boost

2018-02-17 Thread Uwe L. Korn
Static linking does not really solve all problems in the Boost case as there are global variables that are picked up across different Boost versions. Thus if you link it statically it still has an effect on other dependencies. In the case of boost, you can get around this by using the bcp tool

Re: problems with statically linked Boost

2018-02-17 Thread Uwe L. Korn
Hi, The issue is here no that Boost is linked statically in one and dynamically in another but that you link against two different boost versions. The stacktrace shows links to Boost 1.55 whereas Arrow should be linked against 1.65 or 1.66 (the one coming from conda-forge). Arrow requires at

Re: problems with statically linked Boost

2018-02-17 Thread Alex Samuel
Hi there, Sure, I'll append top of the stack. You can see our internal function "asd::infra::util::start_of_date"; everything else is Boost, Python, or libstdc++. My understanding (though I haven't demonstrated this conclusively) is that, because Python loads extension modules RTLD_GLOBAL,

Re: problems with statically linked Boost

2018-02-17 Thread Uwe L. Korn
Hello, I am not sure why we are linking statically in the conda-forge packages, as a gut feeling we should link dynamically there. Wes, can you remember why? Alex, would it be possible for you to send us the part of the segmentation fault that is not private to your modules. That would be a