Re: Mark all GUC variable as PGDLLIMPORT
Bruce Momjian <bruce@momjian.us>
From: Bruce Momjian <bruce@momjian.us>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Julien Rouhaud <rjuju123@gmail.com>, Michael Paquier <michael@paquier.xyz>, pgsql-hackers@lists.postgresql.org
Date: 2021-08-23T14:19:07Z
Lists: pgsql-hackers
On Mon, Aug 23, 2021 at 10:15:04AM -0400, Tom Lane wrote: > Bruce Momjian <bruce@momjian.us> writes: > > On Sun, Aug 22, 2021 at 09:29:01PM +0800, Julien Rouhaud wrote: > >> Then shouldn't we try to prevent direct access on all platforms rather than > >> only one? > > > Agreed. If Julian says 99% of the non-export problems are GUCs, and we > > can just export them all, why not do it? We already export every global > > variable on Unix-like systems, and we have seen no downsides. > > By that argument, *every* globally-visible variable should be marked > PGDLLIMPORT. But the mere fact that two backend .c files need to access No, Julien says 99% need only the GUCs, so that is not the argument I am making. > some variable doesn't mean that we want any random bit of code doing so. > > And yes, I absolutely would prohibit extensions from accessing many > of them, if there were a reasonable way to do it. It would be a good > start towards establishing a defined API for extensions. Well, if Unix needed it, we would have addressed this more regularly, but since it is only Windows that has this _feature_, it is the rare Windows cases that need adjustment, and usually as an afterthought since Windows isn't usually a primary tested platform. What I am saying is that if we blocked global variable access on Unix, initial testing would have showed what needs to be exported and it would not be as big a problem. -- Bruce Momjian <bruce@momjian.us> https://momjian.us EDB https://enterprisedb.com If only the physical world exists, free will is an illusion.
Commits
-
Remove PGDLLIMPORT marker from __pg_log_level
- 8d3341266508 15.0 landed
-
Mark a few 'bbsink' related functions / variables static.
- b5f44225b833 15.0 landed
-
Add some missing PGDLLIMPORT markings
- 5edeb574285e 15.0 landed
-
Apply PGDLLIMPORT markings broadly.
- 8ec569479fc2 15.0 landed
-
Helper script to apply PGDLLIMPORT markings.
- 80900d469091 15.0 landed
-
Simplify declaring variables exported from libpgcommon and libpgport.
- e04a8059a74c 15.0 cited