osdir.com

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Building against arrow static library


Ah, ok, I think I know the issue then. You need to pass
-DCMAKE_CXX_FLAGS='-D_GLIBCXX_USE_CXX11_ABI=0' when building all your
libraries if you use the conda-forge libraries, since they are built
using the old gcc ABI

On Tue, Jun 26, 2018 at 5:11 AM, Praveen Kumar <praveen@xxxxxxxxxx> wrote:
> Hi Wes,
>
> Thanks for the suggestion. I purged the system boost libs and removed LLVM
> (suspecting it might be bringing in some static dependencies) too. Then
> recompiled Arrow and tried to link Gandiva again but no avail.
>
> It looks similar to the one seen here,
> https://issues.apache.org/jira/browse/ARROW-2318.
>
> Will circle back if i find the root cause.
>
> Thx.
>
> On Tue, Jun 26, 2018 at 2:27 AM, Wes McKinney <wesmckinn@xxxxxxxxx> wrote:
>
>> hi Praveen,
>>
>> Are /usr/include or /usr/local/include getting added to your build
>> paths (this could happen if you have LLVM or some other library in
>> your system paths)?
>>
>> Unfortunately, when you're using conda libraries or an external
>> toolchain at all, you have to be really strict about toolchain
>> isolation. So here I think what's happening is that even you are
>> setting $BOOST_ROOT to your external toolchain location, but the C++
>> compiler is picking up the other Boost from your system path. You can
>> test this hypothesis by purging all your system Boost libraries using
>> apt-get purge
>>
>> - Wes
>>
>> On Mon, Jun 25, 2018 at 1:13 PM, Praveen Kumar <praveen@xxxxxxxxxx> wrote:
>> > Tried that did not help.
>> >
>> > I also tried to link in the boost libraries myself since it was not clear
>> > if arrow was including the transitive dependencies from the build script.
>> > That does not help as well.
>> >
>> > On Mon, Jun 25, 2018 at 7:55 PM, Dimitri Vorona <
>> > alendit@xxxxxxxxxxxxxx.invalid> wrote:
>> >
>> >> Hi,
>> >>
>> >> I'd this a similar issue some time ago, and the solution was building
>> after
>> >> a clean checkout, which I interpreted as some kind of caching issue.
>> >>
>> >> Generally, I've found that starting with a clean checkout and following
>> the
>> >> steps from [0] never failed for me.
>> >>
>> >> Hope that helps!
>> >>
>> >> Cheers,
>> >> Dimitri.
>> >>
>> >> [0]: https://arrow.apache.org/docs/python/development.html
>> >>
>> >> On Mon, Jun 25, 2018 at 4:17 PM Praveen Kumar <praveen@xxxxxxxxxx>
>> wrote:
>> >>
>> >> > Hi Folks,
>> >> >
>> >> > I am a newbie to cpp build/packaging. I need some help on building
>> >> against
>> >> > the arrow static library.
>> >> >
>> >> > I tried the following
>> >> >
>> >> > 1. Using both arrow and boost from conda (latest versions 0.9 and
>> 1.67).
>> >> > 2. Building arrow from source and boost from conda.
>> >> > 3. Built both from source.
>> >> >
>> >> > But i am getting this error - with all combinations
>> >> >
>> >> > 1. boost/regex/v4/regex_match.hpp:50: undefined reference to
>> >> > `boost::re_detail_106700::perl_matcher<__gnu_cxx::__
>> normal_iterator<char
>> >> > const*, std::string>,
>> >> > std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char
>> >> const*,
>> >> > std::string> > >, boost::regex_traits<char,
>> >> boost::cpp_regex_traits<char> >
>> >> > >::match()'
>> >> >
>> >> > 2. boost/regex/v4/basic_regex.hpp:381: undefined reference to
>> >> > `boost::basic_regex<char, boost::regex_traits<char,
>> >> > boost::cpp_regex_traits<char> > >::do_assign(char const*, char const*,
>> >> > unsigned int)'
>> >> >
>> >> > 3. boost/regex/v4/perl_matcher.hpp:386: undefined reference to
>> >> > `boost::re_detail_106700::perl_matcher<__gnu_cxx::__
>> normal_iterator<char
>> >> > const*, std::string>,
>> >> > std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char
>> >> const*,
>> >> > std::string> > >, boost::regex_traits<char,
>> >> boost::cpp_regex_traits<char> >
>> >> > >::construct_init(boost::basic_regex<char, boost::regex_traits<char,
>> >> > boost::cpp_regex_traits<char> > > const&,
>> >> > boost::regex_constants::_match_flags)'
>> >> >
>> >> > I am including the boost headers from same path that arrow was built
>> >> with.
>> >> > Surprisingly it works in travis(ubuntu trusty) and in mac but fails
>> on a
>> >> > stand alone Ubuntu machine.
>> >> >
>> >> > Googling around some of the root causes seem to be building and
>> linking
>> >> > with different versions of boost/compiler differences. Both do not
>> apply
>> >> > here.
>> >> >
>> >> > Has anyone faced this before?
>> >> >
>> >> > Thx.
>> >> >
>> >>
>>