S390: Use s390-64 specific ionv-modules on s390-32, too.
This patch reworks the existing s390 64bit specific iconv modules in order
to use them on s390 31bit, too.
Thus the parts for subdirectory iconvdata in sysdeps/s390/s390-64/Makefile
were moved to sysdeps/s390/Makefile so that they apply on 31bit, too.
All those modules are moved from sysdeps/s390/s390-64 directory to sysdeps/s390.
The iso-8859-1 to/from cp037 module was adjusted, to use brct (branch relative
on count) instruction on 31bit s390 instead of brctg, because the brctg is a
zarch instruction and is not available on a 31bit kernel.
The utf modules are using zarch instructions, thus the directive machinemode
zarch_nohighgprs was added to the inline assemblies to omit the high-gprs flag
in the shared libraries. Otherwise they can't be loaded on a 31bit kernel.
The ifunc resolvers were adjusted in order to call the etf3eh or vector variants
only if zarch instructions are available (64bit kernel in 31bit compat-mode).
Furthermore some variable types were changed. E.g. unsigned long long would be
a register pair on s390 31bit, but we want only one single register.
For variables of type size_t the register contents have to be enlarged from a
32bit to a 64bit value on 31bit, because the inline assemblies uses 64bit values
in such cases.
ChangeLog:
* sysdeps/s390/s390-64/Makefile (iconvdata-subdirectory):
Move to ...
* sysdeps/s390/Makefile: ... here.
* sysdeps/s390/s390-64/iso-8859-1_cp037_z900.c: Move to ...
* sysdeps/s390/iso-8859-1_cp037_z900.c: ... here.
(BRANCH_ON_COUNT): New define.
(TR_LOOP): Use BRANCH_ON_COUNT instead of brctg.
* sysdeps/s390/s390-64/utf16-utf32-z9.c: Move to ...
* sysdeps/s390/utf16-utf32-z9.c: ... here and adjust to
run on s390-32, too.
* sysdeps/s390/s390-64/utf8-utf16-z9.c: Move to ...
* sysdeps/s390/utf8-utf16-z9.c: ... here and adjust to
run on s390-32, too.
* sysdeps/s390/s390-64/utf8-utf32-z9.c: Move to ...
* sysdeps/s390/utf8-utf32-z9.c: ... here and adjust to
run on s390-32, too.
2016-05-25 15:18:05 +00:00
|
|
|
ifeq ($(subdir),iconvdata)
|
|
|
|
ISO-8859-1_CP037_Z900-routines := iso-8859-1_cp037_z900
|
|
|
|
ISO-8859-1_CP037_Z900-map := gconv.map
|
|
|
|
|
|
|
|
UTF8_UTF32_Z9-routines := utf8-utf32-z9
|
|
|
|
UTF8_UTF32_Z9-map := gconv.map
|
|
|
|
|
|
|
|
UTF16_UTF32_Z9-routines := utf16-utf32-z9
|
|
|
|
UTF16_UTF32_Z9-map := gconv.map
|
|
|
|
|
|
|
|
UTF8_UTF16_Z9-routines := utf8-utf16-z9
|
|
|
|
UTF8_UTF16_Z9-map := gconv.map
|
|
|
|
|
|
|
|
s390x-iconv-modules = ISO-8859-1_CP037_Z900 UTF8_UTF16_Z9 UTF16_UTF32_Z9 UTF8_UTF32_Z9
|
|
|
|
|
|
|
|
extra-modules-left += $(s390x-iconv-modules)
|
|
|
|
include extra-module.mk
|
|
|
|
|
|
|
|
cpp-srcs-left := $(foreach mod,$(s390x-iconv-modules),$($(mod)-routines))
|
|
|
|
lib := iconvdata
|
Rename cppflags-iterator.mk to libof-iterator.mk, remove extra-modules.mk.
cppflags-iterator.mk no longer has anything to do with CPPFLAGS; all
it does is set libof-$(foo) for a list of files. extra-modules.mk
does the same thing, but with a different input variable, and doesn't
let the caller control the module. Therefore, this patch gives
cppflags-iterator.mk a better name, removes extra-modules.mk, and
updates all uses of both.
* extra-modules.mk: Delete file.
* cppflags-iterator.mk: Rename to ...
* libof-iterator.mk: ...this. Adjust comments.
* Makerules, extra-lib.mk, benchtests/Makefile, elf/Makefile
* elf/rtld-Rules, iconv/Makefile, locale/Makefile, malloc/Makefile
* nscd/Makefile, sunrpc/Makefile, sysdeps/s390/Makefile:
Use libof-iterator.mk instead of cppflags-iterator.mk or
extra-modules.mk.
* benchtests/strcoll-inputs/filelist#en_US.UTF-8: Remove
extra-modules.mk and cppflags-iterator.mk, add libof-iterator.mk.
2017-05-08 19:52:26 +00:00
|
|
|
include $(patsubst %,$(..)libof-iterator.mk,$(cpp-srcs-left))
|
S390: Use s390-64 specific ionv-modules on s390-32, too.
This patch reworks the existing s390 64bit specific iconv modules in order
to use them on s390 31bit, too.
Thus the parts for subdirectory iconvdata in sysdeps/s390/s390-64/Makefile
were moved to sysdeps/s390/Makefile so that they apply on 31bit, too.
All those modules are moved from sysdeps/s390/s390-64 directory to sysdeps/s390.
The iso-8859-1 to/from cp037 module was adjusted, to use brct (branch relative
on count) instruction on 31bit s390 instead of brctg, because the brctg is a
zarch instruction and is not available on a 31bit kernel.
The utf modules are using zarch instructions, thus the directive machinemode
zarch_nohighgprs was added to the inline assemblies to omit the high-gprs flag
in the shared libraries. Otherwise they can't be loaded on a 31bit kernel.
The ifunc resolvers were adjusted in order to call the etf3eh or vector variants
only if zarch instructions are available (64bit kernel in 31bit compat-mode).
Furthermore some variable types were changed. E.g. unsigned long long would be
a register pair on s390 31bit, but we want only one single register.
For variables of type size_t the register contents have to be enlarged from a
32bit to a 64bit value on 31bit, because the inline assemblies uses 64bit values
in such cases.
ChangeLog:
* sysdeps/s390/s390-64/Makefile (iconvdata-subdirectory):
Move to ...
* sysdeps/s390/Makefile: ... here.
* sysdeps/s390/s390-64/iso-8859-1_cp037_z900.c: Move to ...
* sysdeps/s390/iso-8859-1_cp037_z900.c: ... here.
(BRANCH_ON_COUNT): New define.
(TR_LOOP): Use BRANCH_ON_COUNT instead of brctg.
* sysdeps/s390/s390-64/utf16-utf32-z9.c: Move to ...
* sysdeps/s390/utf16-utf32-z9.c: ... here and adjust to
run on s390-32, too.
* sysdeps/s390/s390-64/utf8-utf16-z9.c: Move to ...
* sysdeps/s390/utf8-utf16-z9.c: ... here and adjust to
run on s390-32, too.
* sysdeps/s390/s390-64/utf8-utf32-z9.c: Move to ...
* sysdeps/s390/utf8-utf32-z9.c: ... here and adjust to
run on s390-32, too.
2016-05-25 15:18:05 +00:00
|
|
|
|
|
|
|
extra-objs += $(addsuffix .so, $(s390x-iconv-modules))
|
|
|
|
install-others += $(patsubst %, $(inst_gconvdir)/%.so, $(s390x-iconv-modules))
|
|
|
|
|
|
|
|
$(patsubst %, $(inst_gconvdir)/%.so, $(s390x-iconv-modules)) : \
|
|
|
|
$(inst_gconvdir)/%.so: $(objpfx)%.so $(+force)
|
|
|
|
$(do-install-program)
|
|
|
|
|
|
|
|
sysdeps-gconv-modules = ../sysdeps/s390/gconv-modules
|
|
|
|
endif
|
2018-08-10 07:07:43 +00:00
|
|
|
|
|
|
|
ifeq ($(subdir),elf)
|
|
|
|
ifeq ($(build-shared),yes)
|
|
|
|
tests += tst-dl-runtime-resolve-noaudit tst-dl-runtime-resolve-audit \
|
|
|
|
tst-dl-runtime-profile-noaudit
|
|
|
|
# FIXME: When both LD_PROFILE and LD_AUDIT are set, a segfault occurs.
|
|
|
|
#tests += tst-dl-runtime-profile-audit
|
|
|
|
modules-names += tst-dl-runtime-mod
|
|
|
|
$(objpfx)tst-dl-runtime-resolve-noaudit: $(objpfx)tst-dl-runtime-mod.so
|
|
|
|
$(objpfx)tst-dl-runtime-resolve-audit: $(objpfx)tst-dl-runtime-mod.so
|
|
|
|
$(objpfx)tst-dl-runtime-profile-noaudit: $(objpfx)tst-dl-runtime-mod.so
|
|
|
|
$(objpfx)tst-dl-runtime-profile-audit: $(objpfx)tst-dl-runtime-mod.so
|
|
|
|
$(objpfx)tst-dl-runtime-resolve-audit.out: $(objpfx)tst-auditmod1.so
|
|
|
|
$(objpfx)tst-dl-runtime-profile-audit.out: $(objpfx)tst-auditmod1.so
|
|
|
|
# The profiling output goes to $LD_PROFILE_OUTPUT/$LD_PROFILE.profile
|
|
|
|
env-profile = LD_PROFILE=$(objpfx)tst-dl-runtime-mod.so \
|
|
|
|
LD_PROFILE_OUTPUT=/
|
|
|
|
env-audit = LD_AUDIT=$(objpfx)tst-auditmod1.so
|
|
|
|
tst-dl-runtime-resolve-audit-ENV = $(env-audit)
|
|
|
|
tst-dl-runtime-profile-noaudit-ENV = $(env-profile)
|
|
|
|
tst-dl-runtime-profile-audit-ENV = $(env-profile) $(env-audit)
|
|
|
|
endif
|
|
|
|
endif
|
2018-12-18 12:57:04 +00:00
|
|
|
|
|
|
|
ifeq ($(subdir),string)
|
2018-12-18 12:57:05 +00:00
|
|
|
sysdep_routines += bzero memset memset-z900 \
|
2018-12-18 12:57:06 +00:00
|
|
|
memcmp memcmp-z900 \
|
2018-12-18 12:57:08 +00:00
|
|
|
mempcpy memcpy memcpy-z900 \
|
2018-12-18 12:57:09 +00:00
|
|
|
memmove memmove-c \
|
2018-12-18 12:57:09 +00:00
|
|
|
strstr strstr-vx strstr-c \
|
2018-12-18 12:57:10 +00:00
|
|
|
memmem memmem-vx memmem-c \
|
2018-12-18 12:57:10 +00:00
|
|
|
strlen strlen-vx strlen-c \
|
2018-12-18 12:57:10 +00:00
|
|
|
strnlen strnlen-vx strnlen-c \
|
2018-12-18 12:57:11 +00:00
|
|
|
strcpy strcpy-vx strcpy-z900 \
|
2018-12-18 12:57:11 +00:00
|
|
|
stpcpy stpcpy-vx stpcpy-c \
|
2018-12-18 12:57:11 +00:00
|
|
|
strncpy strncpy-vx strncpy-z900 \
|
2018-12-18 12:57:12 +00:00
|
|
|
stpncpy stpncpy-vx stpncpy-c \
|
2018-12-18 12:57:12 +00:00
|
|
|
strcat strcat-vx strcat-c \
|
2018-12-18 12:57:13 +00:00
|
|
|
strncat strncat-vx strncat-c \
|
|
|
|
strcmp strcmp-vx strcmp-z900
|
2018-12-18 12:57:04 +00:00
|
|
|
endif
|