From 5d28072fb81ee14547f60effa296b996d43104ba Mon Sep 17 00:00:00 2001 From: Zsolt Parragi Date: Wed, 4 Dec 2024 20:26:06 +0000 Subject: [PATCH] Fixing warnings on the postgres side This also modifies the pg_waldump build so it is now correctly uses pg_tde as a static library, to handle warnings and custom flags for KMIP correctly. This commit also enables generic -Werror for meson builds, so that we are forced to fix warnings before merging in the future. --- meson.build | 6 ++-- src/backend/access/transam/xlogreader.c | 4 +-- src/bin/meson.build | 39 ------------------------- src/bin/pg_waldump/meson.build | 14 +++++++-- src/include/access/xlog_smgr.h | 4 +-- src/meson.build | 2 -- 6 files changed, 19 insertions(+), 50 deletions(-) diff --git a/meson.build b/meson.build index f2cb30c4f548b..60c2fcebd1f4c 100644 --- a/meson.build +++ b/meson.build @@ -89,8 +89,8 @@ postgres_lib_d = get_option('extra_lib_dirs') cppflags = [] -cflags = [] -cxxflags = [] +cflags = ['-Werror'] +cxxflags = ['-Werror'] cflags_warn = [] cxxflags_warn = [] cflags_mod = [] @@ -3150,6 +3150,8 @@ subdir('src') subdir('contrib') +subdir('src/bin') + subdir('src/test') subdir('src/interfaces/libpq/test') subdir('src/interfaces/ecpg/test') diff --git a/src/backend/access/transam/xlogreader.c b/src/backend/access/transam/xlogreader.c index 5920c70a88dba..8a9555443d237 100644 --- a/src/backend/access/transam/xlogreader.c +++ b/src/backend/access/transam/xlogreader.c @@ -71,10 +71,10 @@ static void WALOpenSegmentInit(WALOpenSegment *seg, WALSegmentContext *segcxt, * Now it's here because pg_rewind and other tools compile only * w/ xlogreader.c */ -XLogSmgr *xlog_smgr = &xlog_smgr_standard; +const XLogSmgr *xlog_smgr = &xlog_smgr_standard; void -SetXLogSmgr(XLogSmgr *xlsmgr) +SetXLogSmgr(const XLogSmgr *xlsmgr) { xlog_smgr = xlsmgr; } diff --git a/src/bin/meson.build b/src/bin/meson.build index 093f049dd08ff..aa60ebaa3026f 100644 --- a/src/bin/meson.build +++ b/src/bin/meson.build @@ -1,44 +1,5 @@ # Copyright (c) 2022-2024, PostgreSQL Global Development Group -tde_decrypt_sources = [] -tde_include = [] -tde_deps = [] - -if percona_ext == true -# TODO: should be in pg_tde, ideally as a static lib -tde_decrypt_sources = files( - '../../contrib/pg_tde/src/access/pg_tde_tdemap.c', - '../../contrib/pg_tde/src/access/pg_tde_xlog_encrypt.c', - '../../contrib/pg_tde/src/catalog/tde_global_space.c', - '../../contrib/pg_tde/src/catalog/tde_keyring.c', - '../../contrib/pg_tde/src/catalog/tde_keyring_parse_opts.c', - '../../contrib/pg_tde/src/catalog/tde_principal_key.c', - '../../contrib/pg_tde/src/common/pg_tde_utils.c', - '../../contrib/pg_tde/src/encryption/enc_aes.c', - '../../contrib/pg_tde/src/encryption/enc_tde.c', - '../../contrib/pg_tde/src/keyring/keyring_api.c', - '../../contrib/pg_tde/src/keyring/keyring_curl.c', - '../../contrib/pg_tde/src/keyring/keyring_file.c', - '../../contrib/pg_tde/src/keyring/keyring_vault.c', - '../../contrib/pg_tde/src/keyring/keyring_kmip.c', - '../../contrib/pg_tde/src/keyring/keyring_kmip_ereport.c', - - '../../contrib/pg_tde/src/libkmip/libkmip/src/kmip.c', - '../../contrib/pg_tde/src/libkmip/libkmip/src/kmip_bio.c', - '../../contrib/pg_tde/src/libkmip/libkmip/src/kmip_locate.c', - '../../contrib/pg_tde/src/libkmip/libkmip/src/kmip_memset.c', - ) - -tde_include = include_directories( - '../../contrib/pg_tde/src/include', - '../../contrib/pg_tde/src/libkmip/libkmip/include' - ) - -curldep = dependency('libcurl') -tde_deps = [curldep] - -endif - subdir('initdb') subdir('pg_amcheck') subdir('pg_archivecleanup') diff --git a/src/bin/pg_waldump/meson.build b/src/bin/pg_waldump/meson.build index 24130f1f281fb..cab9de90846f2 100644 --- a/src/bin/pg_waldump/meson.build +++ b/src/bin/pg_waldump/meson.build @@ -9,7 +9,6 @@ pg_waldump_sources = files( pg_waldump_sources += rmgr_desc_sources pg_waldump_sources += xlogreader_sources pg_waldump_sources += files('../../backend/access/transam/xlogstats.c') -pg_waldump_sources += tde_decrypt_sources if host_system == 'windows' pg_waldump_sources += rc_bin_gen.process(win32ver_rc, extra_args: [ @@ -17,12 +16,21 @@ if host_system == 'windows' '--FILEDESC', 'pg_waldump - decode and display WA']) endif +link_w = [] +include_dirs = [postgres_inc] + +if percona_ext == true + link_w = [pg_tde_frontend] + include_dirs = [postgres_inc, pg_tde_inc] +endif + pg_waldump = executable('pg_waldump', pg_waldump_sources, - dependencies: [frontend_code, lz4, zstd, tde_deps], + dependencies: [frontend_code, lz4, zstd], c_args: ['-DFRONTEND'], # needed for xlogreader et al kwargs: default_bin_args, - include_directories: [postgres_inc, tde_include], + include_directories: include_dirs, + link_with: link_w ) bin_targets += pg_waldump diff --git a/src/include/access/xlog_smgr.h b/src/include/access/xlog_smgr.h index 49554320a4b99..05a9d45f30433 100644 --- a/src/include/access/xlog_smgr.h +++ b/src/include/access/xlog_smgr.h @@ -18,7 +18,7 @@ static const XLogSmgr xlog_smgr_standard = { .seg_write = pg_pwrite, }; -extern XLogSmgr *xlog_smgr; -extern void SetXLogSmgr(XLogSmgr *xlsmgr); +extern const XLogSmgr *xlog_smgr; +extern void SetXLogSmgr(const XLogSmgr *xlsmgr); #endif /* XLOG_SMGR_H */ diff --git a/src/meson.build b/src/meson.build index 65c7d17d08f09..480475adff1d7 100644 --- a/src/meson.build +++ b/src/meson.build @@ -7,8 +7,6 @@ subdir('timezone') subdir('backend') -subdir('bin') - subdir('pl') subdir('interfaces')