aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2016-04-15 10:44:28 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2016-04-15 10:44:28 -0400
commit6b85d4ba9b09dc94cf1b14aef517da095a83cdbb (patch)
tree3324b2a0b34cda02b2963c5506f3881af9d084c4 /src
parentba8fe38f58e2f3d86c5361373598af80d5ce4443 (diff)
downloadpostgresql-6b85d4ba9b09dc94cf1b14aef517da095a83cdbb.tar.gz
postgresql-6b85d4ba9b09dc94cf1b14aef517da095a83cdbb.zip
Fix portability problem induced by commit a6f6b7819.
pg_xlogdump includes bufmgr.h. With a compiler that emits code for static inline functions even when they're unreferenced, that leads to unresolved external references in the new static-inline version of BufferGetPage(). So hide it with #ifndef FRONTEND, as we've done for similar issues elsewhere. Per buildfarm member pademelon.
Diffstat (limited to 'src')
-rw-r--r--src/backend/storage/buffer/bufmgr.c2
-rw-r--r--src/include/storage/bufmgr.h13
2 files changed, 13 insertions, 2 deletions
diff --git a/src/backend/storage/buffer/bufmgr.c b/src/backend/storage/buffer/bufmgr.c
index 462dd4a2262..a2b2c66a86a 100644
--- a/src/backend/storage/buffer/bufmgr.c
+++ b/src/backend/storage/buffer/bufmgr.c
@@ -4299,7 +4299,7 @@ IssuePendingWritebacks(WritebackContext *context)
* For best performance, keep the tests that are fastest and/or most likely to
* exclude a page from old snapshot testing near the front.
*/
-extern void
+void
TestForOldSnapshot(Snapshot snapshot, Relation relation, Page page)
{
Assert(relation != NULL);
diff --git a/src/include/storage/bufmgr.h b/src/include/storage/bufmgr.h
index afd8a847efd..86040610e77 100644
--- a/src/include/storage/bufmgr.h
+++ b/src/include/storage/bufmgr.h
@@ -253,6 +253,15 @@ extern void FreeAccessStrategy(BufferAccessStrategy strategy);
/* inline functions */
/*
+ * Although this header file is nominally backend-only, certain frontend
+ * programs like pg_xlogdump include it. For compilers that emit static
+ * inline functions even when they're unused, that leads to unsatisfied
+ * external references; hence hide these with #ifndef FRONTEND.
+ */
+
+#ifndef FRONTEND
+
+/*
* BufferGetPage
* Returns the page associated with a buffer.
*
@@ -272,4 +281,6 @@ BufferGetPage(Buffer buffer, Snapshot snapshot, Relation relation,
return page;
}
-#endif
+#endif /* FRONTEND */
+
+#endif /* BUFMGR_H */