From 3e177cb280d0e643f6cce785d6048c5e2dd11d5c Mon Sep 17 00:00:00 2001
From: Nazir Bilal Yavuz <byavuz81@gmail.com>
Date: Tue, 12 Aug 2025 17:53:50 +0300
Subject: [PATCH v1] meson: Add _static and _shared suffixes to the library
 names

Otherwise static and shared libraries overwrite each other's debug file.

Suggested-by: Andres Freund <andres@anarazel.de>
Author: Nazir Bilal Yavuz <byavuz81@gmail.com>
---
 src/backend/bootstrap/meson.build          | 2 +-
 src/backend/meson.build                    | 2 +-
 src/backend/nodes/meson.build              | 2 +-
 src/backend/parser/meson.build             | 2 +-
 src/backend/replication/meson.build        | 2 +-
 src/backend/utils/activity/meson.build     | 2 +-
 src/backend/utils/adt/meson.build          | 2 +-
 src/backend/utils/misc/meson.build         | 2 +-
 src/common/meson.build                     | 6 +++---
 src/port/meson.build                       | 4 ++--
 src/fe_utils/meson.build                   | 2 +-
 src/bin/pg_basebackup/meson.build          | 2 +-
 src/bin/pg_dump/meson.build                | 2 +-
 src/bin/scripts/meson.build                | 2 +-
 src/interfaces/libpq/meson.build           | 4 ++--
 src/interfaces/ecpg/compatlib/meson.build  | 4 ++--
 src/interfaces/ecpg/ecpglib/meson.build    | 4 ++--
 src/interfaces/ecpg/pgtypeslib/meson.build | 4 ++--
 src/interfaces/libpq-oauth/meson.build     | 2 +-
 19 files changed, 26 insertions(+), 26 deletions(-)

diff --git a/src/backend/bootstrap/meson.build b/src/backend/bootstrap/meson.build
index 29726c1ab4f..4264d09113c 100644
--- a/src/backend/bootstrap/meson.build
+++ b/src/backend/bootstrap/meson.build
@@ -21,7 +21,7 @@ bootparse = custom_target('bootparse',
 generated_sources += bootparse.to_list()
 boot_parser_sources += bootparse
 
-boot_parser = static_library('boot_parser',
+boot_parser = static_library('boot_parser_static',
   boot_parser_sources,
   dependencies: [backend_code],
   include_directories: include_directories('.'),
diff --git a/src/backend/meson.build b/src/backend/meson.build
index b831a541652..e6e2f93179c 100644
--- a/src/backend/meson.build
+++ b/src/backend/meson.build
@@ -62,7 +62,7 @@ backend_link_depends = []
 # Can't name the static library 'postgres', because msbuild ends up with a
 # conflict for the .pdb file otherwise.
 
-postgres_lib = static_library('postgres_lib',
+postgres_lib = static_library('postgres_lib_static',
   backend_sources + timezone_sources + generated_backend_sources,
   link_whole: backend_link_with,
   dependencies: backend_build_deps,
diff --git a/src/backend/nodes/meson.build b/src/backend/nodes/meson.build
index 9a1c1b7b987..1ee286ea17b 100644
--- a/src/backend/nodes/meson.build
+++ b/src/backend/nodes/meson.build
@@ -23,7 +23,7 @@ nodefunc_sources = files(
   'outfuncs.c',
   'readfuncs.c',
 )
-nodefuncs = static_library('nodefuncs',
+nodefuncs = static_library('nodefuncs_static',
   nodefunc_sources,
   dependencies: [backend_code],
   include_directories: include_directories('../../include/nodes'),
diff --git a/src/backend/parser/meson.build b/src/backend/parser/meson.build
index 874aa749aa6..f5c07ff8dcf 100644
--- a/src/backend/parser/meson.build
+++ b/src/backend/parser/meson.build
@@ -42,7 +42,7 @@ backend_parser = custom_target('gram',
 generated_sources += backend_parser.to_list()
 parser_sources += backend_parser
 
-parser = static_library('parser',
+parser = static_library('parser_static',
   parser_sources,
   dependencies: [backend_code],
   include_directories: include_directories('.'),
diff --git a/src/backend/replication/meson.build b/src/backend/replication/meson.build
index b0601498865..ad278e78e3b 100644
--- a/src/backend/replication/meson.build
+++ b/src/backend/replication/meson.build
@@ -42,7 +42,7 @@ syncrep_gram = custom_target('syncrep_gram',
 generated_sources += syncrep_gram.to_list()
 repl_parser_sources += syncrep_gram
 
-repl_parser = static_library('repl_parser',
+repl_parser = static_library('repl_parser_static',
   repl_parser_sources,
   dependencies: [backend_code],
   include_directories: include_directories('.'),
diff --git a/src/backend/utils/activity/meson.build b/src/backend/utils/activity/meson.build
index d8e56b49c24..1bb0320a0b2 100644
--- a/src/backend/utils/activity/meson.build
+++ b/src/backend/utils/activity/meson.build
@@ -27,7 +27,7 @@ waitevent_sources = files(
   'wait_event_funcs.c',
 )
 
-wait_event = static_library('wait_event_names',
+wait_event = static_library('wait_event_names_static',
   waitevent_sources,
   dependencies: [backend_code],
   include_directories: include_directories('../../../include/utils'),
diff --git a/src/backend/utils/adt/meson.build b/src/backend/utils/adt/meson.build
index ed9bbd7b926..238ce24a7f8 100644
--- a/src/backend/utils/adt/meson.build
+++ b/src/backend/utils/adt/meson.build
@@ -130,7 +130,7 @@ jsonpath_gram = custom_target('jsonpath_parse',
 generated_sources += jsonpath_gram.to_list()
 
 # so we don't need to add . as an include dir for the whole backend
-backend_link_with += static_library('jsonpath',
+backend_link_with += static_library('jsonpath_static',
   jsonpath_scan, jsonpath_gram,
   dependencies: [backend_code],
   include_directories: include_directories('.'),
diff --git a/src/backend/utils/misc/meson.build b/src/backend/utils/misc/meson.build
index 9e389a00d05..af01d4852a8 100644
--- a/src/backend/utils/misc/meson.build
+++ b/src/backend/utils/misc/meson.build
@@ -27,7 +27,7 @@ guc_scan = custom_target('guc_scan',
 generated_sources += guc_scan
 
 # so we don't need to add . as an include dir for the whole backend
-backend_link_with += static_library('guc-file',
+backend_link_with += static_library('guc-file_static',
   guc_scan,
   dependencies: [backend_code],
   include_directories: include_directories('.'),
diff --git a/src/common/meson.build b/src/common/meson.build
index 1540ba67cca..7ce71bbf934 100644
--- a/src/common/meson.build
+++ b/src/common/meson.build
@@ -167,7 +167,7 @@ foreach name, opts : pgcommon_variants
       continue
     endif
     c_args = opts.get('c_args', []) + common_cflags[cflagname]
-    cflag_libs += static_library('libpgcommon@0@_@1@'.format(name, cflagname),
+    cflag_libs += static_library('libpgcommon@0@_@1@_static'.format(name, cflagname),
       c_pch: pch_c_h,
       kwargs: opts + {
         'include_directories': [
@@ -182,7 +182,7 @@ foreach name, opts : pgcommon_variants
     )
   endforeach
 
-  lib = static_library('libpgcommon@0@'.format(name),
+  lib = static_library('libpgcommon@0@_static'.format(name),
       link_with: cflag_libs,
       link_whole: cflag_libs,
       c_pch: pch_c_h,
@@ -201,7 +201,7 @@ common_srv = pgcommon['_srv']
 common_shlib = pgcommon['_shlib']
 common_static = pgcommon['']
 
-common_excluded_shlib = static_library('libpgcommon_excluded_shlib',
+common_excluded_shlib = static_library('libpgcommon_excluded_shlib_static',
   sources: common_sources_excluded_shlib,
   dependencies: [frontend_common_code],
   build_by_default: false,
diff --git a/src/port/meson.build b/src/port/meson.build
index fc7b059fee5..382e6d3078a 100644
--- a/src/port/meson.build
+++ b/src/port/meson.build
@@ -175,7 +175,7 @@ foreach name, opts : pgport_variants
       continue
     endif
     c_args = opts.get('c_args', []) + pgport_cflags[cflagname]
-    cflag_libs += static_library('libpgport@0@_@1@'.format(name, cflagname),
+    cflag_libs += static_library('libpgport@0@_@1@_static'.format(name, cflagname),
       sources,
       c_pch: pch_c_h,
       kwargs: opts + {
@@ -186,7 +186,7 @@ foreach name, opts : pgport_variants
     )
   endforeach
 
-  lib = static_library('libpgport@0@'.format(name),
+  lib = static_library('libpgport@0@_static'.format(name),
       pgport_sources,
       link_with: cflag_libs,
       link_whole: cflag_libs,
diff --git a/src/fe_utils/meson.build b/src/fe_utils/meson.build
index 5a9ddb73463..999dc469896 100644
--- a/src/fe_utils/meson.build
+++ b/src/fe_utils/meson.build
@@ -28,7 +28,7 @@ psqlscan = custom_target('psqlscan',
 generated_sources += psqlscan
 fe_utils_sources += psqlscan
 
-fe_utils = static_library('libpgfeutils',
+fe_utils = static_library('libpgfeutils_static',
   fe_utils_sources,
   c_pch: pch_postgres_fe_h,
   include_directories: [postgres_inc, libpq_inc],
diff --git a/src/bin/pg_basebackup/meson.build b/src/bin/pg_basebackup/meson.build
index 3a7fc10eab0..8cd2186ad2f 100644
--- a/src/bin/pg_basebackup/meson.build
+++ b/src/bin/pg_basebackup/meson.build
@@ -8,7 +8,7 @@ common_sources = files(
 )
 
 pg_basebackup_deps = [frontend_code, libpq, lz4, zlib, zstd]
-pg_basebackup_common = static_library('libpg_basebackup_common',
+pg_basebackup_common = static_library('libpg_basebackup_common_static',
   common_sources,
   dependencies: pg_basebackup_deps,
   kwargs: internal_lib_args,
diff --git a/src/bin/pg_dump/meson.build b/src/bin/pg_dump/meson.build
index a2233b0a1b4..c58fd370f21 100644
--- a/src/bin/pg_dump/meson.build
+++ b/src/bin/pg_dump/meson.build
@@ -19,7 +19,7 @@ pg_dump_common_sources = files(
   'pg_backup_utils.c',
 )
 
-pg_dump_common = static_library('libpgdump_common',
+pg_dump_common = static_library('libpgdump_common_static',
   pg_dump_common_sources,
   c_pch: pch_postgres_fe_h,
   dependencies: [frontend_code, libpq, lz4, zlib, zstd],
diff --git a/src/bin/scripts/meson.build b/src/bin/scripts/meson.build
index 80df7c33257..ff5b815baff 100644
--- a/src/bin/scripts/meson.build
+++ b/src/bin/scripts/meson.build
@@ -1,6 +1,6 @@
 # Copyright (c) 2022-2025, PostgreSQL Global Development Group
 
-scripts_common = static_library('libscripts_common',
+scripts_common = static_library('libscripts_common_static',
   files('common.c'),
   dependencies: [frontend_code, libpq],
   kwargs: internal_lib_args,
diff --git a/src/interfaces/libpq/meson.build b/src/interfaces/libpq/meson.build
index a74e885b169..52e157b48e8 100644
--- a/src/interfaces/libpq/meson.build
+++ b/src/interfaces/libpq/meson.build
@@ -57,7 +57,7 @@ libpq_so_c_args = ['-DUSE_DYNAMIC_OAUTH']
 # We could try to avoid building the source files twice, but it probably adds
 # more complexity than its worth (reusing object files requires also linking
 # to the library on windows or breaks precompiled headers).
-libpq_st = static_library('libpq',
+libpq_st = static_library('libpq_static',
   libpq_sources,
   include_directories: [libpq_inc],
   c_args: libpq_c_args,
@@ -66,7 +66,7 @@ libpq_st = static_library('libpq',
   kwargs: default_lib_args,
 )
 
-libpq_so = shared_library('libpq',
+libpq_so = shared_library('libpq_shared',
   libpq_sources + libpq_so_sources,
   include_directories: [libpq_inc, postgres_inc],
   c_args: libpq_c_args + libpq_so_c_args,
diff --git a/src/interfaces/ecpg/compatlib/meson.build b/src/interfaces/ecpg/compatlib/meson.build
index 56e0a21651b..4e5ad5e3f5b 100644
--- a/src/interfaces/ecpg/compatlib/meson.build
+++ b/src/interfaces/ecpg/compatlib/meson.build
@@ -16,7 +16,7 @@ if host_system == 'windows'
 endif
 
 # see src/interfaces/libpq/meson.build
-ecpg_compat_st = static_library('libecpg_compat',
+ecpg_compat_st = static_library('libecpg_compat_static',
   ecpg_compat_sources,
   include_directories: ecpg_compat_inc,
   c_args: ecpg_compat_c_args,
@@ -26,7 +26,7 @@ ecpg_compat_st = static_library('libecpg_compat',
 )
 ecpg_targets += ecpg_compat_st
 
-ecpg_compat_so = shared_library('libecpg_compat',
+ecpg_compat_so = shared_library('libecpg_compat_shared',
   ecpg_compat_sources + ecpg_compat_so_sources,
   include_directories: ecpg_compat_inc,
   c_args: ecpg_compat_c_args,
diff --git a/src/interfaces/ecpg/ecpglib/meson.build b/src/interfaces/ecpg/ecpglib/meson.build
index 8f478c6a73e..df0aebe2d1c 100644
--- a/src/interfaces/ecpg/ecpglib/meson.build
+++ b/src/interfaces/ecpg/ecpglib/meson.build
@@ -25,7 +25,7 @@ if host_system == 'windows'
 endif
 
 # see src/interfaces/libpq/meson.build
-ecpglib_st = static_library('libecpg',
+ecpglib_st = static_library('libecpg_static',
   ecpglib_sources,
   include_directories: ecpglib_inc,
   c_args: ecpglib_c_args,
@@ -36,7 +36,7 @@ ecpglib_st = static_library('libecpg',
 )
 ecpg_targets += ecpglib_st
 
-ecpglib_so = shared_library('libecpg',
+ecpglib_so = shared_library('libecpg_shared',
   ecpglib_sources + ecpglib_so_sources,
   include_directories: ecpglib_inc,
   c_args: ecpglib_c_args,
diff --git a/src/interfaces/ecpg/pgtypeslib/meson.build b/src/interfaces/ecpg/pgtypeslib/meson.build
index 02301ec9acb..7b660932526 100644
--- a/src/interfaces/ecpg/pgtypeslib/meson.build
+++ b/src/interfaces/ecpg/pgtypeslib/meson.build
@@ -21,7 +21,7 @@ if host_system == 'windows'
 endif
 
 # see src/interfaces/libpq/meson.build
-ecpg_pgtypes_st = static_library('libpgtypes',
+ecpg_pgtypes_st = static_library('libpgtypes_static',
   ecpg_pgtypes_sources,
   include_directories: ecpg_pgtypes_inc,
   c_args: ecpg_pgtypes_c_args,
@@ -31,7 +31,7 @@ ecpg_pgtypes_st = static_library('libpgtypes',
 )
 ecpg_targets += ecpg_pgtypes_st
 
-ecpg_pgtypes_so = shared_library('libpgtypes',
+ecpg_pgtypes_so = shared_library('libpgtypes_shared',
   ecpg_pgtypes_sources + ecpg_pgtypes_so_sources,
   include_directories: ecpg_pgtypes_inc,
   c_args: ecpg_pgtypes_c_args,
diff --git a/src/interfaces/libpq-oauth/meson.build b/src/interfaces/libpq-oauth/meson.build
index df064c59a40..0b986b4355b 100644
--- a/src/interfaces/libpq-oauth/meson.build
+++ b/src/interfaces/libpq-oauth/meson.build
@@ -21,7 +21,7 @@ export_file = custom_target('libpq-oauth.exports',
 # port needs to be in include path due to pthread-win32.h
 libpq_oauth_inc = include_directories('.', '../libpq', '../../port')
 
-libpq_oauth_st = static_library('libpq-oauth',
+libpq_oauth_st = static_library('libpq-oauth_static',
   libpq_oauth_sources,
   include_directories: [libpq_oauth_inc, postgres_inc],
   c_pch: pch_postgres_fe_h,
-- 
2.50.1

