avro-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Henry Avetisyan (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (AVRO-1358) internal version of jansson exports the jansson symbols which collide with json-c and jansson libraries
Date Fri, 18 Oct 2013 17:10:44 GMT

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

Henry Avetisyan commented on AVRO-1358:
---------------------------------------

I'd like to request the same support for hashtable_* functions as well. Other libraries that
we use (e.g. zookeeper) also export the hashtable_* functions so during runtime we end up
with wrong functions being called resulting in core dumps. Would it be recommended to open
up a separate ticket?

> internal version of jansson exports the jansson symbols which collide with json-c and
jansson libraries
> -------------------------------------------------------------------------------------------------------
>
>                 Key: AVRO-1358
>                 URL: https://issues.apache.org/jira/browse/AVRO-1358
>             Project: Avro
>          Issue Type: Bug
>          Components: c
>    Affects Versions: 1.7.4
>         Environment: linux
>            Reporter: External Builds
>         Attachments: 0001-Hide-Jansson-symbols-in-Avro-library.patch
>
>
> The 1.7.x version of AVRO includes an "internal" copy of jansson library, but it also
exports all of the jansson symbols which will collide with other libraries. The symbol 'json_object_get'
will collide with the json-c library and all of the 'json_*' symbols collide with the external
jansson library.
> If you don't want to have an external dependency on 'jansson' then it seems that the
symbols will need to have a hidden visibility or some other mechanism to keep them from being
exported with the AVRO library.
> As a temporary solution we have wrapped the internal jansson functions with this so they
are hidden:
> #pragma GCC visibility push(hidden)
> json_function()
> #pragma GCC visibility pop
> Many other solutions exist. I don't see that having an external dependency is such a
drawback, as many other open source packages have dependencies on other open source packages,
but any solution would be appreciated.
> Thanks!



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Mime
View raw message