From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS17314 8.43.84.0/22 X-Spam-Status: No, score=-3.6 required=3.0 tests=AWL,BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, PDS_RDNS_DYNAMIC_FP,RCVD_IN_DNSWL_MED,RDNS_DYNAMIC,SPF_HELO_PASS, SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from sourceware.org (ip-8-43-85-97.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id A1F921F8C6 for ; Mon, 26 Jul 2021 08:35:12 +0000 (UTC) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id A49A9387101D for ; Mon, 26 Jul 2021 08:35:11 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A49A9387101D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1627288511; bh=6nsL3blw5Y77Rq28mVkMSZEZSEN6bXUP1LZXlKfEIYs=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=u7pFl4xTlzZ4IHqdRSCrWi4XJY1lcLksjgKPEt8vRcfSYvmIYr8+Ucyq2EUXDpVeX an95cZTRDooVnlv+ux35dBE6YBvozm8AGPNkdBPiXaJAC75AgSk3pi6jPnEV6z8+Am bo6GkSOtW8ylgM+6HV33g15460GJMGAoTXAKYIcg= Received: from esa6.hc1455-7.c3s2.iphmx.com (esa6.hc1455-7.c3s2.iphmx.com [68.232.139.139]) by sourceware.org (Postfix) with ESMTPS id 44B57385AC0A for ; Mon, 26 Jul 2021 08:34:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 44B57385AC0A IronPort-SDR: Y9yXe27gyFAFbk7X9sqtsqe5KmAY+FDyHTGQawJNW18zI4C0ztrEqT19Am48rKp2V6K2h6v+I4 B+eTOVvxvGEngYb1GqSImcyeSXKaVIfkQPZwW3otyYxRlk5znlsf3zw8vVakllx1776CJZ/jZ3 fBNGLJgBUD2gJyJIxK5ULvXgQk/7d1drtwzMGrp7akOtS3o5DYQjSM64aIqNXQpyNZ91blG6sv 94ob4pOq2qUai7CzLulZ51BGUdxOWwaCKE09cJ4oZpCdE1SBqyFWXMiW9/mmnheFm+5f3Ar+u2 BJZ/9QLhWdcXe36Rd1jeKFeo X-IronPort-AV: E=McAfee;i="6200,9189,10056"; a="37926870" X-IronPort-AV: E=Sophos;i="5.84,270,1620658800"; d="scan'208";a="37926870" Received: from unknown (HELO oym-r4.gw.nic.fujitsu.com) ([210.162.30.92]) by esa6.hc1455-7.c3s2.iphmx.com with ESMTP; 26 Jul 2021 17:34:46 +0900 Received: from oym-m2.gw.nic.fujitsu.com (oym-nat-oym-m2.gw.nic.fujitsu.com [192.168.87.59]) by oym-r4.gw.nic.fujitsu.com (Postfix) with ESMTP id 1B0D4E0AE7 for ; Mon, 26 Jul 2021 17:34:45 +0900 (JST) Received: from m3050.s.css.fujitsu.com (msm.b.css.fujitsu.com [10.134.21.208]) by oym-m2.gw.nic.fujitsu.com (Postfix) with ESMTP id 36798CA716 for ; Mon, 26 Jul 2021 17:34:44 +0900 (JST) Received: from bionic.lxd (unknown [10.126.53.116]) by m3050.s.css.fujitsu.com (Postfix) with ESMTP id 1D56AB1; Mon, 26 Jul 2021 17:34:44 +0900 (JST) To: libc-alpha@sourceware.org Subject: [PATCH] config: Remove HAVE_BUILTIN_MEMSET macro Date: Mon, 26 Jul 2021 08:34:33 +0000 Message-Id: <20210726083433.385572-1-naohirot@fujitsu.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210713082214.307529-1-naohirot@fujitsu.com> References: <20210713082214.307529-1-naohirot@fujitsu.com> X-TM-AS-GCONF: 00 X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Naohiro Tamura via Libc-alpha Reply-To: Naohiro Tamura Errors-To: libc-alpha-bounces+e=80x24.org@sourceware.org Sender: "Libc-alpha" s patch removed HAVE_BUILTIN_MEMSET macro because GCC 6.2 that is minimum requirement to compile glibc already support __builtin_memset()[1]. Interestingly, removed code had a critical bug that is HAVE_BUILTIN_MEMSET macro never be defined, because yes/no assignment to libc_cv_gcc_builtin_memset was reversed in configure.ac as below: 1519 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | grep -F "memset" > /dev/null]); 1520 then 1521 libc_cv_gcc_builtin_memset=no # shold be yes 1522 else 1523 libc_cv_gcc_builtin_memset=yes # should be no 1524 fi 1525 rm -f conftest* ]) 1526 if test "$libc_cv_gcc_builtin_memset" = yes ; then 1527 AC_DEFINE(HAVE_BUILTIN_MEMSET) 1528 fi Therefor __builtin_memset() in elf/rtld.c was never be compiled. 534 # ifdef HAVE_BUILTIN_MEMSET 535 __builtin_memset (bootstrap_map.l_info, '\0', sizeof (bootstrap_map.l_info)); 536 # else [1] https://gcc.gnu.org/onlinedocs/gcc-6.2.0/gcc/Other-Builtins.html --- config.h.in | 3 --- configure | 31 ------------------------------- configure.ac | 19 ------------------- elf/rtld.c | 15 ++++----------- 4 files changed, 4 insertions(+), 64 deletions(-) diff --git a/config.h.in b/config.h.in index 8b45a3a61d77..4647632f2632 100644 --- a/config.h.in +++ b/config.h.in @@ -40,9 +40,6 @@ shared between GNU libc and GNU gettext projects. */ #define HAVE_BUILTIN_EXPECT 1 -/* Define if the compiler supports __builtin_memset. */ -#undef HAVE_BUILTIN_MEMSET - /* Define if compiler accepts -ftree-loop-distribute-patterns. */ #undef HAVE_CC_INHIBIT_LOOP_TO_LIBCALL diff --git a/configure b/configure index 9619c10991d0..6f85d28ea085 100755 --- a/configure +++ b/configure @@ -6261,37 +6261,6 @@ if test $libc_cv_have_section_quotes = yes; then fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_memset" >&5 -$as_echo_n "checking for __builtin_memset... " >&6; } -if ${libc_cv_gcc_builtin_memset+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat > conftest.c <<\EOF -void zero (void *x) -{ - __builtin_memset (x, 0, 1000); -} -EOF -if { ac_try='${CC-cc} -O3 -S conftest.c -o - | grep -F "memset" > /dev/null' - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 - (eval $ac_try) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; -then - libc_cv_gcc_builtin_memset=no -else - libc_cv_gcc_builtin_memset=yes -fi -rm -f conftest* -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_gcc_builtin_memset" >&5 -$as_echo "$libc_cv_gcc_builtin_memset" >&6; } -if test "$libc_cv_gcc_builtin_memset" = yes ; then - $as_echo "#define HAVE_BUILTIN_MEMSET 1" >>confdefs.h - -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for redirection of built-in functions" >&5 $as_echo_n "checking for redirection of built-in functions... " >&6; } if ${libc_cv_gcc_builtin_redirection+:} false; then : diff --git a/configure.ac b/configure.ac index 34ecbba54054..0c5ee6623c4c 100644 --- a/configure.ac +++ b/configure.ac @@ -1508,25 +1508,6 @@ if test $libc_cv_have_section_quotes = yes; then AC_DEFINE(HAVE_SECTION_QUOTES) fi -AC_CACHE_CHECK(for __builtin_memset, libc_cv_gcc_builtin_memset, [dnl -cat > conftest.c <<\EOF -void zero (void *x) -{ - __builtin_memset (x, 0, 1000); -} -EOF -dnl -if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | grep -F "memset" > /dev/null]); -then - libc_cv_gcc_builtin_memset=no -else - libc_cv_gcc_builtin_memset=yes -fi -rm -f conftest* ]) -if test "$libc_cv_gcc_builtin_memset" = yes ; then - AC_DEFINE(HAVE_BUILTIN_MEMSET) -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/elf/rtld.c b/elf/rtld.c index d733359eaf80..d0da99bd6d78 100644 --- a/elf/rtld.c +++ b/elf/rtld.c @@ -526,19 +526,12 @@ _dl_start (void *arg) /* Partly clean the `bootstrap_map' structure up. Don't use `memset' since it might not be built in or inlined and we cannot - make function calls at this point. Use '__builtin_memset' if we - know it is available. We do not have to clear the memory if we - do not have to use the temporary bootstrap_map. Global variables - are initialized to zero by default. */ + make function calls at this point. Use '__builtin_memset' instead. + We do not have to clear the memory if we do not have to use the + temporary bootstrap_map. Global variables are initialized to zero + by default. */ #ifndef DONT_USE_BOOTSTRAP_MAP -# ifdef HAVE_BUILTIN_MEMSET __builtin_memset (bootstrap_map.l_info, '\0', sizeof (bootstrap_map.l_info)); -# else - for (size_t cnt = 0; - cnt < sizeof (bootstrap_map.l_info) / sizeof (bootstrap_map.l_info[0]); - ++cnt) - bootstrap_map.l_info[cnt] = 0; -# endif #endif /* Figure out the run-time load address of the dynamic linker itself. */ -- 2.17.1