* [PATCH] Make copy of <bits/std_abs.h> from GCC 7 [BZ #21573] @ 2017-06-13 11:38 H.J. Lu 2017-06-13 11:40 ` Andreas Schwab 0 siblings, 1 reply; 11+ messages in thread From: H.J. Lu @ 2017-06-13 11:38 UTC (permalink / raw) To: GNU C Library <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. OK for master? H.J. --- [BZ #21573] * configure.ac (find_cxx_header): Add a second argument to support <bits/std_abs.h>. (CXX_CSTDLIB_HEADER): Updated. Also make a copy of <bits/std_abs.h>. (CXX_CMATH_HEADER): Updated. * configure: Regenerated. --- configure | 9 ++++++--- configure.ac | 9 ++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/configure b/configure index 422482f..888224e 100755 --- a/configure +++ b/configure @@ -5336,10 +5336,13 @@ 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 "/$2:/{s/:\$//;p}" } - CXX_CSTDLIB_HEADER="$(find_cxx_header cstdlib)" - CXX_CMATH_HEADER="$(find_cxx_header cmath)" + CXX_CSTDLIB_HEADER="$(find_cxx_header cstdlib cstdlib)" + # Also make a copy of <bits/std_abs.h> from GCC 7 to prevent it from + # including /usr/include/stdlib.h. + CXX_CSTDLIB_HEADER="$CXX_CSTDLIB_HEADER $(find_cxx_header bits/std_abs.h bits\\\/std_abs.h)" + CXX_CMATH_HEADER="$(find_cxx_header cmath cmath)" fi diff --git a/configure.ac b/configure.ac index 7f43042..00cf227 100644 --- a/configure.ac +++ b/configure.ac @@ -1187,10 +1187,13 @@ 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 "/$2:/{s/:\$//;p}" } - CXX_CSTDLIB_HEADER="$(find_cxx_header cstdlib)" - CXX_CMATH_HEADER="$(find_cxx_header cmath)" + CXX_CSTDLIB_HEADER="$(find_cxx_header cstdlib cstdlib)" + # Also make a copy of <bits/std_abs.h> from GCC 7 to prevent it from + # including /usr/include/stdlib.h. + CXX_CSTDLIB_HEADER="$CXX_CSTDLIB_HEADER $(find_cxx_header bits/std_abs.h bits\\\/std_abs.h)" + CXX_CMATH_HEADER="$(find_cxx_header cmath cmath)" fi AC_SUBST(CXX_CSTDLIB_HEADER) AC_SUBST(CXX_CMATH_HEADER) -- 2.9.4 ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] Make copy of <bits/std_abs.h> from GCC 7 [BZ #21573] 2017-06-13 11:38 [PATCH] Make copy of <bits/std_abs.h> from GCC 7 [BZ #21573] H.J. Lu @ 2017-06-13 11:40 ` Andreas Schwab 2017-06-13 11:44 ` H.J. Lu 0 siblings, 1 reply; 11+ messages in thread From: Andreas Schwab @ 2017-06-13 11:40 UTC (permalink / raw) To: H.J. Lu; +Cc: GNU C Library On Jun 13 2017, "H.J. Lu" <hjl.tools@gmail.com> wrote: > diff --git a/configure b/configure > index 422482f..888224e 100755 > --- a/configure > +++ b/configure > @@ -5336,10 +5336,13 @@ 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 "/$2:/{s/:\$//;p}" > } > - CXX_CSTDLIB_HEADER="$(find_cxx_header cstdlib)" > - CXX_CMATH_HEADER="$(find_cxx_header cmath)" > + CXX_CSTDLIB_HEADER="$(find_cxx_header cstdlib cstdlib)" > + # Also make a copy of <bits/std_abs.h> from GCC 7 to prevent it from > + # including /usr/include/stdlib.h. > + CXX_CSTDLIB_HEADER="$CXX_CSTDLIB_HEADER $(find_cxx_header bits/std_abs.h bits\\\/std_abs.h)" Use a different delimiter in the sed command. Andreas. -- Andreas Schwab, SUSE Labs, schwab@suse.de GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7 "And now for something completely different." ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] Make copy of <bits/std_abs.h> from GCC 7 [BZ #21573] 2017-06-13 11:40 ` Andreas Schwab @ 2017-06-13 11:44 ` H.J. Lu 2017-06-13 11:46 ` Andreas Schwab 0 siblings, 1 reply; 11+ messages in thread From: H.J. Lu @ 2017-06-13 11:44 UTC (permalink / raw) To: Andreas Schwab; +Cc: GNU C Library On Tue, Jun 13, 2017 at 4:40 AM, Andreas Schwab <schwab@suse.de> wrote: > On Jun 13 2017, "H.J. Lu" <hjl.tools@gmail.com> wrote: > >> diff --git a/configure b/configure >> index 422482f..888224e 100755 >> --- a/configure >> +++ b/configure >> @@ -5336,10 +5336,13 @@ 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 "/$2:/{s/:\$//;p}" >> } >> - CXX_CSTDLIB_HEADER="$(find_cxx_header cstdlib)" >> - CXX_CMATH_HEADER="$(find_cxx_header cmath)" >> + CXX_CSTDLIB_HEADER="$(find_cxx_header cstdlib cstdlib)" >> + # Also make a copy of <bits/std_abs.h> from GCC 7 to prevent it from >> + # including /usr/include/stdlib.h. >> + CXX_CSTDLIB_HEADER="$CXX_CSTDLIB_HEADER $(find_cxx_header bits/std_abs.h bits\\\/std_abs.h)" > > Use a different delimiter in the sed command. > The first / in "/$1:/{s/:\$//;p}" is a command: [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? -- H.J. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] Make copy of <bits/std_abs.h> from GCC 7 [BZ #21573] 2017-06-13 11:44 ` H.J. Lu @ 2017-06-13 11:46 ` Andreas Schwab 2017-06-13 11:54 ` H.J. Lu 0 siblings, 1 reply; 11+ messages in thread From: Andreas Schwab @ 2017-06-13 11:46 UTC (permalink / raw) To: H.J. Lu; +Cc: GNU C Library 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, Andreas. -- Andreas Schwab, SUSE Labs, schwab@suse.de GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7 "And now for something completely different." ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] Make copy of <bits/std_abs.h> from GCC 7 [BZ #21573] 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 20:13 ` Florian Weimer 0 siblings, 2 replies; 11+ messages in thread From: H.J. Lu @ 2017-06-13 11:54 UTC (permalink / raw) To: Andreas Schwab; +Cc: GNU C Library [-- Attachment #1: Type: text/plain, Size: 542 bytes --] 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. -- H.J. [-- Attachment #2: 0001-Make-copy-of-bits-std_abs.h-from-GCC-7-BZ-21573.patch --] [-- Type: text/x-patch, Size: 2154 bytes --] From 5b55c60163f4c99301c4c8fe2504a195620d828a Mon Sep 17 00:00:00 2001 From: "H.J. Lu" <hjl.tools@gmail.com> Date: Tue, 13 Jun 2017 04:30:26 -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] * configure.ac (find_cxx_header): Use "\,$1," with sed. (CXX_CSTDLIB_HEADER): Also make a copy of <bits/std_abs.h>. * configure: Regenerated. --- configure | 5 ++++- configure.ac | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/configure b/configure index 422482f..524a8bc 100755 --- a/configure +++ b/configure @@ -5336,9 +5336,12 @@ 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)" + # Also make a copy of <bits/std_abs.h> from GCC 7 to prevent it from + # including /usr/include/stdlib.h. + CXX_CSTDLIB_HEADER="$CXX_CSTDLIB_HEADER $(find_cxx_header bits/std_abs.h)" CXX_CMATH_HEADER="$(find_cxx_header cmath)" fi diff --git a/configure.ac b/configure.ac index 7f43042..213a436 100644 --- a/configure.ac +++ b/configure.ac @@ -1187,9 +1187,12 @@ 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)" + # Also make a copy of <bits/std_abs.h> from GCC 7 to prevent it from + # including /usr/include/stdlib.h. + CXX_CSTDLIB_HEADER="$CXX_CSTDLIB_HEADER $(find_cxx_header bits/std_abs.h)" CXX_CMATH_HEADER="$(find_cxx_header cmath)" fi AC_SUBST(CXX_CSTDLIB_HEADER) -- 2.9.4 ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] Make copy of <bits/std_abs.h> from GCC 7 [BZ #21573] 2017-06-13 11:54 ` H.J. Lu @ 2017-06-13 15:32 ` H.J. Lu 2017-06-13 18:13 ` H.J. Lu 2017-06-13 20:13 ` Florian Weimer 1 sibling, 1 reply; 11+ messages in thread From: H.J. Lu @ 2017-06-13 15:32 UTC (permalink / raw) To: Andreas Schwab; +Cc: GNU C Library 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. -- H.J. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] Make copy of <bits/std_abs.h> from GCC 7 [BZ #21573] 2017-06-13 15:32 ` H.J. Lu @ 2017-06-13 18:13 ` H.J. Lu 0 siblings, 0 replies; 11+ messages in thread From: H.J. Lu @ 2017-06-13 18:13 UTC (permalink / raw) To: Andreas Schwab; +Cc: GNU C Library [-- 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 ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] Make copy of <bits/std_abs.h> from GCC 7 [BZ #21573] 2017-06-13 11:54 ` H.J. Lu 2017-06-13 15:32 ` H.J. Lu @ 2017-06-13 20:13 ` Florian Weimer 2017-06-13 20:21 ` H.J. Lu 1 sibling, 1 reply; 11+ messages in thread From: Florian Weimer @ 2017-06-13 20:13 UTC (permalink / raw) To: H.J. Lu, Andreas Schwab; +Cc: GNU C Library [-- Attachment #1: Type: text/plain, Size: 621 bytes --] On 06/13/2017 01:54 PM, H.J. Lu wrote: > - 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)" > + # Also make a copy of <bits/std_abs.h> from GCC 7 to prevent it from > + # including /usr/include/stdlib.h. > + CXX_CSTDLIB_HEADER="$CXX_CSTDLIB_HEADER $(find_cxx_header bits/std_abs.h)" I think the attached patch is needed to suppress the error message if the header does not exist. (Regenerated configure file not shown in the patch.) Thanks, Florian [-- Attachment #2: find_cxx_header.patch --] [-- Type: text/x-patch, Size: 693 bytes --] configure: Suppress expected compiler error message 2017-06-13 Florian Weimer <fweimer@redhat.com> * configure.ac (find_cxx_header): Suppress compiler error message. diff --git a/configure.ac b/configure.ac index d74bd44..3f486d6 100644 --- a/configure.ac +++ b/configure.ac @@ -1187,7 +1187,8 @@ 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++ - 2>/dev/null \ + | sed -n "\,$1:,{s/:\$//;p}" } CXX_CSTDLIB_HEADER="$(find_cxx_header cstdlib)" CXX_CMATH_HEADER="$(find_cxx_header cmath)" ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] Make copy of <bits/std_abs.h> from GCC 7 [BZ #21573] 2017-06-13 20:13 ` Florian Weimer @ 2017-06-13 20:21 ` H.J. Lu 2017-09-07 17:29 ` H.J. Lu 0 siblings, 1 reply; 11+ messages in thread From: H.J. Lu @ 2017-06-13 20:21 UTC (permalink / raw) To: Florian Weimer; +Cc: Andreas Schwab, GNU C Library On Tue, Jun 13, 2017 at 1:13 PM, Florian Weimer <fweimer@redhat.com> wrote: > On 06/13/2017 01:54 PM, H.J. Lu wrote: >> - 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)" >> + # Also make a copy of <bits/std_abs.h> from GCC 7 to prevent it from >> + # including /usr/include/stdlib.h. >> + CXX_CSTDLIB_HEADER="$CXX_CSTDLIB_HEADER $(find_cxx_header bits/std_abs.h)" > > I think the attached patch is needed to suppress the error message if > the header does not exist. (Regenerated configure file not shown in the > patch.) > LGTM. Thanks. -- H.J. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] Make copy of <bits/std_abs.h> from GCC 7 [BZ #21573] 2017-06-13 20:21 ` H.J. Lu @ 2017-09-07 17:29 ` H.J. Lu 2017-09-11 15:53 ` H.J. Lu 0 siblings, 1 reply; 11+ messages in thread From: H.J. Lu @ 2017-09-07 17:29 UTC (permalink / raw) To: Florian Weimer, Libc-stable Mailing List; +Cc: Andreas Schwab, GNU C Library [-- Attachment #1: Type: text/plain, Size: 882 bytes --] On Tue, Jun 13, 2017 at 1:21 PM, H.J. Lu <hjl.tools@gmail.com> wrote: > On Tue, Jun 13, 2017 at 1:13 PM, Florian Weimer <fweimer@redhat.com> wrote: >> On 06/13/2017 01:54 PM, H.J. Lu wrote: >>> - 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)" >>> + # Also make a copy of <bits/std_abs.h> from GCC 7 to prevent it from >>> + # including /usr/include/stdlib.h. >>> + CXX_CSTDLIB_HEADER="$CXX_CSTDLIB_HEADER $(find_cxx_header bits/std_abs.h)" >> >> I think the attached patch is needed to suppress the error message if >> the header does not exist. (Regenerated configure file not shown in the >> patch.) >> > > LGTM. > Here is a patch to backport these 2 patches to 2.25 branch. Any comments? -- H.J. [-- Attachment #2: 0001-Make-copy-of-bits-std_abs.h-from-GCC-7-BZ-21573.patch --] [-- Type: text/x-patch, Size: 4059 bytes --] From a746c011f8b6bb7ffae39258d7e3b24e8b5cde40 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. * configure.ac (find_cxx_header): Suppress compiler error message. * configure: Regenerated. [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. (cherry picked from commit a65ea28d1833d3502c5070472e43bda04410e6b5 and commit c2528fef3b05bcffb1ac27c6c09cc3ff24b7f03f) --- Makerules | 8 ++++++++ config.make.in | 1 + configure | 6 +++++- configure.ac | 5 ++++- 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/Makerules b/Makerules index 7403305d30..43343f03ee 100644 --- a/Makerules +++ b/Makerules @@ -127,6 +127,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 5836b32a72..709527da4f 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 eecd0ace74..ee637a7caf 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 @@ -5318,14 +5319,17 @@ 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++ - 2>/dev/null \ + | 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 4a77411b71..d288ff43cd 100644 --- a/configure.ac +++ b/configure.ac @@ -1176,13 +1176,16 @@ 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++ - 2>/dev/null \ + | 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.13.5 ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] Make copy of <bits/std_abs.h> from GCC 7 [BZ #21573] 2017-09-07 17:29 ` H.J. Lu @ 2017-09-11 15:53 ` H.J. Lu 0 siblings, 0 replies; 11+ messages in thread From: H.J. Lu @ 2017-09-11 15:53 UTC (permalink / raw) To: Florian Weimer, Libc-stable Mailing List; +Cc: Andreas Schwab, GNU C Library On Thu, Sep 7, 2017 at 10:26 AM, H.J. Lu <hjl.tools@gmail.com> wrote: > On Tue, Jun 13, 2017 at 1:21 PM, H.J. Lu <hjl.tools@gmail.com> wrote: >> On Tue, Jun 13, 2017 at 1:13 PM, Florian Weimer <fweimer@redhat.com> wrote: >>> On 06/13/2017 01:54 PM, H.J. Lu wrote: >>>> - 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)" >>>> + # Also make a copy of <bits/std_abs.h> from GCC 7 to prevent it from >>>> + # including /usr/include/stdlib.h. >>>> + CXX_CSTDLIB_HEADER="$CXX_CSTDLIB_HEADER $(find_cxx_header bits/std_abs.h)" >>> >>> I think the attached patch is needed to suppress the error message if >>> the header does not exist. (Regenerated configure file not shown in the >>> patch.) >>> >> >> LGTM. >> > > Here is a patch to backport these 2 patches to 2.25 branch. Any > comments? > I am checking it into 2.25 branch. -- H.J. ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2017-09-11 15:53 UTC | newest] Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2017-06-13 11:38 [PATCH] Make copy of <bits/std_abs.h> from GCC 7 [BZ #21573] 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 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
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).