postgres.git / summary / log / commit / refs

commit    6b85d4ba9b09dc94cf1b14aef517da095a83cdbb
Author:   Tom Lane <tgl@sss.pgh.pa.us>
Date:     Fri Apr 15 14:44:28 2016 +0000
First released in: 9.6.0

    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.


src/backend/storage/buffer/bufmgr.c | 2 +- src/include/storage/bufmgr.h | 13 ++++++++++++- 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 @@ -252,6 +252,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 */ [parent: ba8fe38f58e2]