]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Cleanup of str* and mem* functions
authorPaul Floyd <pjfloyd@wanadoo.fr>
Wed, 1 Jun 2022 20:09:50 +0000 (22:09 +0200)
committerPaul Floyd <pjfloyd@wanadoo.fr>
Wed, 1 Jun 2022 20:09:50 +0000 (22:09 +0200)
Add function checks to configure.ac
Use the configure HAVE_ macro rather than OS-dependent tests.
I suspect that a lot of the tests hve been obsolete for many
years. Add wrappers to FreeBSD.
:w

configure.ac
dhat/tests/copy.c
memcheck/tests/str_tester.c
shared/vg_replace_strmem.c

index eda617fc5831cb2aead71cea8e12ffcc9469946a..369daa173a1960e2f2ef8afa4823fce84f5ea74a 100755 (executable)
@@ -4790,6 +4790,11 @@ AC_CHECK_FUNCS([     \
         swapcontext  \
         syscall      \
         utimensat    \
+        mempcpy      \
+        stpncpy      \
+        strchrnul    \
+        memrchr      \
+        strndup      \
         ])
 
 # AC_CHECK_LIB adds any library found to the variable LIBS, and links these
index ccaf8ba901f36d99368f894aea7fdb5a75486d92..18479d782b39090434dceed82844afe720402c3d 100644 (file)
@@ -43,10 +43,10 @@ void f(char* a, char* b, wchar_t* wa, wchar_t* wb) {
    memcpy (a, b, 1000); // Redirects to memmove
    memcpy (a, b, 1000); // Redirects to memmove
    memmove(a, b, 1000);
-#if defined(VGO_solaris) || defined(VGO_darwin) || (defined(VGO_freebsd) && defined(__GNUC__))
-   memcpy(a, b, 1000);
-#else
+#if defined(HAVE_MEMPCPY)
    mempcpy(a, b, 1000);
+#else
+   memcpy(a, b, 1000);
 #endif
    bcopy  (a, b, 1000); // Redirects to memmove
    strcpy (a, b);
index 01354eb13275f3e0ab44d6ab041502dbd9cd1751..1201bbfc225b27d3364d3e8c65f7f3589ca91cab 100644 (file)
@@ -33,6 +33,7 @@
 #include <string.h>
 #include <strings.h>
 #include <fcntl.h>
+#include "../../config.h"
 
 #ifndef HAVE_GNU_LD
 #define _sys_nerr      sys_nerr
@@ -264,8 +265,7 @@ test_stpcpy (void)
   SIMPLE_COPY(stpcpy, 16, "6666666666666666", 59);
 }
 
-// DDD: better done by testing for the function.
-#if !defined(__APPLE__) && !defined(__FreeBSD__)
+#if defined(HAVE_STPNCPY)
 static void
 test_stpncpy (void)
 {
@@ -466,8 +466,7 @@ test_strchr (void)
    }
 }
 
-// DDD: better done by testing for the function.
-#if !defined(__APPLE__) && !defined(__FreeBSD__)
+#if defined(HAVE_STRCHRNUL)
 static void
 test_strchrnul (void)
 {
@@ -578,8 +577,7 @@ test_strrchr (void)
    }
 }
 
-// DDD: better done by testing for the function.
-#if !defined(__APPLE__) && !defined(__sun) && !defined(__FreeBSD__)
+#if defined(HAVE_MEMRCHR)
 static void
 test_memrchr (void)
 {
@@ -1071,7 +1069,7 @@ test_memcpy (void)
     }
 }
 
-#if !defined(__APPLE__) && !defined(__sun) && !defined(__FreeBSD__)
+#if defined(HAVE_MEMPCPY)
 static void
 test_mempcpy (void)
 {
@@ -1287,7 +1285,7 @@ test_bzero (void)
   equal(one, "abcdef", 4);             /* Zero-length copy. */
 }
 
-#if !defined(__APPLE__) && !defined(__FreeBSD__)
+#if defined(HAVE_STRNDUP)
 static void
 test_strndup (void)
 {
@@ -1422,7 +1420,7 @@ main (void)
   /* A closely related function is stpcpy.  */
   test_stpcpy ();
 
-#if !defined(__APPLE__) && !defined(__FreeBSD__)
+#if defined(HAVE_STPNCPY)
   /* stpncpy.  */
   test_stpncpy ();
 #endif
@@ -1445,7 +1443,7 @@ main (void)
   /* strchr.  */
   test_strchr ();
 
-# if !defined(__APPLE__) && !defined(__FreeBSD__)
+# if defined(HAVE_STRCHRNUL)
   /* strchrnul.  */
   test_strchrnul ();
 # endif
@@ -1461,7 +1459,7 @@ main (void)
   /* strrchr.  */
   test_strrchr ();
 
-# if !defined(__APPLE__) && !defined(__sun) && !defined(__FreeBSD__)
+# if defined(HAVE_MEMRCHR)
   /* memrchr.  */
   test_memrchr ();
 # endif
@@ -1502,7 +1500,7 @@ main (void)
   /* memmove - must work on overlap.  */
   test_memmove ();
 
-# if !defined(__APPLE__) && !defined(__sun) && !defined(__FreeBSD__)
+# if defined(HAVE_MEMPCPY)
   /* mempcpy */
   test_mempcpy ();
 # endif
@@ -1522,7 +1520,7 @@ main (void)
   /* bcmp - somewhat like memcmp.  */
   test_bcmp ();
 
-#if !defined(__APPLE__) && !defined(__FreeBSD__)
+#if defined(HAVE_STRNDUP)
   /* strndup.  */
   test_strndup ();
 #endif
index 5396e83be0ffd683e97fe1775fe511d962eed893..aab1413917d64f43689ec3d32ce0c8f22390517a 100644 (file)
@@ -461,6 +461,10 @@ static inline void my_exit ( int x )
  STRNLEN(VG_Z_LIBC_SONAME, strnlen)
  STRNLEN(VG_Z_LIBC_SONAME, __GI_strnlen)
 
+#elif defined(VGO_freebsd)
+
+ STRNLEN(VG_Z_LIBC_SONAME, srtnlen)
+
 #elif defined(VGO_darwin)
 # if DARWIN_VERS == DARWIN_10_9
   STRNLEN(libsystemZucZddylib, strnlen)
@@ -853,6 +857,9 @@ static inline void my_exit ( int x )
  STRCASECMP_L(VG_Z_LIBC_SONAME, __GI_strcasecmp_l)
  STRCASECMP_L(VG_Z_LIBC_SONAME, __GI___strcasecmp_l)
 
+#elif defined(VGO_freebsd)
+ STRCASECMP_L(VG_Z_LIBC_SONAME, strcasecmp_l)
+
 #elif defined(VGO_darwin)
  //STRCASECMP_L(VG_Z_LIBC_SONAME, strcasecmp_l)
 
@@ -891,6 +898,9 @@ static inline void my_exit ( int x )
  STRNCASECMP_L(VG_Z_LIBC_SONAME, __GI_strncasecmp_l)
  STRNCASECMP_L(VG_Z_LIBC_SONAME, __GI___strncasecmp_l)
 
+#elif defined(VGO_freebsd)
+ STRNCASECMP_L(VG_Z_LIBC_SONAME, strncasecmp_l)
+
 #elif defined(VGO_darwin)
  //STRNCASECMP_L(VG_Z_LIBC_SONAME, strncasecmp_l)
  //STRNCASECMP_L(VG_Z_DYLD,        strncasecmp_l)
@@ -972,6 +982,9 @@ static inline void my_exit ( int x )
  MEMCHR(VG_Z_LIBC_SONAME, memchr)
  MEMCHR(VG_Z_LIBC_SONAME, __GI_memchr)
 
+#elif defined(VGO_freebsd)
+ MEMCHR(VG_Z_LIBC_SONAME, memchr)
+
 #elif defined(VGO_darwin)
 # if DARWIN_VERS == DARWIN_10_9
   MEMCHR(VG_Z_DYLD,                   memchr)
@@ -1673,6 +1686,8 @@ static inline void my_exit ( int x )
  GLIBC25_MEMPCPY(VG_Z_LD_LINUX_SO_3, mempcpy) /* ld-linux.so.3 */
  GLIBC25_MEMPCPY(VG_Z_LD_LINUX_X86_64_SO_2, mempcpy) /* ld-linux-x86-64.so.2 */
 
+#elif defined(VGO_freebsd)
+ GLIBC25_MEMPCPY(VG_Z_LIBC_SONAME, mempcpy)
 #elif defined(VGO_darwin)
  //GLIBC25_MEMPCPY(VG_Z_LIBC_SONAME, mempcpy)