]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - string/Makefile
Update copyright dates with scripts/update-copyrights.
[thirdparty/glibc.git] / string / Makefile
index 5d5b09e861dfc4cf3c5e87c720c42b0a3f52c3d3..bf4fb89b63b21a87245cc2bfc1bb0858f1236e0c 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-1999, 2000, 2001 Free Software Foundation, Inc.
+# Copyright (C) 1991-2019 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
 # 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, write to the Free
-# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-# 02111-1307 USA.
+# License along with the GNU C Library; if not, see
+# <http://www.gnu.org/licenses/>.
 
 #
 #      Sub-makefile for string portion of library.
 #
 subdir := string
 
-headers        := string.h strings.h memory.h endian.h bits/endian.h \
-          argz.h envz.h byteswap.h bits/byteswap.h bits/string.h \
-          bits/string2.h
+include ../Makeconfig
+
+headers                := string.h bits/string_fortified.h                     \
+                  strings.h bits/strings_fortified.h                   \
+                  byteswap.h bits/byteswap.h                           \
+                  endian.h bits/endian.h bits/uintn-identity.h         \
+                  memory.h argz.h envz.h
 
 routines       := strcat strchr strcmp strcoll strcpy strcspn          \
                   strverscmp strdup strndup                            \
@@ -36,38 +39,74 @@ routines    := strcat strchr strcmp strcoll strcpy strcspn          \
                   memccpy memcpy wordcopy strsep strcasestr            \
                   swab strfry memfrob memmem rawmemchr strchrnul       \
                   $(addprefix argz-,append count create ctsep next     \
-                                    delete extract insert stringify    \
+                                    delete extract insert stringify    \
                                     addsep replace)                    \
                   envz basename                                        \
-                  strcoll_l strxfrm_l string-inlines memrchr
-
-# Gcc internally generates calls to unbounded memcpy and memset
-# for -fbounded-pointer compiles.  Glibc uses memchr for explicit checks.
-o-objects.ob   := memcpy.o memset.o memchr.o
+                  strcoll_l strxfrm_l string-inlines memrchr           \
+                  xpg-strerror strerror_l explicit_bzero
 
+strop-tests    := memchr memcmp memcpy memmove mempcpy memset memccpy  \
+                  stpcpy stpncpy strcat strchr strcmp strcpy strcspn   \
+                  strlen strncmp strncpy strpbrk strrchr strspn memmem \
+                  strstr strcasestr strnlen strcasecmp strncasecmp     \
+                  strncat rawmemchr strchrnul bcopy bzero memrchr      \
+                  explicit_bzero
 tests          := tester inl-tester noinl-tester testcopy test-ffs     \
                   tst-strlen stratcliff tst-svc tst-inlcall            \
                   bug-strncat1 bug-strspn1 bug-strpbrk1 tst-bswap      \
-                  tst-strtok tst-strxfrm bug-strcoll1
-distribute     := memcopy.h pagecopy.h tst-svc.expect
+                  tst-strtok tst-strxfrm bug-strcoll1 tst-strfry       \
+                  bug-strtok1 $(addprefix test-,$(strop-tests))        \
+                  bug-envz1 tst-strxfrm2 tst-endian tst-svc2           \
+                  tst-strtok_r bug-strcoll2 tst-cmp tst-xbzero-opt     \
+                  test-endian-types test-endian-file-scope             \
+                  test-endian-sign-conversion
 
+# This test allocates a lot of memory and can run for a long time.
+xtests = tst-strcoll-overflow
+
+ifeq ($(run-built-tests),yes)
+tests-special += $(objpfx)tst-svc-cmp.out
+endif
 
 include ../Rules
 
-tester-ENV = LANGUAGE=C
-inl-tester-ENV = LANGUAGE=C
-noinl-tester-ENV = LANGUAGE=C
-tst-strxfrm-ENV = LOCPATH=$(common-objpfx)localedata
-bug-strcoll1-ENV = LOCPATH=$(common-objpfx)localedata
-CFLAGS-noinl-tester.c = -fno-builtin
-CFLAGS-tst-strlen.c = -fno-builtin
-CFLAGS-stratcliff.c = -fno-builtin
-CFLAGS-test-ffs.c = -fno-builtin
-
-ifeq ($(cross-compiling),no)
-tests: $(objpfx)tst-svc.out
-$(objpfx)tst-svc.out: tst-svc.input $(objpfx)tst-svc
-       GCONV_PATH=$(common-objpfx)iconvdata LC_ALL=C \
-         $(built-program-cmd) < $(word 1,$^) > $@
-       -cmp tst-svc.expect $(objpfx)tst-svc.out
+CFLAGS-inl-tester.c += -fno-builtin
+CFLAGS-noinl-tester.c += -fno-builtin
+CFLAGS-tst-strlen.c += -fno-builtin
+CFLAGS-stratcliff.c += -fno-builtin
+CFLAGS-test-ffs.c += -fno-builtin
+CFLAGS-tst-inlcall.c += -fno-builtin
+CFLAGS-tst-xbzero-opt.c += -O3
+CFLAGS-test-endian-sign-conversion.c += -Werror -Wsign-conversion
+# BZ 21006: Resolve all functions but at least explicit_bzero at startup.
+# Otherwise the test fails on s390x as the memcpy in prepare_test_buffer is
+# done by loading r4 / r5 with the test_pattern and using store multiple
+# instruction to store r4 / r5 to buf.  If explicit_bzero would be resolved in
+# setup_explicit_clear, r4 / r5 would be stored to stack by _dl_runtime_resolve
+# and the call to memmem in count_test_patterns will find a hit of the
+# test_pattern on the stack.
+LDFLAGS-tst-xbzero-opt = -z now
+
+# Called during TLS initialization.
+CFLAGS-memcpy.c += $(no-stack-protector)
+CFLAGS-wordcopy.c += $(no-stack-protector)
+
+ifeq ($(run-built-tests),yes)
+$(objpfx)tst-svc-cmp.out: tst-svc.expect $(objpfx)tst-svc.out
+       cmp $^ > $@; \
+       $(evaluate-test)
+
+LOCALES := de_DE.UTF-8 en_US.ISO-8859-1 en_US.UTF-8 \
+           tr_TR.ISO-8859-9 tr_TR.UTF-8 cs_CZ.UTF-8 \
+          da_DK.ISO-8859-1 en_GB.UTF-8
+include ../gen-locales.mk
+
+$(objpfx)test-strcasecmp.out: $(gen-locales)
+$(objpfx)test-strncasecmp.out: $(gen-locales)
+$(objpfx)tst-strxfrm.out: $(gen-locales)
+$(objpfx)tst-strxfrm2.out: $(gen-locales)
+# bug-strcoll2 needs cs_CZ.UTF-8 and da_DK.ISO-8859-1.
+$(objpfx)bug-strcoll2.out: $(gen-locales)
+$(objpfx)tst-strcoll-overflow.out: $(gen-locales)
+
 endif