[ 
https://issues.apache.org/jira/browse/ORC-1440?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Nehal Jagdish Wani updated ORC-1440:
------------------------------------
    Description: 
{*}What{*}:
At the moment, the build on Windows fails with: [^failure.win.txt]


{*}Why{*}:
The recent version of `libprotobuf` generates code that depends on `abseil`. It 
can lead to issues for downstream consumers of the library. Example: 
[https://github.com/protocolbuffers/protobuf/issues/11920]


{*}Potential Resolution{*}:

The `orc::protobuf` interface target depends on our hand-rolled find module for 
`libprotobuf`. The recent versions of `libprotobuf` provide their own CMake 
configs. We can check for the existence of the config and use the hand-rolled 
version as a fallback.

  was:
The recent version of `libprotobuf` generates code that depends on `abseil`. It 
can lead to issues for downstream consumers of the library. Example: 
[https://github.com/protocolbuffers/protobuf/issues/11920]

 

At the moment, the build on Windows can fail with the following error:

```

2023-05-29T13:25:15.6428942Z Creating library c++\src\orc.lib and object 
c++\src\orc.exp 2023-05-29T13:25:15.6431638Z orc-proto-wrapper.cc.obj : error 
LNK2019: unresolved external symbol "private: void __cdecl 
absl::lts_20230125::log_internal::LogMessage::CopyToEncodedBuffer(class 
std::basic_string_view<char,struct std::char_traits<char> >,enum 
absl::lts_20230125::log_internal::LogMessage::StringType)" 
(?CopyToEncodedBuffer@LogMessage@log_internal@lts_20230125@absl@@AEAAXV?$basic_string_view@DU?$char_traits@D@std@@@std@@W4StringType@1234@@Z)
 referenced in function "public: class 
absl::lts_20230125::log_internal::LogMessage & __cdecl 
absl::lts_20230125::log_internal::LogMessage::operator<<<48>(char const 
(&)[48])" 
(??$?6$0DA@@LogMessage@log_internal@lts_20230125@absl@@QEAAAEAV0123@AEAY0DA@$$CBD@Z)
 2023-05-29T13:25:15.6433978Z ColumnWriter.cc.obj : error LNK2001: unresolved 
external symbol "private: void __cdecl 
absl::lts_20230125::log_internal::LogMessage::CopyToEncodedBuffer(class 
std::basic_string_view<char,struct std::char_traits<char> >,enum 
absl::lts_20230125::log_internal::LogMessage::StringType)" 
(?CopyToEncodedBuffer@LogMessage@log_internal@lts_20230125@absl@@AEAAXV?$basic_string_view@DU?$char_traits@D@std@@@std@@W4StringType@1234@@Z)
 2023-05-29T13:25:15.6435253Z Statistics.cc.obj : error LNK2001: unresolved 
external symbol "private: void __cdecl 
absl::lts_20230125::log_internal::LogMessage::CopyToEncodedBuffer(class 
std::basic_string_view<char,struct std::char_traits<char> >,enum 
absl::lts_20230125::log_internal::LogMessage::StringType)" 
(?CopyToEncodedBuffer@LogMessage@log_internal@lts_20230125@absl@@AEAAXV?$basic_string_view@DU?$char_traits@D@std@@@std@@W4StringType@1234@@Z)
 2023-05-29T13:25:15.6436375Z Writer.cc.obj : error LNK2001: unresolved 
external symbol "private: void __cdecl 
absl::lts_20230125::log_internal::LogMessage::CopyToEncodedBuffer(class 
std::basic_string_view<char,struct std::char_traits<char> >,enum 
absl::lts_20230125::log_internal::LogMessage::StringType)" 
(?CopyToEncodedBuffer@LogMessage@log_internal@lts_20230125@absl@@AEAAXV?$basic_string_view@DU?$char_traits@D@std@@@std@@W4StringType@1234@@Z)
 2023-05-29T13:25:15.6438719Z orc-proto-wrapper.cc.obj : error LNK2019: 
unresolved external symbol "class std::basic_string<char,struct 
std::char_traits<char>,class std::allocator<char> > * __cdecl 
absl::lts_20230125::log_internal::MakeCheckOpString<unsigned __int64,unsigned 
__int64>(unsigned __int64,unsigned __int64,char const *)" 
(??$MakeCheckOpString@_K_K@log_internal@lts_20230125@absl@@YAPEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@_K0PEBD@Z)
 referenced in function "class std::basic_string<char,struct 
std::char_traits<char>,class std::allocator<char> > * __cdecl 
absl::lts_20230125::log_internal::Check_LEImpl<unsigned __int64,unsigned 
__int64>(unsigned __int64 const &,unsigned __int64 const &,char const *)" 
(??$Check_LEImpl@_K_K@log_internal@lts_20230125@absl@@YAPEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEB_K0PEBD@Z)
 2023-05-29T13:25:15.6440711Z ColumnWriter.cc.obj : error LNK2001: unresolved 
external symbol "class std::basic_string<char,struct 
std::char_traits<char>,class std::allocator<char> > * __cdecl 
absl::lts_20230125::log_internal::MakeCheckOpString<unsigned __int64,unsigned 
__int64>(unsigned __int64,unsigned __int64,char const *)" 
(??$MakeCheckOpString@_K_K@log_internal@lts_20230125@absl@@YAPEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@_K0PEBD@Z)
 2023-05-29T13:25:15.6441826Z Statistics.cc.obj : error LNK2001: unresolved 
external symbol "class std::basic_string<char,struct 
std::char_traits<char>,class std::allocator<char> > * __cdecl 
absl::lts_20230125::log_internal::MakeCheckOpString<unsigned __int64,unsigned 
__int64>(unsigned __int64,unsigned __int64,char const *)" 
(??$MakeCheckOpString@_K_K@log_internal@lts_20230125@absl@@YAPEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@_K0PEBD@Z)
 2023-05-29T13:25:15.6442938Z Writer.cc.obj : error LNK2001: unresolved 
external symbol "class std::basic_string<char,struct 
std::char_traits<char>,class std::allocator<char> > * __cdecl 
absl::lts_20230125::log_internal::MakeCheckOpString<unsigned __int64,unsigned 
__int64>(unsigned __int64,unsigned __int64,char const *)" 
(??$MakeCheckOpString@_K_K@log_internal@lts_20230125@absl@@YAPEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@_K0PEBD@Z)
 2023-05-29T13:25:15.6445119Z 2023-05-29T13:25:15.6445709Z c++\src\orc.dll : 
fatal error LNK1120: 2 unresolved externals

```

 

The `orc::protobuf` interface target depends on our hand-rolled find module for 
libprotobuf. The recent versions of libprotobuf provide their own CMake 
configs. We can check for the existence of the config and use the hand-rolled 
version as a fallback.


> Add support for protobuf >=4.22.0 (external dep)
> ------------------------------------------------
>
>                 Key: ORC-1440
>                 URL: https://issues.apache.org/jira/browse/ORC-1440
>             Project: ORC
>          Issue Type: Improvement
>          Components: build
>            Reporter: Nehal Jagdish Wani
>            Priority: Minor
>         Attachments: failure.win.txt
>
>
> {*}What{*}:
> At the moment, the build on Windows fails with: [^failure.win.txt]
> {*}Why{*}:
> The recent version of `libprotobuf` generates code that depends on `abseil`. 
> It can lead to issues for downstream consumers of the library. Example: 
> [https://github.com/protocolbuffers/protobuf/issues/11920]
> {*}Potential Resolution{*}:
> The `orc::protobuf` interface target depends on our hand-rolled find module 
> for `libprotobuf`. The recent versions of `libprotobuf` provide their own 
> CMake configs. We can check for the existence of the config and use the 
> hand-rolled version as a fallback.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to