This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 01/14] S390: Get rid of make warning: overriding recipe for target gconv-modules.


Ping. Is the new handling of gconv-modules in iconvdata/Makefile okay to commit?

On 04/14/2016 04:16 PM, Stefan Liebler wrote:
Ping. Is the new handling of gconv-modules in iconvdata/Makefile okay to
commit?

On 02/23/2016 10:21 AM, Stefan Liebler wrote:
This patch introduces a way to provide an architecture dependent
gconv-modules
file. Before this patch, the gconv-modules file was normally installed
from
src-dir/iconvdata/gconv-modules. The S390 Makefile had overridden the
installation recipe (with a make warning) in order to install the
gconv-module-s390 file from build-dir.
The iconvdata/Makefile provides another recipe, which copies the
gconv-modules
file from src to build dir, which are used by the testcases.
Thus the testcases does not use the currently build s390-modules.

This patch uses build-dir/iconvdata/gconv-modules for installation.
If makefile variable GCONV_MODULES is not defined, then gconv-modules
file
is copied form source to build directory.
If an architecture wants to create his own gconv-modules file, then
the variable
GCONV_MODULE is set to the name of the architecture-dependent
gconv-modules file
in build-directory, which has to be created by a recipe in
sysdeps/.../Makefile.
Then the  iconvdata/Makefile copies this file to
build-dir/iconvdata/gconv-modules, which will be used for installation
and test.

This way, the s390-Makefile does not need to override the recipe for
gconv-modules and no warning is emitted anymore.

ChangeLog:

     * iconvdata/Makefile (GCONV_MODULES): New variable, which can
     be set by sysdeps Makefile.
     ($(inst_gconvdir)/gconv-modules):
     Install file from $(objpfx)gconv-modules.
     ($(objpfx)gconv-modules): Copy File from src-dir or from
     build-dir with file-name specified by GCONV_MODULES.
     * sysdeps/s390/s390-64/Makefile ($(inst_gconvdir)/gconv-modules):
     Deleted.
     (GCONV_MODULES): New variable.
---
  iconvdata/Makefile            | 15 +++++++++++++--
  sysdeps/s390/s390-64/Makefile | 17 ++---------------
  2 files changed, 15 insertions(+), 17 deletions(-)

diff --git a/iconvdata/Makefile b/iconvdata/Makefile
index 357530b..1ac1a5c 100644
--- a/iconvdata/Makefile
+++ b/iconvdata/Makefile
@@ -244,7 +244,7 @@ headers: $(addprefix $(objpfx),
$(generated-modules:=.h))
  $(addprefix $(inst_gconvdir)/, $(modules.so)): \
      $(inst_gconvdir)/%: $(objpfx)% $(+force)
      $(do-install-program)
-$(inst_gconvdir)/gconv-modules: gconv-modules $(+force)
+$(inst_gconvdir)/gconv-modules: $(objpfx)gconv-modules $(+force)
      $(do-install)
  ifeq (no,$(cross-compiling))
  # Update the $(prefix)/lib/gconv/gconv-modules.cache file. This is
necessary
@@ -332,6 +332,17 @@ tst-tables-clean:
      -rm -f $(objpfx)tst-*.table $(objpfx)tst-EUC-TW.irreversible

  ifdef objpfx
+# Override GCONV_MODULES file name and provide a Makefile recipe,
+# if you want to create your own version.
+ifndef GCONV_MODULES
+# Copy gconv-modules from src-tree for tests and installation.
  $(objpfx)gconv-modules: gconv-modules
-    cp $^ $@
+    cp $< $@
+else
+generated += $(GCONV_MODULES)
+
+# Copy overrided GCONV_MODULES file to gconv-modules for tests and
installation.
+$(objpfx)gconv-modules: $(objpfx)$(GCONV_MODULES)
+    cp $< $@
+endif
  endif
diff --git a/sysdeps/s390/s390-64/Makefile
b/sysdeps/s390/s390-64/Makefile
index ce4f0c5..de249a7 100644
--- a/sysdeps/s390/s390-64/Makefile
+++ b/sysdeps/s390/s390-64/Makefile
@@ -39,7 +39,7 @@ $(patsubst %, $(inst_gconvdir)/%.so,
$(s390x-iconv-modules)) : \
  $(inst_gconvdir)/%.so: $(objpfx)%.so $(+force)
      $(do-install-program)

-$(objpfx)gconv-modules-s390: gconv-modules $(+force)
+$(objpfx)gconv-modules-s390: gconv-modules
      cp $< $@
      echo >> $@
      echo "# S/390 hardware accelerated modules" >> $@
@@ -74,19 +74,6 @@ $(objpfx)gconv-modules-s390: gconv-modules $(+force)
      echo -n "module    ISO-10646/UTF8/        UTF-16BE//    " >> $@
      echo "    UTF8_UTF16_Z9        1" >> $@

-$(inst_gconvdir)/gconv-modules: $(objpfx)gconv-modules-s390 $(+force)
-    $(do-install)
-ifeq (no,$(cross-compiling))
-# Update the $(prefix)/lib/gconv/gconv-modules.cache file. This is
necessary
-# if this libc has more gconv modules than the previously installed one.
-    if test -f "$(inst_gconvdir)/gconv-modules.cache"; then \
-       LC_ALL=C \
-       $(rtld-prefix) \
-       $(common-objpfx)iconv/iconvconfig \
-         $(addprefix --prefix=,$(install_root)); \
-    fi
-else
-    @echo '*@*@*@ You should recreate
$(inst_gconvdir)/gconv-modules.cache'
-endif
+GCONV_MODULES = gconv-modules-s390

  endif





Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]