Yes, I get it on a clean build. Regards, Keith.
http://keith-chapman.com On Wed, Feb 22, 2017 at 11:42 AM, Wes McKinney <wesmck...@gmail.com> wrote: > Do you get these errors from a clean build (i.e. you've removed all > the artifacts and CMake files from your prior build)? We are building > in Travis CI with gcc/g++ 4.9 and have not been having any issues: > > https://github.com/apache/parquet-cpp/blob/master/ci/ > before_script_travis.sh#L20 > > On Wed, Feb 22, 2017 at 2:28 PM, Keith Chapman <keithgchap...@gmail.com> > wrote: > > Hi Wes, > > > > Tried the patch and it does the trick, thank you for the prompt response. > > Also I noticed another issue, not sure if you'd regard it as a bug or not > > but I'll throw it out for your consideration. If I build the parquet > > library with > > > > "cmake . -DCMAKE_BUILD_TYPE=release -DPARQUET_BUILD_TESTS=Off" everything > > builds fine as expected, but if I build it with "cmake . > > -DCMAKE_BUILD_TYPE=release -DCMAKE_CXX_COMPILER=g++-4.9 > > -DCMAKE_C_COMPILER=gcc-4.9 -DPARQUET_BUILD_TESTS=Off" I end up with a > bunch > > of linkage errors as follows, > > > > Linking CXX executable ../release/parquet_reader > > ../release/libparquet.a(reader.cc.o): In function > > `parquet::DictionaryDecoder<parquet::DataType<(parquet::Type::type)6> > >>::SetDict(parquet::Decoder<parquet::DataType<(parquet::Type::type)6> > >*)': > > /home/keith/projects/bs/axstreamBigD/external_packages/parquetcpp/src/ > parquet/encoding-internal.h:382: > > undefined reference to `arrow::Status::ToString() const' > > ../release/libparquet.a(reader.cc.o): In function > > `parquet::DictionaryDecoder<parquet::DataType<(parquet::Type::type)7> > >>::SetDict(parquet::Decoder<parquet::DataType<(parquet::Type::type)7> > >*)': > > /home/keith/projects/bs/axstreamBigD/external_packages/parquetcpp/src/ > parquet/encoding-internal.h:402: > > undefined reference to `arrow::Status::ToString() const' > > ../release/libparquet.a(metadata.cc.o): In function > > `boost::re_detail::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_match()': > > /usr/local/include/boost/regex/v4/perl_matcher_non_recursive.hpp:973: > > undefined reference to > > `boost::match_results<__gnu_cxx::__normal_iterator<char const*, > > std::string>, > > std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char > const*, > > std::string> > > > >>::maybe_assign(boost::match_results<__gnu_cxx::__normal_iterator<char > > const*, std::string>, > > std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char > const*, > > std::string> > > > const&)' > > ../release/libparquet.a(metadata.cc.o): In function > > `boost::re_detail::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_prefix()': > > /usr/local/include/boost/regex/v4/perl_matcher_common.hpp:333: undefined > > reference to `boost::match_results<__gnu_cxx::__normal_iterator<char > > const*, std::string>, > > std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char > const*, > > std::string> > > > >>::maybe_assign(boost::match_results<__gnu_cxx::__normal_iterator<char > > const*, std::string>, > > std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char > const*, > > std::string> > > > const&)' > > ../release/libparquet.a(metadata.cc.o): In function `perl_matcher': > > ..... > > And a lot more > > > > Regards, > > Keith. > > > > http://keith-chapman.com > > > > On Wed, Feb 22, 2017 at 10:57 AM, Wes McKinney <wesmck...@gmail.com> > wrote: > > > >> You can try out this patch if you like: > >> > >> https://github.com/apache/parquet-cpp/pull/258 > >> > >> This should be included in the next 1.0.0 RC > >> > >> On Wed, Feb 22, 2017 at 1:32 PM, Keith Chapman <keithgchap...@gmail.com > > > >> wrote: > >> > Thanks Wes. > >> > > >> > Regards, > >> > Keith. > >> > > >> > http://keith-chapman.com > >> > > >> > On Wed, Feb 22, 2017 at 10:30 AM, Wes McKinney <wesmck...@gmail.com> > >> wrote: > >> >> > >> >> I'm able to reproduce the issue on Ubuntu 14.04 > >> >> > >> >> Linking CXX shared library debug/libparquet.so > >> >> /usr/bin/ld: /usr/lib/libsnappy.a(snappy.o): relocation R_X86_64_32S > >> >> against `.rodata' can not be used when making a shared object; > >> >> recompile with -fPIC > >> >> /usr/lib/libsnappy.a: error adding symbols: Bad value > >> >> collect2: error: ld returned 1 exit status > >> >> > >> >> Patch forthcoming > >> >> > >> >> On Wed, Feb 22, 2017 at 1:29 PM, Keith Chapman < > keithgchap...@gmail.com > >> > > >> >> wrote: > >> >> > Hi Wes, > >> >> > > >> >> > No I don't have SNAPPY_HOME set. Yes this seems similar to 885 > >> >> > > >> >> > On Feb 22, 2017 10:25 AM, "Wes McKinney" <wesmck...@gmail.com> > wrote: > >> >> >> > >> >> >> hi Keith, > >> >> >> > >> >> >> It's not caused by PARQUET-885, but it is the same type of > problem. > >> Do > >> >> >> you have $SNAPPY_HOME set? If you compile your own thirdparty > >> >> >> libraries, they need to be built with -fPIC to support static > linking > >> >> >> into a shared library. Otherwise it's easier to let parquet-cpp > build > >> >> >> its own thirdparty toolchain. Because some Linux distributions > don't > >> >> >> set -fPIC in their packages, we should make a similar change as > >> >> >> PARQUET-885 for Snappy. Looking into it now... > >> >> >> > >> >> >> I'm also going to add a note about this to the README. > >> >> >> > >> >> >> - Wes > >> >> >> > >> >> >> On Wed, Feb 22, 2017 at 1:05 PM, Keith Chapman > >> >> >> <keithgchap...@gmail.com> > >> >> >> wrote: > >> >> >> > Hi, > >> >> >> > > >> >> >> > I'm trying to build master and I get the following error, I have > >> the > >> >> >> > .so > >> >> >> > versions of the files as seen below too, Is this somewhat > relaped > >> to > >> >> >> > Parquet-885? > >> >> >> > > >> >> >> > ls /usr/lib/x86_64-linux-gnu/libsnappy. > >> >> >> > libsnappy.a libsnappy.so libsnappy.so.1 > >> >> >> > libsnappy.so.1.3.0 > >> >> >> > > >> >> >> > Error seen: > >> >> >> > > >> >> >> > /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libsnappy.a(snappy.o): > >> >> >> > relocation > >> >> >> > R_X86_64_32S against `.rodata' can not be used when making a > shared > >> >> >> > object; > >> >> >> > recompile with -fPIC > >> >> >> > /usr/lib/x86_64-linux-gnu/libsnappy.a: error adding symbols: > Bad > >> >> >> > value > >> >> >> > collect2: error: ld returned 1 exit status > >> >> >> > CMakeFiles/parquet_shared.dir/build.make:115: recipe for target > >> >> >> > 'release/libparquet.so' failed > >> >> >> > make[2]: *** [release/libparquet.so] Error 1 > >> >> >> > CMakeFiles/Makefile2:218: recipe for target > >> >> >> > 'CMakeFiles/parquet_shared.dir/all' failed > >> >> >> > make[1]: *** [CMakeFiles/parquet_shared.dir/all] Error 2 > >> >> >> > Makefile:138: recipe for target 'all' failed > >> >> >> > make: *** [all] Error 2 > >> >> >> > > >> >> >> > Regards, > >> >> >> > Keith. > >> >> >> > > >> >> >> > http://keith-chapman.com > >> > > >> > > >> >