From: Tom Lane Date: Wed, 27 Jul 2022 16:00:10 +0000 (-0400) Subject: Add missing PGDLLEXPORT markings in contrib/pg_prewarm. X-Git-Tag: REL_16_BETA1~2129 X-Git-Url: http://git.postgresql.org/gitweb/?a=commitdiff_plain;h=03361a368e7bf909283cc7721af004317fdabd3d;p=postgresql.git Add missing PGDLLEXPORT markings in contrib/pg_prewarm. After commit 089480c07, it's necessary for background worker entry points to be marked PGDLLEXPORT, else they aren't findable by LookupBackgroundWorkerFunction(). Since pg_prewarm lacks any regression tests, it's not surprising its worker entry points were overlooked. (A quick search turned up no other such oversights.) I added some documentation pointing out the need for this, too. Robins Tharakan and Tom Lane CAEP4nAzndnQv3-1QKb=D-hLoK3Rko12HHMFHHtdj2GQAUXO3gw@mail.gmail.com --- diff --git a/contrib/pg_prewarm/autoprewarm.c b/contrib/pg_prewarm/autoprewarm.c index b2d60260934..d9ab39dd900 100644 --- a/contrib/pg_prewarm/autoprewarm.c +++ b/contrib/pg_prewarm/autoprewarm.c @@ -82,8 +82,8 @@ typedef struct AutoPrewarmSharedState int prewarmed_blocks; } AutoPrewarmSharedState; -void autoprewarm_main(Datum main_arg); -void autoprewarm_database_main(Datum main_arg); +PGDLLEXPORT void autoprewarm_main(Datum main_arg); +PGDLLEXPORT void autoprewarm_database_main(Datum main_arg); PG_FUNCTION_INFO_V1(autoprewarm_start_worker); PG_FUNCTION_INFO_V1(autoprewarm_dump_now); diff --git a/doc/src/sgml/bgworker.sgml b/doc/src/sgml/bgworker.sgml index 73207f72fe1..3d4e4afcf91 100644 --- a/doc/src/sgml/bgworker.sgml +++ b/doc/src/sgml/bgworker.sgml @@ -141,14 +141,15 @@ typedef struct BackgroundWorker which the initial entry point for the background worker should be sought. The named library will be dynamically loaded by the worker process and bgw_function_name will be used to identify the - function to be called. If loading a function from the core code, this must - be set to "postgres". + function to be called. If calling a function in the core code, this must + be set to "postgres". - bgw_function_name is the name of a function in - a dynamically loaded library which should be used as the initial entry point - for a new background worker. + bgw_function_name is the name of the function + to use as the initial entry point for the new background worker. If + this function is in a dynamically loaded library, it must be marked + PGDLLEXPORT (and not static).