Re: Use -fvisibility=hidden for shared libraries
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Andres Freund <andres@anarazel.de>
Cc: Laurenz Albe <laurenz.albe@cybertec.at>, pgsql-hackers@postgresql.org
Date: 2022-01-11T00:01:36Z
Lists: pgsql-hackers
Attachments
- v3-0001-Use-hidden-visibility-for-shared-libraries-where-.patch (text/x-diff) patch v3-0001
Andres Freund <andres@anarazel.de> writes: > [ v2-0001-Use-hidden-visibility-for-shared-libraries-where-.patch ] This seems like a good idea, but it's failing to apply right now, mainly because of some cleanup I did in e04a8059a. As far as I can tell given the now-clarified meanings of PGDLLIMPORT/PGDLLEXPORT, this patch shouldn't be touching PGDLLIMPORT. The attached revision works for me under gcc 8.5 and clang 13. Also, it seemed like you'd maybe been more enthusiastic than necessary about plastering PGDLLEXPORT on things. I got through check-world cleanly without the diffs in either ltree.h or worker_spi.c (although I confess being confused why I didn't need the latter). I didn't try individually removing other diffs. Those diffs are still in v3 below, but we should clarify exactly which functions need marking. regards, tom lane
Commits
-
Mark all symbols exported from extension libraries PGDLLEXPORT.
- 8cf64d35eacc 16.0 landed
-
Default to hidden visibility for extension libraries where possible
- 089480c07705 16.0 landed
-
Remove now superfluous declarations of dlsym()ed symbols.
- fd4bad165539 16.0 landed
-
Add central declarations for dlsym()ed symbols
- f2b73c8d75d5 16.0 landed