[PATCH 01/14] S390: Get rid of make warning: overriding recipe for target gconv-modules.
Stefan Liebler
stli@linux.vnet.ibm.com
Thu Apr 14 14:16:00 GMT 2016
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
>
More information about the Libc-alpha
mailing list