[ https://issues.apache.org/jira/browse/ARROW-6312?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Neal Richardson updated ARROW-6312: ----------------------------------- Fix Version/s: (was: 0.16.0) 1.0.0 > [C++] Declare required Libs.private in arrow.pc package config > -------------------------------------------------------------- > > Key: ARROW-6312 > URL: https://issues.apache.org/jira/browse/ARROW-6312 > Project: Apache Arrow > Issue Type: Bug > Components: C++ > Affects Versions: 0.14.1 > Reporter: Michael Maguire > Priority: Major > Labels: pull-request-available > Fix For: 1.0.0 > > Time Spent: 40m > Remaining Estimate: 0h > > The current arrow.pc package config file produced is deficient and doesn't > properly declare static libraries pre-requisities that must be linked in in > order to *statically* link in libarrow.a > Currently it just has: > ``` > Libs: -L${libdir} -larrow > ``` > But in cases, e.g. where you enabled snappy, brotli or zlib support in arrow, > our toolchains need to see an arrow.pc file something more like: > ``` > Libs: -L${libdir} -larrow > Libs.private: -lsnappy -lboost_system -lz -llz4 -lbrotlidec -lbrotlienc > -lbrotlicommon -lzstd > ``` > If not, we get linkage errors. I'm told the convention is that if the .a has > an UNDEF, the Requires.private plus the Libs.private should resolve all the > undefs. See the Libs.private info in [https://linux.die.net/man/1/pkg-config] > > Note, however, as Sutou Kouhei pointed out in > [https://github.com/apache/arrow/pull/5123#issuecomment-522771452,] the > additional Libs.private need to be dynamically generated based on whether > functionality like snappy, brotli or zlib is enabled.. -- This message was sent by Atlassian Jira (v8.3.4#803005)