Portability hack for pg_global_prng_state.
authorTom Lane <[email protected]>
Mon, 29 Nov 2021 05:04:45 +0000 (00:04 -0500)
committerTom Lane <[email protected]>
Mon, 29 Nov 2021 05:04:45 +0000 (00:04 -0500)
PGDLLIMPORT is only appropriate for variables declared in the backend,
not when the variable is coming from a library included in frontend code.
(This isn't a particularly nice fix, but for now, use the same method
employed elsewhere.)

Discussion: https://postgr.es/m/[email protected]

src/include/common/pg_prng.h

index 623c65ae731dc02874ec71ff718b7561ee65fc2e..e4df5165d7e3858cc74fbfc5d5e3fe990f057105 100644 (file)
@@ -26,7 +26,11 @@ typedef struct pg_prng_state
  * Callers not needing local PRNG series may use this global state vector,
  * after initializing it with one of the pg_prng_...seed functions.
  */
+#ifndef FRONTEND
 extern PGDLLIMPORT pg_prng_state pg_global_prng_state;
+#else
+extern pg_prng_state pg_global_prng_state;
+#endif
 
 extern void pg_prng_seed(pg_prng_state *state, uint64 seed);
 extern void pg_prng_fseed(pg_prng_state *state, double fseed);