From 946186fb319bbdd3125597e1bc096a6fdf932c1a Mon Sep 17 00:00:00 2001 From: "Chao Li (HighGo Inc.)" Date: Wed, 6 Aug 2025 06:45:17 +0800 Subject: [PATCH v1] Enhance Makefiles to rebuild objects on map file changes While working on the upgrade from GB18030 to GB18030-2022, I updated two GB18030-related map files. However, rebuilding PostgreSQL did not recompile anything, which led me to discover that the Makefiles under src/backend/utils/mb/conversion_procs were missing dependency rules between NAME.o and the corresponding map files. This patch adds the necessary dependencies to ensure that when a map file changes, the corresponding .o file is rebuilt accordingly. Author: Chao Li --- src/backend/utils/mb/conversion_procs/proc.mk | 6 +++++ .../conversion_procs/utf8_and_big5/Makefile | 3 +++ .../utf8_and_cyrillic/Makefile | 5 ++++ .../utf8_and_euc2004/Makefile | 3 +++ .../conversion_procs/utf8_and_euc_cn/Makefile | 3 +++ .../conversion_procs/utf8_and_euc_jp/Makefile | 3 +++ .../conversion_procs/utf8_and_euc_kr/Makefile | 3 +++ .../conversion_procs/utf8_and_euc_tw/Makefile | 3 +++ .../utf8_and_gb18030/Makefile | 3 +++ .../mb/conversion_procs/utf8_and_gbk/Makefile | 3 +++ .../utf8_and_iso8859/Makefile | 27 +++++++++++++++++++ .../conversion_procs/utf8_and_johab/Makefile | 3 +++ .../conversion_procs/utf8_and_sjis/Makefile | 3 +++ .../utf8_and_sjis2004/Makefile | 3 +++ .../mb/conversion_procs/utf8_and_uhc/Makefile | 3 +++ .../mb/conversion_procs/utf8_and_win/Makefile | 23 ++++++++++++++++ 16 files changed, 97 insertions(+) diff --git a/src/backend/utils/mb/conversion_procs/proc.mk b/src/backend/utils/mb/conversion_procs/proc.mk index 2eeae282409..cc88d5ae79f 100644 --- a/src/backend/utils/mb/conversion_procs/proc.mk +++ b/src/backend/utils/mb/conversion_procs/proc.mk @@ -1,6 +1,12 @@ SRCS += $(NAME).c OBJS += $(NAME).o $(WIN32RES) +$(MAPFILES): + # The map files are generated by Perl scripts. We don't automatically + # regenerate them here. + +$(NAME).o: $(MAPFILES) + rpath = all: all-shared-lib diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_big5/Makefile b/src/backend/utils/mb/conversion_procs/utf8_and_big5/Makefile index 2c274f3d9cc..4e8aae35416 100644 --- a/src/backend/utils/mb/conversion_procs/utf8_and_big5/Makefile +++ b/src/backend/utils/mb/conversion_procs/utf8_and_big5/Makefile @@ -6,8 +6,11 @@ subdir = src/backend/utils/mb/conversion_procs/utf8_and_big5 top_builddir = ../../../../../.. include $(top_builddir)/src/Makefile.global +mapfiledir = $(top_builddir)/src/backend/utils/mb/Unicode NAME = utf8_and_big5 PGFILEDESC = "utf8 <-> big5 text conversions" +MAPFILES = $(mapfiledir)/big5_to_utf8.map \ + $(mapfiledir)/utf8_to_big5.map include $(srcdir)/../proc.mk diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/Makefile b/src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/Makefile index 725281ec967..f0742db6898 100644 --- a/src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/Makefile +++ b/src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/Makefile @@ -6,8 +6,13 @@ subdir = src/backend/utils/mb/conversion_procs/utf8_and_cyrillic top_builddir = ../../../../../.. include $(top_builddir)/src/Makefile.global +mapfiledir = $(top_builddir)/src/backend/utils/mb/Unicode NAME = utf8_and_cyrillic PGFILEDESC = "utf8 <-> cyrillic text conversions" +MAPFILES = $(mapfiledir)/utf8_to_koi8r.map \ + $(mapfiledir)/koi8r_to_utf8.map \ + $(mapfiledir)/utf8_to_koi8u.map \ + $(mapfiledir)/koi8u_to_utf8.map include $(srcdir)/../proc.mk diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_euc2004/Makefile b/src/backend/utils/mb/conversion_procs/utf8_and_euc2004/Makefile index c6c537cffc8..e3830de005c 100644 --- a/src/backend/utils/mb/conversion_procs/utf8_and_euc2004/Makefile +++ b/src/backend/utils/mb/conversion_procs/utf8_and_euc2004/Makefile @@ -6,8 +6,11 @@ subdir = src/backend/utils/mb/conversion_procs/utf8_and_euc2004 top_builddir = ../../../../../.. include $(top_builddir)/src/Makefile.global +mapfiledir = $(top_srcdir)/src/backend/utils/mb/Unicode NAME = utf8_and_euc2004 PGFILEDESC = "utf8 <-> euc2004 text conversions" +MAPFILES = $(mapfiledir)/euc_jis_2004_to_utf8.map \ + $(mapfiledir)/utf8_to_euc_jis_2004.map include $(srcdir)/../proc.mk diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_euc_cn/Makefile b/src/backend/utils/mb/conversion_procs/utf8_and_euc_cn/Makefile index 9d0e157a758..d31499a5da8 100644 --- a/src/backend/utils/mb/conversion_procs/utf8_and_euc_cn/Makefile +++ b/src/backend/utils/mb/conversion_procs/utf8_and_euc_cn/Makefile @@ -6,8 +6,11 @@ subdir = src/backend/utils/mb/conversion_procs/utf8_and_euc_cn top_builddir = ../../../../../.. include $(top_builddir)/src/Makefile.global +mapfiledir = $(top_builddir)/src/backend/utils/mb/Unicode NAME = utf8_and_euc_cn PGFILEDESC = "utf8 <-> euc_cn text conversions" +MAPFILES = $(mapfiledir)/euc_cn_to_utf8.map \ + $(mapfiledir)/utf8_to_euc_cn.map include $(srcdir)/../proc.mk diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_euc_jp/Makefile b/src/backend/utils/mb/conversion_procs/utf8_and_euc_jp/Makefile index c5f55784363..5f15ae40867 100644 --- a/src/backend/utils/mb/conversion_procs/utf8_and_euc_jp/Makefile +++ b/src/backend/utils/mb/conversion_procs/utf8_and_euc_jp/Makefile @@ -6,8 +6,11 @@ subdir = src/backend/utils/mb/conversion_procs/utf8_and_euc_jp top_builddir = ../../../../../.. include $(top_builddir)/src/Makefile.global +mapfiledir = $(top_builddir)/src/backend/utils/mb/Unicode NAME = utf8_and_euc_jp PGFILEDESC = "utf8 <-> euc_jp text conversions" +MAPFILES = $(mapfiledir)/euc_jp_to_utf8.map \ + $(mapfiledir)/utf8_to_euc_jp.map include $(srcdir)/../proc.mk diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_euc_kr/Makefile b/src/backend/utils/mb/conversion_procs/utf8_and_euc_kr/Makefile index a7eff9e9e17..71d1a322012 100644 --- a/src/backend/utils/mb/conversion_procs/utf8_and_euc_kr/Makefile +++ b/src/backend/utils/mb/conversion_procs/utf8_and_euc_kr/Makefile @@ -6,8 +6,11 @@ subdir = src/backend/utils/mb/conversion_procs/utf8_and_euc_kr top_builddir = ../../../../../.. include $(top_builddir)/src/Makefile.global +mapfiledir = $(top_builddir)/src/backend/utils/mb/Unicode NAME = utf8_and_euc_kr PGFILEDESC = "utf8 <-> euc_kr text conversions" +MAPFILES = $(mapfiledir)/euc_kr_to_utf8.map \ + $(mapfiledir)/utf8_to_euc_kr.map include $(srcdir)/../proc.mk diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_euc_tw/Makefile b/src/backend/utils/mb/conversion_procs/utf8_and_euc_tw/Makefile index 59f42dc2b7d..23e88503444 100644 --- a/src/backend/utils/mb/conversion_procs/utf8_and_euc_tw/Makefile +++ b/src/backend/utils/mb/conversion_procs/utf8_and_euc_tw/Makefile @@ -6,8 +6,11 @@ subdir = src/backend/utils/mb/conversion_procs/utf8_and_euc_tw top_builddir = ../../../../../.. include $(top_builddir)/src/Makefile.global +mapfiledir = $(top_srcdir)/src/backend/utils/mb/Unicode NAME = utf8_and_euc_tw PGFILEDESC = "utf8 <-> euc_tw text conversions" +MAPFILES = $(mapfiledir)/euc_tw_to_utf8.map \ + $(mapfiledir)/utf8_to_euc_tw.map include $(srcdir)/../proc.mk diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_gb18030/Makefile b/src/backend/utils/mb/conversion_procs/utf8_and_gb18030/Makefile index 17bc18c373b..0b2d37b2995 100644 --- a/src/backend/utils/mb/conversion_procs/utf8_and_gb18030/Makefile +++ b/src/backend/utils/mb/conversion_procs/utf8_and_gb18030/Makefile @@ -6,8 +6,11 @@ subdir = src/backend/utils/mb/conversion_procs/utf8_and_gb18030 top_builddir = ../../../../../.. include $(top_builddir)/src/Makefile.global +mapfiledir = $(top_builddir)/src/backend/utils/mb/Unicode NAME = utf8_and_gb18030 PGFILEDESC = "utf8 <-> gb18030 text conversions" +MAPFILES = $(mapfiledir)/gb18030_to_utf8.map \ + $(mapfiledir)/utf8_to_gb18030.map include $(srcdir)/../proc.mk diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_gbk/Makefile b/src/backend/utils/mb/conversion_procs/utf8_and_gbk/Makefile index eb20638440f..ca28f103bf1 100644 --- a/src/backend/utils/mb/conversion_procs/utf8_and_gbk/Makefile +++ b/src/backend/utils/mb/conversion_procs/utf8_and_gbk/Makefile @@ -6,8 +6,11 @@ subdir = src/backend/utils/mb/conversion_procs/utf8_and_gbk top_builddir = ../../../../../.. include $(top_builddir)/src/Makefile.global +mapfiledir = $(top_builddir)/src/backend/utils/mb/Unicode NAME = utf8_and_gbk PGFILEDESC = "utf8 <-> gbk text conversions" +MAPFILES = $(mapfiledir)/gbk_to_utf8.map \ + $(mapfiledir)/utf8_to_gbk.map include $(srcdir)/../proc.mk diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_iso8859/Makefile b/src/backend/utils/mb/conversion_procs/utf8_and_iso8859/Makefile index 6fd0dd27bf5..7914dff2b47 100644 --- a/src/backend/utils/mb/conversion_procs/utf8_and_iso8859/Makefile +++ b/src/backend/utils/mb/conversion_procs/utf8_and_iso8859/Makefile @@ -6,8 +6,35 @@ subdir = src/backend/utils/mb/conversion_procs/utf8_and_iso8859 top_builddir = ../../../../../.. include $(top_builddir)/src/Makefile.global +mapfiledir = $(top_builddir)/src/backend/utils/mb/Unicode NAME = utf8_and_iso8859 PGFILEDESC = "utf8 <-> iso8859 text conversions" +MAPFILES = $(mapfiledir)/iso8859_10_to_utf8.map \ + $(mapfiledir)/iso8859_13_to_utf8.map \ + $(mapfiledir)/iso8859_14_to_utf8.map \ + $(mapfiledir)/iso8859_15_to_utf8.map \ + $(mapfiledir)/iso8859_16_to_utf8.map \ + $(mapfiledir)/iso8859_2_to_utf8.map \ + $(mapfiledir)/iso8859_3_to_utf8.map \ + $(mapfiledir)/iso8859_4_to_utf8.map \ + $(mapfiledir)/iso8859_5_to_utf8.map \ + $(mapfiledir)/iso8859_6_to_utf8.map \ + $(mapfiledir)/iso8859_7_to_utf8.map \ + $(mapfiledir)/iso8859_8_to_utf8.map \ + $(mapfiledir)/iso8859_9_to_utf8.map \ + $(mapfiledir)/utf8_to_iso8859_10.map \ + $(mapfiledir)/utf8_to_iso8859_13.map \ + $(mapfiledir)/utf8_to_iso8859_14.map \ + $(mapfiledir)/utf8_to_iso8859_15.map \ + $(mapfiledir)/utf8_to_iso8859_16.map \ + $(mapfiledir)/utf8_to_iso8859_2.map \ + $(mapfiledir)/utf8_to_iso8859_3.map \ + $(mapfiledir)/utf8_to_iso8859_4.map \ + $(mapfiledir)/utf8_to_iso8859_5.map \ + $(mapfiledir)/utf8_to_iso8859_6.map \ + $(mapfiledir)/utf8_to_iso8859_7.map \ + $(mapfiledir)/utf8_to_iso8859_8.map \ + $(mapfiledir)/utf8_to_iso8859_9.map include $(srcdir)/../proc.mk diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_johab/Makefile b/src/backend/utils/mb/conversion_procs/utf8_and_johab/Makefile index e48ef3e3ea7..c4709c93976 100644 --- a/src/backend/utils/mb/conversion_procs/utf8_and_johab/Makefile +++ b/src/backend/utils/mb/conversion_procs/utf8_and_johab/Makefile @@ -6,8 +6,11 @@ subdir = src/backend/utils/mb/conversion_procs/utf8_and_johab top_builddir = ../../../../../.. include $(top_builddir)/src/Makefile.global +mapfiledir = $(top_builddir)/src/backend/utils/mb/Unicode NAME = utf8_and_johab PGFILEDESC = "utf8 <-> johab text conversions" +MAPFILES = $(mapfiledir)/johab_to_utf8.map \ + $(mapfiledir)/utf8_to_johab.map include $(srcdir)/../proc.mk diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_sjis/Makefile b/src/backend/utils/mb/conversion_procs/utf8_and_sjis/Makefile index 448c5d4b64a..b5c2f0125a9 100644 --- a/src/backend/utils/mb/conversion_procs/utf8_and_sjis/Makefile +++ b/src/backend/utils/mb/conversion_procs/utf8_and_sjis/Makefile @@ -6,8 +6,11 @@ subdir = src/backend/utils/mb/conversion_procs/utf8_and_sjis top_builddir = ../../../../../.. include $(top_builddir)/src/Makefile.global +mapfiledir = $(top_srcdir)/src/backend/utils/mb/Unicode NAME = utf8_and_sjis PGFILEDESC = "utf8 <-> sjis text conversions" +MAPFILES = $(mapfiledir)/sjis_to_utf8.map \ + $(mapfiledir)/utf8_to_sjis.map include $(srcdir)/../proc.mk diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_sjis2004/Makefile b/src/backend/utils/mb/conversion_procs/utf8_and_sjis2004/Makefile index f7072a4dc5f..c201074677d 100644 --- a/src/backend/utils/mb/conversion_procs/utf8_and_sjis2004/Makefile +++ b/src/backend/utils/mb/conversion_procs/utf8_and_sjis2004/Makefile @@ -6,8 +6,11 @@ subdir = src/backend/utils/mb/conversion_procs/utf8_and_sjis2004 top_builddir = ../../../../../.. include $(top_builddir)/src/Makefile.global +mapfiledir = $(top_srcdir)/src/backend/utils/mb/Unicode NAME = utf8_and_sjis2004 PGFILEDESC = "utf8 <-> sjis2004 text conversions" +MAPFILES = $(mapfiledir)/shift_jis_2004_to_utf8.map \ + $(mapfiledir)/utf8_to_shift_jis_2004.map include $(srcdir)/../proc.mk diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_uhc/Makefile b/src/backend/utils/mb/conversion_procs/utf8_and_uhc/Makefile index cc6e0a9c971..85db2cf5686 100644 --- a/src/backend/utils/mb/conversion_procs/utf8_and_uhc/Makefile +++ b/src/backend/utils/mb/conversion_procs/utf8_and_uhc/Makefile @@ -6,8 +6,11 @@ subdir = src/backend/utils/mb/conversion_procs/utf8_and_uhc top_builddir = ../../../../../.. include $(top_builddir)/src/Makefile.global +mapfiledir = $(top_srcdir)/src/backend/utils/mb/Unicode NAME = utf8_and_uhc PGFILEDESC = "utf8 <-> uhc text conversions" +MAPFILES = $(mapfiledir)/uhc_to_utf8.map \ + $(mapfiledir)/utf8_to_uhc.map include $(srcdir)/../proc.mk diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_win/Makefile b/src/backend/utils/mb/conversion_procs/utf8_and_win/Makefile index d8b18fbf334..107d8002beb 100644 --- a/src/backend/utils/mb/conversion_procs/utf8_and_win/Makefile +++ b/src/backend/utils/mb/conversion_procs/utf8_and_win/Makefile @@ -6,8 +6,31 @@ subdir = src/backend/utils/mb/conversion_procs/utf8_and_win top_builddir = ../../../../../.. include $(top_builddir)/src/Makefile.global +mapfiledir = $(top_srcdir)/src/backend/utils/mb/Unicode NAME = utf8_and_win PGFILEDESC = "utf8 <-> win text conversions" +MAPFILES = $(mapfiledir)/utf8_to_win1250.map \ + $(mapfiledir)/utf8_to_win1251.map \ + $(mapfiledir)/utf8_to_win1252.map \ + $(mapfiledir)/utf8_to_win1253.map \ + $(mapfiledir)/utf8_to_win1254.map \ + $(mapfiledir)/utf8_to_win1255.map \ + $(mapfiledir)/utf8_to_win1256.map \ + $(mapfiledir)/utf8_to_win1257.map \ + $(mapfiledir)/utf8_to_win1258.map \ + $(mapfiledir)/utf8_to_win866.map \ + $(mapfiledir)/utf8_to_win874.map \ + $(mapfiledir)/win1250_to_utf8.map \ + $(mapfiledir)/win1251_to_utf8.map \ + $(mapfiledir)/win1252_to_utf8.map \ + $(mapfiledir)/win1253_to_utf8.map \ + $(mapfiledir)/win1254_to_utf8.map \ + $(mapfiledir)/win1255_to_utf8.map \ + $(mapfiledir)/win1256_to_utf8.map \ + $(mapfiledir)/win1257_to_utf8.map \ + $(mapfiledir)/win866_to_utf8.map \ + $(mapfiledir)/win874_to_utf8.map \ + $(mapfiledir)/win1258_to_utf8.map include $(srcdir)/../proc.mk -- 2.39.5 (Apple Git-154)