From patchwork Fri Feb 26 19:11:27 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steve Ellcey X-Patchwork-Id: 11120 Received: (qmail 4751 invoked by alias); 26 Feb 2016 19:11:34 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 4739 invoked by uid 89); 26 Feb 2016 19:11:34 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.8 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_NONE, RP_MATCHES_RCVD, SPF_PASS autolearn=ham version=3.3.2 spammy=understands, 459 X-HELO: mailapp01.imgtec.com Message-ID: <1456513887.29579.238.camel@ubuntu-sellcey> Subject: Re: [Patch] Fix glibc testing with GCC 4.9 compiler From: Steve Ellcey Reply-To: To: Joseph Myers , Florian Weimer CC: Date: Fri, 26 Feb 2016 11:11:27 -0800 In-Reply-To: References: <68cad408-de62-4515-98ee-987574823403@BAMAIL02.ba.imgtec.org> MIME-Version: 1.0 Here is an updated and tested patch that checks to see if the compiler understands the -Wmemset-transposed-args option or not. Tested using the 4.9.2 debian compiler as well as a 4.8 compiler and a ToT compiler. OK to checkin? Steve Ellcey sellcey@imgtec.com 2016-02-26 Steve Ellcey * config.h.in (HAVE_MEMSET_WARNING): Add undef. * configure.ac: Check if compiler understands -Wmemset-transposed-args. * configure: Regenerate. * string/tester.c (test_memset): Check HAVE_MEMSET_WARNING instead of GCC version. diff --git a/config.h.in b/config.h.in index 0147ba3..ec672e6 100644 --- a/config.h.in +++ b/config.h.in @@ -45,6 +45,9 @@ /* Define if the compiler supports __builtin_memset. */ #undef HAVE_BUILTIN_MEMSET +/* Define if the compiler accepts -Wmemset-transposed-args. */ +#undef HAVE_MEMSET_WARNING + /* Define if compiler accepts -ftree-loop-distribute-patterns. */ #undef HAVE_CC_INHIBIT_LOOP_TO_LIBCALL diff --git a/configure.ac b/configure.ac index 3c766b7..21fa353 100644 --- a/configure.ac +++ b/configure.ac @@ -1449,6 +1449,13 @@ if test "$libc_cv_gcc_builtin_memset" = yes ; then AC_DEFINE(HAVE_BUILTIN_MEMSET) fi +AC_CACHE_CHECK(for -Wmemset-transposed-args, libc_cv_memset_warning, [dnl +LIBC_TRY_CC_OPTION([-Wmemset-transposed-args], [libc_cv_memset_warning=yes], [libc_cv_memset_warning=no]) +]) +if test "$libc_cv_memset_warning" = yes ; then + AC_DEFINE(HAVE_MEMSET_WARNING) +fi + AC_CACHE_CHECK(for redirection of built-in functions, libc_cv_gcc_builtin_redirection, [dnl cat > conftest.c <<\EOF extern char *strstr (const char *, const char *) __asm ("my_strstr"); diff --git a/string/tester.c b/string/tester.c index 7c36591..1659693 100644 --- a/string/tester.c +++ b/string/tester.c @@ -1305,7 +1305,7 @@ test_memset (void) equal(one, "axxxefgh", 2); /* Basic test. */ DIAG_PUSH_NEEDS_COMMENT; -#if __GNUC_PREREQ (5, 0) +#ifdef HAVE_MEMSET_WARNING /* GCC 5.0 warns about a zero-length memset because the arguments to memset may be in the wrong order. But we really want to test this. */ DIAG_IGNORE_NEEDS_COMMENT (5.0, "-Wmemset-transposed-args")