From patchwork Tue Jun 13 18:13:04 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "H.J. Lu" X-Patchwork-Id: 20993 Received: (qmail 120507 invoked by alias); 13 Jun 2017 18:13:11 -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 120487 invoked by uid 89); 13 Jun 2017 18:13:10 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.0 required=5.0 tests=AWL, BAYES_00, FREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.2 spammy=T X-HELO: mail-qt0-f174.google.com X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=p1GNXJEOTV4R9tIyXDX9C8diydny0IBWbuEoW8qZ3Pw=; b=tpfvVPeNSA9DBBMZwKguTye2S8Av+AVTZ51sJ3e+z2jteH4ZJ91EIHOSiJrUYzXzPE 7xo8nkvKQdEVPmmeJz8Bg3GoOQ2XTIG8NlBP72nd9NfTij5/9zSCJHnrzNxwjkcWqV0r EQW04jfZouozPqkyNA+T7iI9k1wNSSLJGEzNCdHA5J3ZFBAZTt/J1HsIyCAOdhgeWkOa pI4yRF+rOAJSgnRnkGWf55tSIlJF2A2Ag83dTJI7IMuPJ4u7kwGdeINc248yNLzgojKc n37qIKblxZe2+BRfzEYHTTECT0upd/nBdqq2HpdQ0HsqVGmIDx/WAM5aHhIsvXVIAYIP /P1w== X-Gm-Message-State: AKS2vOxUFxZab1p50oz6HPOTF3ZQhxdksNwoo6fFVoegMn+hnx0VNG+G B1jyWZkqPmrvwkgKp3FIIGMYUi+lN0gL X-Received: by 10.237.44.197 with SMTP id g63mr1545235qtd.241.1497377585349; Tue, 13 Jun 2017 11:13:05 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: References: <20170613113813.GA7656@gmail.com> From: "H.J. Lu" Date: Tue, 13 Jun 2017 11:13:04 -0700 Message-ID: Subject: Re: [PATCH] Make copy of from GCC 7 [BZ #21573] To: Andreas Schwab Cc: GNU C Library On Tue, Jun 13, 2017 at 8:32 AM, H.J. Lu wrote: > On Tue, Jun 13, 2017 at 4:54 AM, H.J. Lu wrote: >> On Tue, Jun 13, 2017 at 4:46 AM, Andreas Schwab wrote: >>> On Jun 13 2017, "H.J. Lu" wrote: >>> >>>> The first / in "/$1:/{s/:\$//;p}" is a command: >>> >>> It's not a command, it's an address. >>> >>>> [hjl@gnu-tools-1 glibc-test]$ echo "#include " | >>>> /usr/gcc-7.1.1-x32/bin/c++ -M -MP -x c++ - | sed -n >>>> ",/bits/std_abs.h:,{s/:\$//;p}" >>>> sed: -e expression #1, char 1: unknown command: `,' >>>> >>>> What options do I have? >>> >>> \,$1, >> >> Here is the updated patch. OK for master? >> >> Thanks. > > I am checking it in. > A new target for $(common-objpfx)bits/std_abs.h is needed. Tested and verified with GCC5, GCC 6 and GCC 7 on x86-64. This is what I am checking in. From a65ea28d1833d3502c5070472e43bda04410e6b5 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Tue, 13 Jun 2017 09:28:14 -0700 Subject: [PATCH] Make copy of from GCC 7 [BZ #21573] from GCC 7 will include /usr/include/stdlib.h from "#include_next" (instead of stdlib/stdlib.h in the glibc source directory), and this turns up as a make dependency. Also make a copy of to prevent it from including /usr/include/stdlib.h. [BZ #21573] * Makerules [$(c++-bits-std_abs-h) != ""] (before-compile): Add $(common-objpfx)bits/std_abs.h. [$(c++-bits-std_abs-h) != ""] ($(common-objpfx)bits/std_abs.h): New target. * config.make.in (c++-bits-std_abs-h): New. * configure.ac (find_cxx_header): Use "\,$1," with sed. (CXX_BITS_STD_ABS_H): New. (AC_SUBST(CXX_BITS_STD_ABS_H)): Likewise. * configure: Regenerated. --- ChangeLog | 13 +++++++++++++ Makerules | 8 ++++++++ config.make.in | 1 + configure | 5 ++++- configure.ac | 4 +++- 5 files changed, 29 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index a6978e6..52ffaf8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2017-06-13 H.J. Lu + + [BZ #21573] + * Makerules [$(c++-bits-std_abs-h) != ""] (before-compile): Add + $(common-objpfx)bits/std_abs.h. + [$(c++-bits-std_abs-h) != ""] ($(common-objpfx)bits/std_abs.h): + New target. + * config.make.in (c++-bits-std_abs-h): New. + * configure.ac (find_cxx_header): Use "\,$1," with sed. + (CXX_BITS_STD_ABS_H): New. + (AC_SUBST(CXX_BITS_STD_ABS_H)): Likewise. + * configure: Regenerated. + 2017-06-13 Zack Weinberg * posix/bits/cpu-set.h: Correct indentation of preprocessor diff --git a/Makerules b/Makerules index 7656c49..f91a4c5 100644 --- a/Makerules +++ b/Makerules @@ -134,6 +134,14 @@ $(common-objpfx)cstdlib: $(c++-cstdlib-header) $(common-objpfx)cmath: $(c++-cmath-header) $(INSTALL_DATA) $< $@T $(move-if-change) $@T $@ +ifneq (,$(c++-bits-std_abs-h)) +# Also make a copy of from GCC 7 to prevent it from +# including /usr/include/stdlib.h. +before-compile := $(common-objpfx)bits/std_abs.h $(before-compile) +$(common-objpfx)bits/std_abs.h: $(c++-bits-std_abs-h) + $(INSTALL_DATA) $< $@T + $(move-if-change) $@T $@ +endif endif before-compile := $(common-objpfx)libc-abis.h $(before-compile) diff --git a/config.make.in b/config.make.in index d08a462..dadabf9 100644 --- a/config.make.in +++ b/config.make.in @@ -47,6 +47,7 @@ sysincludes = @SYSINCLUDES@ c++-sysincludes = @CXX_SYSINCLUDES@ c++-cstdlib-header = @CXX_CSTDLIB_HEADER@ c++-cmath-header = @CXX_CMATH_HEADER@ +c++-bits-std_abs-h = @CXX_BITS_STD_ABS_H@ all-warnings = @all_warnings@ enable-werror = @enable_werror@ diff --git a/configure b/configure index 422482f..ceb5394 100755 --- a/configure +++ b/configure @@ -634,6 +634,7 @@ BISON INSTALL_INFO PERL BASH_SHELL +CXX_BITS_STD_ABS_H CXX_CMATH_HEADER CXX_CSTDLIB_HEADER CXX_SYSINCLUDES @@ -5336,14 +5337,16 @@ fi # copy of those headers in Makerules. if test -n "$CXX"; then find_cxx_header () { - echo "#include <$1>" | $CXX -M -MP -x c++ - | sed -n "/$1:/{s/:\$//;p}" + echo "#include <$1>" | $CXX -M -MP -x c++ - | sed -n "\,$1:,{s/:\$//;p}" } CXX_CSTDLIB_HEADER="$(find_cxx_header cstdlib)" CXX_CMATH_HEADER="$(find_cxx_header cmath)" + CXX_BITS_STD_ABS_H="$(find_cxx_header bits/std_abs.h)" fi + # Test if LD_LIBRARY_PATH contains the notation for the current directory # since this would lead to problems installing/building glibc. # LD_LIBRARY_PATH contains the current directory if one of the following diff --git a/configure.ac b/configure.ac index 7f43042..d74bd44 100644 --- a/configure.ac +++ b/configure.ac @@ -1187,13 +1187,15 @@ AC_SUBST(CXX_SYSINCLUDES) # copy of those headers in Makerules. if test -n "$CXX"; then find_cxx_header () { - echo "#include <$1>" | $CXX -M -MP -x c++ - | sed -n "/$1:/{s/:\$//;p}" + echo "#include <$1>" | $CXX -M -MP -x c++ - | sed -n "\,$1:,{s/:\$//;p}" } CXX_CSTDLIB_HEADER="$(find_cxx_header cstdlib)" CXX_CMATH_HEADER="$(find_cxx_header cmath)" + CXX_BITS_STD_ABS_H="$(find_cxx_header bits/std_abs.h)" fi AC_SUBST(CXX_CSTDLIB_HEADER) AC_SUBST(CXX_CMATH_HEADER) +AC_SUBST(CXX_BITS_STD_ABS_H) # Test if LD_LIBRARY_PATH contains the notation for the current directory # since this would lead to problems installing/building glibc. -- 2.9.4