postgresql/src/include/port/cygwin.h
Tom Lane e04a8059a7 Simplify declaring variables exported from libpgcommon and libpgport.
This reverts commits c2d1eea9e and 11b500072, as well as similar hacks
elsewhere, in favor of setting up the PGDLLIMPORT macro so that it can
just be used unconditionally.  That can work because in frontend code,
we need no marking in either the defining or consuming files for a
variable exported from these libraries; and frontend code has no need
to access variables exported from the core backend, either.

While at it, write some actual documentation about the PGDLLIMPORT
and PGDLLEXPORT macros.

Patch by me, based on a suggestion from Robert Haas.

Discussion: https://postgr.es/m/1160385.1638165449@sss.pgh.pa.us
2021-11-29 11:00:00 -05:00

23 lines
758 B
C

/* src/include/port/cygwin.h */
/*
* Variables declared in the core backend and referenced by loadable
* modules need to be marked "dllimport" in the core build, but
* "dllexport" when the declaration is read in a loadable module.
* No special markings should be used when compiling frontend code.
*/
#ifndef FRONTEND
#ifdef BUILDING_DLL
#define PGDLLIMPORT __declspec (dllexport)
#else
#define PGDLLIMPORT __declspec (dllimport)
#endif
#endif
/*
* Cygwin has a strtof() which is literally just (float)strtod(), which means
* we get misrounding _and_ silent over/underflow. Using our wrapper doesn't
* fix the misrounding but does fix the error checks, which cuts down on the
* number of test variant files needed.
*/
#define HAVE_BUGGY_STRTOF 1