From: "H.J. Lu" <hjl.tools@gmail.com>
To: Andreas Schwab <schwab@suse.de>
Cc: GNU C Library <libc-alpha@sourceware.org>
Subject: Re: [PATCH] Make copy of <bits/std_abs.h> from GCC 7 [BZ #21573]
Date: Tue, 13 Jun 2017 18:13:00 -0000 [thread overview]
Message-ID: <CAMe9rOoytw3uO66KfSDGJkv6rXYz6Vq2P9deZviUndtUi3DQ1Q@mail.gmail.com> (raw)
In-Reply-To: <CAMe9rOp5aMTXh6t7CLXrBQtWvEzDG4thsC+yRHX1CGLa6uh8NA@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 901 bytes --]
On Tue, Jun 13, 2017 at 8:32 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Tue, Jun 13, 2017 at 4:54 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
>> On Tue, Jun 13, 2017 at 4:46 AM, Andreas Schwab <schwab@suse.de> wrote:
>>> On Jun 13 2017, "H.J. Lu" <hjl.tools@gmail.com> 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 <bits/std_abs.h>" |
>>>> /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.
--
H.J.
[-- Attachment #2: 0001-Make-copy-of-bits-std_abs.h-from-GCC-7-BZ-21573.patch --]
[-- Type: text/x-patch, Size: 4490 bytes --]
From a65ea28d1833d3502c5070472e43bda04410e6b5 Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Tue, 13 Jun 2017 09:28:14 -0700
Subject: [PATCH] Make copy of <bits/std_abs.h> from GCC 7 [BZ #21573]
<bits/std_abs.h> 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 <bits/std_abs.h> 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 <hongjiu.lu@intel.com>
+
+ [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 <zackw@panix.com>
* 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 <bits/std_abs.h> 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
next prev parent reply other threads:[~2017-06-13 18:13 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-13 11:38 H.J. Lu
2017-06-13 11:40 ` Andreas Schwab
2017-06-13 11:44 ` H.J. Lu
2017-06-13 11:46 ` Andreas Schwab
2017-06-13 11:54 ` H.J. Lu
2017-06-13 15:32 ` H.J. Lu
2017-06-13 18:13 ` H.J. Lu [this message]
2017-06-13 20:13 ` Florian Weimer
2017-06-13 20:21 ` H.J. Lu
2017-09-07 17:29 ` H.J. Lu
2017-09-11 15:53 ` H.J. Lu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAMe9rOoytw3uO66KfSDGJkv6rXYz6Vq2P9deZviUndtUi3DQ1Q@mail.gmail.com \
--to=hjl.tools@gmail.com \
--cc=libc-alpha@sourceware.org \
--cc=schwab@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).