You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@kudu.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2026/09/18 19:56:00 UTC

[jira] [Commented] (KUDU-3614) Fix protobuf symbol hiding logic for kudu client to work with LLD/Mold

    [ https://issues.apache.org/jira/browse/KUDU-3614?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18116862#comment-18116862 ] 

ASF subversion and git services commented on KUDU-3614:
-------------------------------------------------------

Commit 82425427e5cfb547318e20e6e8ad23b77674996f in kudu's branch refs/heads/master from Alexey Serbin
[ https://gitbox.apache.org/repos/asf?p=kudu.git;h=82425427e ]

KUDU-3805 prefer using mold linker when available

This changelist enables using the mold linker [1] for building Kudu
and addresses KUDU-3614 as well.

With the mold linker, it was necessary to switch to using --exclude-libs
for gflags and glog libraries to avoid exporting their symbols.
It seems the mold linker doesn't recognize and interpret the *google::*
pattern the same way as a GNU ld-compatible linker does.  With that,
I removed corresponding sections from src/kudu/client/symbols.map.
Maybe, we need to eventually switch to using --exclude-libs=ALL and
avoid using the --version-script provisions, but it's a separate story.

[1] https://github.com/rui314/mold

Change-Id: I9cd76b3cfa96b6ebd119a95d24834fe154e56aa0
Reviewed-on: http://gerrit.cloudera.org:8080/24862
Reviewed-by: Abhishek Chennaka <ac...@cloudera.com>
Tested-by: Alexey Serbin <al...@apache.org>


> Fix protobuf symbol hiding logic for kudu client to work with LLD/Mold
> ----------------------------------------------------------------------
>
>                 Key: KUDU-3614
>                 URL: https://issues.apache.org/jira/browse/KUDU-3614
>             Project: Kudu
>          Issue Type: Bug
>          Components: build, client
>    Affects Versions: 1.17.0
>            Reporter: Joe McDonnell
>            Assignee: Alexey Serbin
>            Priority: Major
>
> In KUDU-3334, we started hiding libprotobuf symbols in kudu client to avoid conflicts with Impala. LLD and Mold use a slightly different semantic for --exclude-libs and it won't work unless we also add the ".a" extension. Impala had an issue like that when we started supporting Mold (see the fix in IMPALA-12807 here: [https://github.com/apache/impala/commit/88dcdfd4662d0ec4a6e0d81d643d207f6e5ed900] ).
> The fix is to add the ".a" extension (which also works on gold). 
> This only comes up if Impala builds Kudu with Clang/LLD, which we currently never do. I only found this through experimentation.



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