diff options
author | Stefan Liebler <stli@linux.vnet.ibm.com> | 2016-05-25 17:18:04 +0200 |
---|---|---|
committer | Stefan Liebler <stli@linux.vnet.ibm.com> | 2016-05-25 17:18:04 +0200 |
commit | c70e9913d2fc2d0bf6a3ca98a4dece759d40a4ec (patch) | |
tree | f5ffe7fd87ec3cc0486bdbbd78d2c7b4bc7585c3 | |
parent | 5ff81530dd14552a48a8fcb119e5867a1b504cc6 (diff) | |
download | glibc-c70e9913d2fc2d0bf6a3ca98a4dece759d40a4ec.zip glibc-c70e9913d2fc2d0bf6a3ca98a4dece759d40a4ec.tar.gz glibc-c70e9913d2fc2d0bf6a3ca98a4dece759d40a4ec.tar.bz2 |
S390: Get rid of make warning: overriding recipe for target gconv-modules.
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, which
is generated by concatenating src-dir/iconvdata/gconv-modules and the
architecture specific one. The latter one can be specified by setting the variable
sysdeps-gconv-modules in sysdeps/.../Makefile.
The architecture specific gconv-modules file is emitted before the common one
because these modules aren't used in all possible conversions. E.g. the converting
from INTERNAL to UTF-16 used the common UTF-16.so module instead of UTF16_UTF32_Z9.so.
This way, the s390-Makefile does not need to override the recipe for gconv-modules
and no warning is emitted anymore.
Since we no longer support empty objpfx the conditional test in iconvdata/Makefile
is removed.
ChangeLog:
* iconvdata/Makefile ($(inst_gconvdir)/gconv-modules):
Install file from $(objpfx)gconv-modules.
($(objpfx)gconv-modules): Concatenate architecture specific file
in variable sysdeps-gconv-modules and gconv-modules in src dir.
* sysdeps/s390/gconv-modules: New file.
* sysdeps/s390/s390-64/Makefile: ($(inst_gconvdir)/gconv-modules):
Deleted.
($(objpfx)gconv-modules-s390): Deleted.
(sysdeps-gconv-modules): New variable.
-rw-r--r-- | ChangeLog | 12 | ||||
-rw-r--r-- | iconvdata/Makefile | 6 | ||||
-rw-r--r-- | sysdeps/s390/gconv-modules | 50 | ||||
-rw-r--r-- | sysdeps/s390/s390-64/Makefile | 51 |
4 files changed, 65 insertions, 54 deletions
@@ -1,3 +1,15 @@ +2016-05-25 Stefan Liebler <stli@linux.vnet.ibm.com> + + * iconvdata/Makefile ($(inst_gconvdir)/gconv-modules): + Install file from $(objpfx)gconv-modules. + ($(objpfx)gconv-modules): Concatenate architecture specific file + in variable sysdeps-gconv-modules and gconv-modules in src dir. + * sysdeps/s390/gconv-modules: New file. + * sysdeps/s390/s390-64/Makefile: ($(inst_gconvdir)/gconv-modules): + Deleted. + ($(objpfx)gconv-modules-s390): Deleted. + (sysdeps-gconv-modules): New variable. + 2016-05-24 Joseph Myers <joseph@codesourcery.com> [BZ #15479] diff --git a/iconvdata/Makefile b/iconvdata/Makefile index 357530b..f9826b3 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 @@ -331,7 +331,5 @@ do-tests-clean common-mostlyclean: tst-tables-clean tst-tables-clean: -rm -f $(objpfx)tst-*.table $(objpfx)tst-EUC-TW.irreversible -ifdef objpfx $(objpfx)gconv-modules: gconv-modules - cp $^ $@ -endif + cat $(sysdeps-gconv-modules) $^ > $@ diff --git a/sysdeps/s390/gconv-modules b/sysdeps/s390/gconv-modules new file mode 100644 index 0000000..7021105 --- /dev/null +++ b/sysdeps/s390/gconv-modules @@ -0,0 +1,50 @@ +# GNU libc iconv configuration. +# Copyright (C) 1997-2016 Free Software Foundation, Inc. +# This file is part of the GNU C Library. + +# The GNU C Library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. + +# The GNU C Library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. + +# You should have received a copy of the GNU Lesser General Public +# License along with the GNU C Library; if not, see +# <http://www.gnu.org/licenses/>. + +# All lines contain the following information: + +# If the lines start with `module' +# fromset: either a name triple or a regular expression triple. +# toset: a name triple or an expression with \N to get regular +# expression matching results. +# filename: filename of the module implementing the transformation. +# If it is not absolute the path is made absolute by prepending +# the directory the configuration file is found in. +# cost: optional cost of the transformation. Default is 1. + +# If the lines start with `alias' +# alias: alias name which is not really recognized. +# name: the real name of the character set + +# S/390 hardware accelerated modules +# from to module cost +module ISO-8859-1// IBM037// ISO-8859-1_CP037_Z900 1 +module IBM037// ISO-8859-1// ISO-8859-1_CP037_Z900 1 +module ISO-10646/UTF8/ UTF-32// UTF8_UTF32_Z9 1 +module UTF-32BE// ISO-10646/UTF8/ UTF8_UTF32_Z9 1 +module ISO-10646/UTF8/ UTF-32BE// UTF8_UTF32_Z9 1 +module UTF-16BE// UTF-32// UTF16_UTF32_Z9 1 +module UTF-32BE// UTF-16// UTF16_UTF32_Z9 1 +module INTERNAL UTF-16// UTF16_UTF32_Z9 1 +module UTF-32BE// UTF-16BE// UTF16_UTF32_Z9 1 +module INTERNAL UTF-16BE// UTF16_UTF32_Z9 1 +module UTF-16BE// UTF-32BE// UTF16_UTF32_Z9 1 +module UTF-16BE// INTERNAL UTF16_UTF32_Z9 1 +module UTF-16BE// ISO-10646/UTF8/ UTF8_UTF16_Z9 1 +module ISO-10646/UTF8/ UTF-16// UTF8_UTF16_Z9 1 +module ISO-10646/UTF8/ UTF-16BE// UTF8_UTF16_Z9 1 diff --git a/sysdeps/s390/s390-64/Makefile b/sysdeps/s390/s390-64/Makefile index 5909d1f..ce4aa3b 100644 --- a/sysdeps/s390/s390-64/Makefile +++ b/sysdeps/s390/s390-64/Makefile @@ -37,54 +37,5 @@ $(patsubst %, $(inst_gconvdir)/%.so, $(s390x-iconv-modules)) : \ $(inst_gconvdir)/%.so: $(objpfx)%.so $(+force) $(do-install-program) -$(objpfx)gconv-modules-s390: gconv-modules $(+force) - cp $< $@ - echo >> $@ - echo "# S/390 hardware accelerated modules" >> $@ - echo -n "module ISO-8859-1// IBM037// " >> $@ - echo " ISO-8859-1_CP037_Z900 1" >> $@ - echo -n "module IBM037// ISO-8859-1// " >> $@ - echo " ISO-8859-1_CP037_Z900 1" >> $@ - echo -n "module ISO-10646/UTF8/ UTF-32// " >> $@ - echo " UTF8_UTF32_Z9 1" >> $@ - echo -n "module UTF-32BE// ISO-10646/UTF8/ " >> $@ - echo " UTF8_UTF32_Z9 1" >> $@ - echo -n "module ISO-10646/UTF8/ UTF-32BE// " >> $@ - echo " UTF8_UTF32_Z9 1" >> $@ - echo -n "module UTF-16BE// UTF-32// " >> $@ - echo " UTF16_UTF32_Z9 1" >> $@ - echo -n "module UTF-32BE// UTF-16// " >> $@ - echo " UTF16_UTF32_Z9 1" >> $@ - echo -n "module INTERNAL UTF-16// " >> $@ - echo " UTF16_UTF32_Z9 1" >> $@ - echo -n "module UTF-32BE// UTF-16BE// " >> $@ - echo " UTF16_UTF32_Z9 1" >> $@ - echo -n "module INTERNAL UTF-16BE// " >> $@ - echo " UTF16_UTF32_Z9 1" >> $@ - echo -n "module UTF-16BE// UTF-32BE// " >> $@ - echo " UTF16_UTF32_Z9 1" >> $@ - echo -n "module UTF-16BE// INTERNAL " >> $@ - echo " UTF16_UTF32_Z9 1" >> $@ - echo -n "module UTF-16BE// ISO-10646/UTF8/ " >> $@ - echo " UTF8_UTF16_Z9 1" >> $@ - echo -n "module ISO-10646/UTF8/ UTF-16// " >> $@ - echo " UTF8_UTF16_Z9 1" >> $@ - 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 - +sysdeps-gconv-modules = ../sysdeps/s390/gconv-modules endif |