From: Andres Freund Date: Wed, 28 Sep 2022 17:16:49 +0000 (-0700) Subject: mingw: Define PGDLLEXPORT as __declspec (dllexport) as done for msvc X-Git-Tag: REL_16_BETA1~1563 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0e497eadb1f4028b147b5c58dc08cea7e73675e1;p=thirdparty%2Fpostgresql.git mingw: Define PGDLLEXPORT as __declspec (dllexport) as done for msvc While mingw would otherwise fall back to __attribute__((visibility("default"))), that appears to only work as long as no symbols are declared with __declspec(dllexport). But we can end up with some, e.g. plpython's Py_Init. It's quite possible we should do the same for cygwin, but I don't have a test environment for that... Discussion: http://postgr.es/m/20220928022724.erzuk5v4ai4b53do@awork3.anarazel.de Discussion: http://postgr.es/m/20220928025242.ugf7t5ugxxgmkraa@awork3.anarazel.de --- diff --git a/src/include/port/win32.h b/src/include/port/win32.h index 67755aadc40..d6c13d0bb8f 100644 --- a/src/include/port/win32.h +++ b/src/include/port/win32.h @@ -49,9 +49,11 @@ #endif /* - * Under MSVC, functions exported by a loadable module must be marked - * "dllexport". Other compilers don't need that. + * Functions exported by a loadable module must be marked "dllexport". + * + * While mingw would otherwise fall back to + * __attribute__((visibility("default"))), that appears to only work as long + * as no symbols are declared with __declspec(dllexport). But we can end up + * with some, e.g. plpython's Py_Init. */ -#ifdef _MSC_VER #define PGDLLEXPORT __declspec (dllexport) -#endif