Re: using libjansson in postgres extension - Mailing list pgsql-novice

From Gurjeet Singh
Subject Re: using libjansson in postgres extension
Date
Msg-id CABwTF4U7ZYdnt8SvrvCEgR+92sAsqQj+pwSNX_L3b5wUZWFvnw@mail.gmail.com
Whole thread Raw
In response to using libjansson in postgres extension  (mahendrakar s <mahendrakarforpg@gmail.com>)
List pgsql-novice
On Thu, Feb 23, 2023 at 5:39 AM mahendrakar s
<mahendrakarforpg@gmail.com> wrote:
> I'm developing an extension where in it indirectly references (libjansson) and libjansson has a symbol json_object
whichconflicts with postgres  symbol 'json_object'.
 
>
> I see below:
> PostgreSQL: Documentation: 11: 38.10. C-Language Functions
> "Symbol names defined within object files must not conflict with each other or with symbols defined in the PostgreSQL
serverexecutable. You will have to rename your functions or variables if you get error messages to this effect."
 
>
> But this requires to maintain libjansson with customizations(have a different symbol) to meet the needs.
>
> Do you have any suggestions to use the libjansson 'as it is' without using the different symbol.

I don't think that'll be possible. The docs are pretty clear, and I'm
afraid any proposal to change Postgres function's name will not be
welcome.

Perhaps you can perform surgery on your library _after_ linking, to
remove any exports of the symbol json_object. See [1] for some ideas.
This will allow you to keep using libjansson code without
modifications, but it will require some post-build complexity, with
platform-specific solutions.

[1]: https://stackoverflow.com/questions/9648655/how-to-hide-the-exported-symbols-name-within-a-shared-library

Best regards,
Gurjeet
http://Gurje.et



pgsql-novice by date:

Previous
From: mahendrakar s
Date:
Subject: Re: using libjansson in postgres extension
Next
From: Andrew Dunstan
Date:
Subject: Re: using libjansson in postgres extension