From: Julian Seward Date: Fri, 14 Dec 2012 10:30:57 +0000 (+0000) Subject: Make memcheck/tests/stpncpy be dependent on the presence/absence of X-Git-Tag: svn/VALGRIND_3_9_0~492 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=87d6d6fd1ca5250a2812bad023e2b03e6fc8d73c;p=thirdparty%2Fvalgrind.git Make memcheck/tests/stpncpy be dependent on the presence/absence of stpncpy in libc, as determined by a configure test. n-i-bz. (Mark Wielaard, mjw@redhat.com) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13180 --- diff --git a/configure.in b/configure.in index 1c383ffdf8..da0f5d4086 100644 --- a/configure.in +++ b/configure.in @@ -1016,6 +1016,29 @@ AC_MSG_RESULT([no]) AM_CONDITIONAL([HAVE_AT_FDCWD], [test x$ac_have_at_fdcwd = xyes]) +# Check for stpncpy function definition in string.h +# This explicitly checks with _GNU_SOURCE defined since that is also +# used in the test case (some systems might define it without anyway +# since stpncpy is part of The Open Group Base Specifications Issue 7 +# IEEE Std 1003.1-2008. +AC_MSG_CHECKING([for stpncpy]) +AC_LINK_IFELSE([AC_LANG_PROGRAM([[ +#define _GNU_SOURCE +#include +]], [[ + char *d; + char *s; + size_t n = 0; + char *r = stpncpy(d, s, n); +]])], [ +ac_have_gnu_stpncpy=yes +AC_MSG_RESULT([yes]) +], [ +ac_have_gnu_stpncpy=no +AC_MSG_RESULT([no]) +]) + +AM_CONDITIONAL([HAVE_GNU_STPNCPY], [test x$ac_have_gnu_stpncpy = xyes]) # Check for CLOCK_MONOTONIC diff --git a/memcheck/tests/Makefile.am b/memcheck/tests/Makefile.am index 018ecc0156..2c75284308 100644 --- a/memcheck/tests/Makefile.am +++ b/memcheck/tests/Makefile.am @@ -288,7 +288,6 @@ check_PROGRAMS = \ sbfragment \ sh-mem sh-mem-random \ sigaltstack signal2 sigprocmask static_malloc sigkill \ - stpncpy \ strchr \ str_tester \ supp_unknown supp1 supp2 suppfree \ @@ -307,6 +306,10 @@ if DWARF4 check_PROGRAMS += dw4 endif +if HAVE_GNU_STPNCPY +check_PROGRAMS += stpncpy +endif + AM_CFLAGS += $(AM_FLAG_M3264_PRI) AM_CXXFLAGS += $(AM_FLAG_M3264_PRI) diff --git a/memcheck/tests/stpncpy.c b/memcheck/tests/stpncpy.c index 4c8341932d..fe348f847b 100644 --- a/memcheck/tests/stpncpy.c +++ b/memcheck/tests/stpncpy.c @@ -1,5 +1,7 @@ #include #include + +#define _GNU_SOURCE #include int main(int argc, char **argv) diff --git a/memcheck/tests/stpncpy.vgtest b/memcheck/tests/stpncpy.vgtest index fbfcaa7dc4..a54595ab47 100644 --- a/memcheck/tests/stpncpy.vgtest +++ b/memcheck/tests/stpncpy.vgtest @@ -1,2 +1,3 @@ prog: stpncpy +prereq: test -e ./stpncpy vgopts: -q