PostgreSQL Source Code
git master
link-canary.c
Go to the documentation of this file.
1
/*-------------------------------------------------------------------------
2
* link-canary.c
3
* Detect whether src/common functions came from frontend or backend.
4
*
5
* Copyright (c) 2018-2024, PostgreSQL Global Development Group
6
*
7
* IDENTIFICATION
8
* src/common/link-canary.c
9
*
10
*-------------------------------------------------------------------------
11
*/
12
#include "
c.h
"
13
14
#include "
common/link-canary.h
"
15
16
/*
17
* This function just reports whether this file was compiled for frontend
18
* or backend environment. We need this because in some systems, mainly
19
* ELF-based platforms, it is possible for a shlib (such as libpq) loaded
20
* into the backend to call a backend function named XYZ in preference to
21
* the shlib's own function XYZ. That's bad if the two functions don't
22
* act identically. This exact situation comes up for many functions in
23
* src/common and src/port, where the same function names exist in both
24
* libpq and the backend but they don't act quite identically. To verify
25
* that appropriate measures have been taken to prevent incorrect symbol
26
* resolution, libpq should test that this function returns true.
27
*/
28
bool
29
pg_link_canary_is_frontend
(
void
)
30
{
31
#ifdef FRONTEND
32
return
true
;
33
#else
34
return
false
;
35
#endif
36
}
c.h
pg_link_canary_is_frontend
bool pg_link_canary_is_frontend(void)
Definition:
link-canary.c:29
link-canary.h
src
common
link-canary.c
Generated on Sat Dec 14 2024 12:13:24 for PostgreSQL Source Code by
1.9.1