diff --git a/iconvdata/Makefile b/iconvdata/Makefile
index 3c6929fb59..bb3f621b49 100644
--- a/iconvdata/Makefile
+++ b/iconvdata/Makefile
@@ -137,13 +137,12 @@ charmaps = ../localedata/charmaps
 extra-modules-left := $(modules)
 include extra-module.mk
 
-gconv-modules = gconv-modules.conf gconv-modules-extra.conf
+gconv-modules = gconv-modules gconv-modules.d/gconv-modules-extra.conf
 modpfx = $(objpfx)gconv-modules.d/
 
 extra-objs	+= $(modules.so)
 install-others	= $(addprefix $(inst_gconvdir)/, $(modules.so))	\
-		  $(addprefix $(inst_gconvdir)/gconv-modules.d/, \
-			      $(gconv-modules))
+		  $(addprefix $(inst_gconvdir)/, $(gconv-modules))
 
 # We can build the conversion tables for numerous charsets automatically.
 
@@ -185,7 +184,7 @@ generated += $(generated-modules:=.h) $(generated-modules:=.stmp) \
 	     iconv-test.out iconv-rules tst-loading.mtrace	 \
 	     mtrace-tst-loading.out tst-tables.out iconv-test.xxx
 ifdef objpfx
-generated += $(addprefix gconv-modules.d/,$(gconv-modules))
+generated += $(gconv-modules)
 endif
 
 # Rules to generate the headers.
@@ -253,8 +252,8 @@ headers: $(addprefix $(objpfx), $(generated-modules:=.h))
 $(addprefix $(inst_gconvdir)/, $(modules.so)): \
     $(inst_gconvdir)/%: $(objpfx)% $(+force)
 	$(do-install-program)
-$(addprefix $(inst_gconvdir)/gconv-modules.d/, $(gconv-modules)): \
-    $(inst_gconvdir)/gconv-modules.d/%: $(modpfx)% $(+force)
+$(addprefix $(inst_gconvdir)/, $(gconv-modules)): \
+    $(inst_gconvdir)/%: $(objpfx)% $(+force)
 	$(do-install)
 ifeq (no,$(cross-compiling))
 # Update the $(prefix)/lib/gconv/gconv-modules.cache file. This is necessary
@@ -307,29 +306,29 @@ $(objpfx)mtrace-tst-loading.out: $(objpfx)tst-loading.out
 	$(common-objpfx)malloc/mtrace $(objpfx)tst-loading.mtrace > $@; \
 	$(evaluate-test)
 
-$(objpfx)bug-iconv1.out: $(addprefix $(modpfx), $(gconv-modules)) \
+$(objpfx)bug-iconv1.out: $(addprefix $(objpfx), $(gconv-modules)) \
 			 $(addprefix $(objpfx),$(modules.so))
-$(objpfx)bug-iconv2.out: $(addprefix $(modpfx), $(gconv-modules)) \
+$(objpfx)bug-iconv2.out: $(addprefix $(objpfx), $(gconv-modules)) \
 			 $(addprefix $(objpfx),$(modules.so))
-$(objpfx)bug-iconv3.out: $(addprefix $(modpfx), $(gconv-modules)) \
+$(objpfx)bug-iconv3.out: $(addprefix $(objpfx), $(gconv-modules)) \
 			 $(addprefix $(objpfx),$(modules.so))
-$(objpfx)bug-iconv5.out: $(addprefix $(modpfx), $(gconv-modules)) \
+$(objpfx)bug-iconv5.out: $(addprefix $(objpfx), $(gconv-modules)) \
 			 $(addprefix $(objpfx),$(modules.so))
-$(objpfx)tst-loading.out: $(addprefix $(modpfx), $(gconv-modules)) \
+$(objpfx)tst-loading.out: $(addprefix $(objpfx), $(gconv-modules)) \
 			  $(addprefix $(objpfx),$(modules.so))
-$(objpfx)tst-iconv4.out: $(addprefix $(modpfx), $(gconv-modules)) \
+$(objpfx)tst-iconv4.out: $(addprefix $(objpfx), $(gconv-modules)) \
 			 $(addprefix $(objpfx),$(modules.so))
-$(objpfx)tst-iconv7.out: $(addprefix $(modpfx), $(gconv-modules)) \
+$(objpfx)tst-iconv7.out: $(addprefix $(objpfx), $(gconv-modules)) \
 			 $(addprefix $(objpfx),$(modules.so))
-$(objpfx)bug-iconv10.out: $(addprefix $(modpfx), $(gconv-modules)) \
+$(objpfx)bug-iconv10.out: $(addprefix $(objpfx), $(gconv-modules)) \
 			  $(addprefix $(objpfx),$(modules.so))
-$(objpfx)bug-iconv12.out: $(addprefix $(modpfx), $(gconv-modules)) \
+$(objpfx)bug-iconv12.out: $(addprefix $(objpfx), $(gconv-modules)) \
 			  $(addprefix $(objpfx),$(modules.so))
-$(objpfx)bug-iconv14.out: $(addprefix $(modpfx), $(gconv-modules)) \
+$(objpfx)bug-iconv14.out: $(addprefix $(objpfx), $(gconv-modules)) \
 			  $(addprefix $(objpfx),$(modules.so))
 
 $(objpfx)iconv-test.out: run-iconv-test.sh \
-			 $(addprefix $(modpfx), $(gconv-modules)) \
+			 $(addprefix $(objpfx), $(gconv-modules)) \
 			 $(addprefix $(objpfx),$(modules.so)) \
 			 $(common-objdir)/iconv/iconv_prog TESTS
 	iconv_modules="$(modules)" \
@@ -338,7 +337,7 @@ $(objpfx)iconv-test.out: run-iconv-test.sh \
 	$(evaluate-test)
 
 $(objpfx)tst-tables.out: tst-tables.sh \
-			 $(addprefix $(modpfx), $(gconv-modules)) \
+			 $(addprefix $(objpfx), $(gconv-modules)) \
 			 $(addprefix $(objpfx),$(modules.so)) \
 			 $(objpfx)tst-table-from $(objpfx)tst-table-to
 	$(SHELL) $< $(common-objpfx) $(common-objpfx)iconvdata/ \
@@ -357,7 +356,10 @@ $(modpfx):
 $(modpfx)%: % $(modpfx)
 	cp $< $@
 
+$(objpfx)gconv-modules: gconv-modules
+	cp $^ $@
+
 # Test requires BIG5HKSCS.
 $(objpfx)tst-iconv-big5-hkscs-to-2ucs4.out: \
-			 $(addprefix $(modpfx), $(gconv-modules)) \
+			 $(addprefix $(objpfx), $(gconv-modules)) \
 			 $(addprefix $(objpfx),$(modules.so))
diff --git a/iconvdata/gconv-modules.conf b/iconvdata/gconv-modules
similarity index 100%
rename from iconvdata/gconv-modules.conf
rename to iconvdata/gconv-modules
