mirror of
git://sourceware.org/git/glibc.git
synced 2025-01-06 12:00:24 +08:00
b935335155
The ifunc handling for strncat is adjusted in order to omit ifunc variants if those will never be used as the minimum architecture level already supports newer CPUs by default. Glibc internal calls will then also use the "newer" ifunc variant. ChangeLog: * sysdeps/s390/multiarch/Makefile (sysdep_routines): Remove strncat variants. * sysdeps/s390/Makefile (sysdep_routines): Add strncat variants. * sysdeps/s390/multiarch/ifunc-impl-list.c (__libc_ifunc_impl_list): Refactor ifunc handling for strncat. * sysdeps/s390/multiarch/strncat-c.c: Move to ... * sysdeps/s390/strncat-c.c: ... here and adjust ifunc handling. * sysdeps/s390/multiarch/strncat-vx.S: Move to ... * sysdeps/s390/strncat-vx.S: ... here and adjust ifunc handling. * sysdeps/s390/multiarch/strncat.c: Move to ... * sysdeps/s390/strncat.c: ... here and adjust ifunc handling. * sysdeps/s390/ifunc-strncat.h: New file.
72 lines
2.5 KiB
Makefile
72 lines
2.5 KiB
Makefile
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
|
|
include $(patsubst %,$(..)libof-iterator.mk,$(cpp-srcs-left))
|
|
|
|
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
|
|
|
|
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
|
|
|
|
ifeq ($(subdir),string)
|
|
sysdep_routines += bzero memset memset-z900 \
|
|
memcmp memcmp-z900 \
|
|
mempcpy memcpy memcpy-z900 \
|
|
memmove memmove-c \
|
|
strstr strstr-vx strstr-c \
|
|
memmem memmem-vx memmem-c \
|
|
strlen strlen-vx strlen-c \
|
|
strnlen strnlen-vx strnlen-c \
|
|
strcpy strcpy-vx strcpy-z900 \
|
|
stpcpy stpcpy-vx stpcpy-c \
|
|
strncpy strncpy-vx strncpy-z900 \
|
|
stpncpy stpncpy-vx stpncpy-c \
|
|
strcat strcat-vx strcat-c \
|
|
strncat strncat-vx strncat-c
|
|
endif
|