public inbox for libstdc++@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH] Remove CANADIAN, that break compilation for foreign target
@ 2017-09-20 10:38 Petr Ovtchenkov
  2017-09-20 10:45 ` Petr Ovtchenkov
  0 siblings, 1 reply; 7+ messages in thread
From: Petr Ovtchenkov @ 2017-09-20 10:38 UTC (permalink / raw)
  To: libstdc++; +Cc: gcc-patches

Some old ad-hoc (adding -I/usr/include to compiler
flags) break compilation of libstdc++ for foreign
target architecture (due to compiler see includes
of native).
---
 libstdc++-v3/acinclude.m4 |  5 -----
 libstdc++-v3/configure    | 22 ----------------------
 libstdc++-v3/configure.ac | 14 --------------
 3 files changed, 41 deletions(-)

diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4
index e48cf96..60c93bf 100644
--- a/libstdc++-v3/acinclude.m4
+++ b/libstdc++-v3/acinclude.m4
@@ -734,11 +734,6 @@ AC_DEFUN([GLIBCXX_EXPORT_INCLUDES], [
 -I$glibcxx_builddir/include \
 -I$glibcxx_srcdir/libsupc++"
 
-  # For Canadian crosses, pick this up too.
-  if test $CANADIAN = yes; then
-    GLIBCXX_INCLUDES="$GLIBCXX_INCLUDES -I\${includedir}"
-  fi
-
   # Stuff in the actual top level.  Currently only used by libsupc++ to
   # get unwind* headers from the libgcc dir.
   #TOPLEVEL_INCLUDES='-I$(toplevel_srcdir)/libgcc -I$(toplevel_srcdir)/include'
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index 9bf152a..7839518 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
@@ -21762,11 +21762,6 @@ done
 # Only do link tests if native. Else, hardcode.
 if $GLIBCXX_IS_NATIVE; then
 
-  # We can do more elaborate tests that assume a working linker.
-  CANADIAN=no
-
-
-
 # Check whether --with-gnu-ld was given.
 if test "${with_gnu_ld+set}" = set; then :
   withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
@@ -28807,17 +28802,6 @@ else
   # When all of that is done, all of this hokey, excessive AC_DEFINE junk for
   # crosses can be removed.
 
-  # If Canadian cross, then don't pick up tools from the build directory.
-  # Used only in GLIBCXX_EXPORT_INCLUDES.
-  if test -n "$with_cross_host" &&
-     test x"$build_alias" != x"$with_cross_host" &&
-     test x"$build" != x"$target";
-  then
-    CANADIAN=yes
-  else
-    CANADIAN=no
-  fi
-
   # Construct crosses by hand, eliminating bits that need ld...
   # GLIBCXX_CHECK_MATH_SUPPORT
 
@@ -81041,7 +81025,6 @@ CPU_OPT_BITS_RANDOM=config/${cpu_opt_bits_random}
 
 # Determine cross-compile flags and AM_CONDITIONALs.
 #AC_SUBST(GLIBCXX_IS_NATIVE)
-#AM_CONDITIONAL(CANADIAN, test $CANADIAN = yes)
     if test $is_hosted = yes; then
   GLIBCXX_HOSTED_TRUE=
   GLIBCXX_HOSTED_FALSE='#'
@@ -81423,11 +81406,6 @@ $as_echo "$gxx_include_dir" >&6; }
 -I$glibcxx_builddir/include \
 -I$glibcxx_srcdir/libsupc++"
 
-  # For Canadian crosses, pick this up too.
-  if test $CANADIAN = yes; then
-    GLIBCXX_INCLUDES="$GLIBCXX_INCLUDES -I\${includedir}"
-  fi
-
   # Stuff in the actual top level.  Currently only used by libsupc++ to
   # get unwind* headers from the libgcc dir.
   #TOPLEVEL_INCLUDES='-I$(toplevel_srcdir)/libgcc -I$(toplevel_srcdir)/include'
diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac
index 9e19e99..3a8e26d 100644
--- a/libstdc++-v3/configure.ac
+++ b/libstdc++-v3/configure.ac
@@ -243,8 +243,6 @@ wchar.h wctype.h])
 if $GLIBCXX_IS_NATIVE; then
 
   # We can do more elaborate tests that assume a working linker.
-  CANADIAN=no
-
   GLIBCXX_CHECK_LINKER_FEATURES
   GLIBCXX_CHECK_MATH_SUPPORT
   GLIBCXX_CHECK_STDLIB_SUPPORT
@@ -276,17 +274,6 @@ else
   # When all of that is done, all of this hokey, excessive AC_DEFINE junk for
   # crosses can be removed.
 
-  # If Canadian cross, then don't pick up tools from the build directory.
-  # Used only in GLIBCXX_EXPORT_INCLUDES.
-  if test -n "$with_cross_host" &&
-     test x"$build_alias" != x"$with_cross_host" &&
-     test x"$build" != x"$target";
-  then
-    CANADIAN=yes
-  else
-    CANADIAN=no
-  fi
-
   # Construct crosses by hand, eliminating bits that need ld...
   # GLIBCXX_CHECK_MATH_SUPPORT
 
@@ -480,7 +467,6 @@ AC_SUBST(CPU_OPT_BITS_RANDOM)
 
 # Determine cross-compile flags and AM_CONDITIONALs.
 #AC_SUBST(GLIBCXX_IS_NATIVE)
-#AM_CONDITIONAL(CANADIAN, test $CANADIAN = yes)
 GLIBCXX_EVALUATE_CONDITIONALS
 
 AC_CACHE_SAVE
-- 
2.10.1

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Remove CANADIAN, that break compilation for foreign target
  2017-09-20 10:38 [PATCH] Remove CANADIAN, that break compilation for foreign target Petr Ovtchenkov
@ 2017-09-20 10:45 ` Petr Ovtchenkov
  2017-11-16 17:55   ` [PING] " Petr Ovtchenkov
  0 siblings, 1 reply; 7+ messages in thread
From: Petr Ovtchenkov @ 2017-09-20 10:45 UTC (permalink / raw)
  To: libstdc++; +Cc: gcc-patches

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71212

On Fri, 20 May 2016 16:10:50 +0300
Petr Ovtchenkov <ptr@void-ptr.info> wrote:

> Some old ad-hoc (adding -I/usr/include to compiler
> flags) break compilation of libstdc++ for foreign
> target architecture (due to compiler see includes
> of native).

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PING] [PATCH] Remove CANADIAN, that break compilation for foreign target
  2017-09-20 10:45 ` Petr Ovtchenkov
@ 2017-11-16 17:55   ` Petr Ovtchenkov
  2017-12-19  8:37     ` [PING^2] " Petr Ovtchenkov
  0 siblings, 1 reply; 7+ messages in thread
From: Petr Ovtchenkov @ 2017-11-16 17:55 UTC (permalink / raw)
  To: Petr Ovtchenkov; +Cc: libstdc++, gcc-patches, Jonathan Wakely

On Wed, 20 Sep 2017 13:44:59 +0300
Petr Ovtchenkov <ptr@void-ptr.info> wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71212
> 
> On Fri, 20 May 2016 16:10:50 +0300
> Petr Ovtchenkov <ptr@void-ptr.info> wrote:
> 
> > Some old ad-hoc (adding -I/usr/include to compiler
> > flags) break compilation of libstdc++ for foreign
> > target architecture (due to compiler see includes
> > of native).

Reference for terms:

https://gcc.gnu.org/onlinedocs/gccint/Configure-Terms.html

Present of "CANADIAN=yes" lead to inclusion of
headers from build (-I/usr/include). "CANADIAN=yes" used _only_
to set "-I/usr/include".

Inclusion of build headers in cross-compilation
process is not a mistake only in case of native (i.e. it is mistake
for cross, for canadian, for crossed native and for crossback),
but sometimes give "success".

Note, that build/host/target may be different not only due to
different architectures, but due to different sysroots
(libc, kernel, binutils, etc.).

CANADIAN is set to "yes" by code

-  # If Canadian cross, then don't pick up tools from the build directory.
-  # Used only in GLIBCXX_EXPORT_INCLUDES.
-  if test -n "$with_cross_host" &&
-     test x"$build_alias" != x"$with_cross_host" &&
-     test x"$build" != x"$target";
-  then
-    CANADIAN=yes
-  else
-    CANADIAN=no
-  fi

and it add "-I/usr/include" to compiler flags for building libstdc++.
This is wrong.

Reference to patch:
https://gcc.gnu.org/ml/gcc-patches/2017-09/msg01332.html

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PING^2] [PATCH] Remove CANADIAN, that break compilation for foreign target
  2017-11-16 17:55   ` [PING] " Petr Ovtchenkov
@ 2017-12-19  8:37     ` Petr Ovtchenkov
  2018-01-30  7:19       ` [PING^3] " Petr Ovtchenkov
  0 siblings, 1 reply; 7+ messages in thread
From: Petr Ovtchenkov @ 2017-12-19  8:37 UTC (permalink / raw)
  Cc: libstdc++, gcc-patches, Jonathan Wakely

On Thu, 16 Nov 2017 20:55:37 +0300
Petr Ovtchenkov <ptr@void-ptr.info> wrote:

> On Wed, 20 Sep 2017 13:44:59 +0300
> Petr Ovtchenkov <ptr@void-ptr.info> wrote:
> 
> > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71212
> > 
> > On Fri, 20 May 2016 16:10:50 +0300
> > Petr Ovtchenkov <ptr@void-ptr.info> wrote:
> > 
> > > Some old ad-hoc (adding -I/usr/include to compiler
> > > flags) break compilation of libstdc++ for foreign
> > > target architecture (due to compiler see includes
> > > of native).
> 
> Reference for terms:
> 
> https://gcc.gnu.org/onlinedocs/gccint/Configure-Terms.html
> 
> Present of "CANADIAN=yes" lead to inclusion of
> headers from build (-I/usr/include). "CANADIAN=yes" used _only_
> to set "-I/usr/include".
> 
> Inclusion of build headers in cross-compilation
> process is not a mistake only in case of native (i.e. it is mistake
> for cross, for canadian, for crossed native and for crossback),
> but sometimes give "success".
> 
> Note, that build/host/target may be different not only due to
> different architectures, but due to different sysroots
> (libc, kernel, binutils, etc.).
> 
> CANADIAN is set to "yes" by code
> 
> -  # If Canadian cross, then don't pick up tools from the build directory.
> -  # Used only in GLIBCXX_EXPORT_INCLUDES.
> -  if test -n "$with_cross_host" &&
> -     test x"$build_alias" != x"$with_cross_host" &&
> -     test x"$build" != x"$target";
> -  then
> -    CANADIAN=yes
> -  else
> -    CANADIAN=no
> -  fi
> 
> and it add "-I/usr/include" to compiler flags for building libstdc++.
> This is wrong.
> 
> Reference to patch:
> https://gcc.gnu.org/ml/gcc-patches/2017-09/msg01332.html

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PING^3] [PATCH] Remove CANADIAN, that break compilation for foreign target
  2017-12-19  8:37     ` [PING^2] " Petr Ovtchenkov
@ 2018-01-30  7:19       ` Petr Ovtchenkov
  2018-01-30 12:55         ` Jonathan Wakely
  0 siblings, 1 reply; 7+ messages in thread
From: Petr Ovtchenkov @ 2018-01-30  7:19 UTC (permalink / raw)
  To: Petr Ovtchenkov; +Cc: libstdc++, gcc-patches

On Tue, 19 Dec 2017 11:37:43 +0300
Petr Ovtchenkov <ptr@void-ptr.info> wrote:

ping^3

> On Thu, 16 Nov 2017 20:55:37 +0300
> Petr Ovtchenkov <ptr@void-ptr.info> wrote:
> 
> > On Wed, 20 Sep 2017 13:44:59 +0300
> > Petr Ovtchenkov <ptr@void-ptr.info> wrote:
> > 
> > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71212
> > > 
> > > On Fri, 20 May 2016 16:10:50 +0300
> > > Petr Ovtchenkov <ptr@void-ptr.info> wrote:
> > > 
> > > > Some old ad-hoc (adding -I/usr/include to compiler
> > > > flags) break compilation of libstdc++ for foreign
> > > > target architecture (due to compiler see includes
> > > > of native).
> > 
> > Reference for terms:
> > 
> > https://gcc.gnu.org/onlinedocs/gccint/Configure-Terms.html
> > 
> > Present of "CANADIAN=yes" lead to inclusion of
> > headers from build (-I/usr/include). "CANADIAN=yes" used _only_
> > to set "-I/usr/include".
> > 
> > Inclusion of build headers in cross-compilation
> > process is not a mistake only in case of native (i.e. it is mistake
> > for cross, for canadian, for crossed native and for crossback),
> > but sometimes give "success".
> > 
> > Note, that build/host/target may be different not only due to
> > different architectures, but due to different sysroots
> > (libc, kernel, binutils, etc.).
> > 
> > CANADIAN is set to "yes" by code
> > 
> > -  # If Canadian cross, then don't pick up tools from the build directory.
> > -  # Used only in GLIBCXX_EXPORT_INCLUDES.
> > -  if test -n "$with_cross_host" &&
> > -     test x"$build_alias" != x"$with_cross_host" &&
> > -     test x"$build" != x"$target";
> > -  then
> > -    CANADIAN=yes
> > -  else
> > -    CANADIAN=no
> > -  fi
> > 
> > and it add "-I/usr/include" to compiler flags for building libstdc++.
> > This is wrong.
> > 
> > Reference to patch:
> > https://gcc.gnu.org/ml/gcc-patches/2017-09/msg01332.html

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PING^3] [PATCH] Remove CANADIAN, that break compilation for foreign target
  2018-01-30  7:19       ` [PING^3] " Petr Ovtchenkov
@ 2018-01-30 12:55         ` Jonathan Wakely
  2018-01-30 18:36           ` Petr Ovtchenkov
  0 siblings, 1 reply; 7+ messages in thread
From: Jonathan Wakely @ 2018-01-30 12:55 UTC (permalink / raw)
  To: Petr Ovtchenkov; +Cc: libstdc++, gcc-patches

On 30/01/18 10:19 +0300, Petr Ovtchenkov wrote:
>On Tue, 19 Dec 2017 11:37:43 +0300
>Petr Ovtchenkov <ptr@void-ptr.info> wrote:
>
>ping^3


I don't fully understand the consequences (or need) for this patch.

I asked some other people to look at it, and didn't get confirmation
it's OK. So I'm reluctant to make the change. Especially this late in
the GCC 8 cycle.


>> On Thu, 16 Nov 2017 20:55:37 +0300
>> Petr Ovtchenkov <ptr@void-ptr.info> wrote:
>>
>> > On Wed, 20 Sep 2017 13:44:59 +0300
>> > Petr Ovtchenkov <ptr@void-ptr.info> wrote:
>> >
>> > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71212
>> > >
>> > > On Fri, 20 May 2016 16:10:50 +0300
>> > > Petr Ovtchenkov <ptr@void-ptr.info> wrote:
>> > >
>> > > > Some old ad-hoc (adding -I/usr/include to compiler
>> > > > flags) break compilation of libstdc++ for foreign
>> > > > target architecture (due to compiler see includes
>> > > > of native).
>> >
>> > Reference for terms:
>> >
>> > https://gcc.gnu.org/onlinedocs/gccint/Configure-Terms.html
>> >
>> > Present of "CANADIAN=yes" lead to inclusion of
>> > headers from build (-I/usr/include). "CANADIAN=yes" used _only_
>> > to set "-I/usr/include".
>> >
>> > Inclusion of build headers in cross-compilation
>> > process is not a mistake only in case of native (i.e. it is mistake
>> > for cross, for canadian, for crossed native and for crossback),
>> > but sometimes give "success".
>> >
>> > Note, that build/host/target may be different not only due to
>> > different architectures, but due to different sysroots
>> > (libc, kernel, binutils, etc.).
>> >
>> > CANADIAN is set to "yes" by code
>> >
>> > -  # If Canadian cross, then don't pick up tools from the build directory.
>> > -  # Used only in GLIBCXX_EXPORT_INCLUDES.
>> > -  if test -n "$with_cross_host" &&
>> > -     test x"$build_alias" != x"$with_cross_host" &&
>> > -     test x"$build" != x"$target";
>> > -  then
>> > -    CANADIAN=yes
>> > -  else
>> > -    CANADIAN=no
>> > -  fi
>> >
>> > and it add "-I/usr/include" to compiler flags for building libstdc++.
>> > This is wrong.
>> >
>> > Reference to patch:
>> > https://gcc.gnu.org/ml/gcc-patches/2017-09/msg01332.html

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PING^3] [PATCH] Remove CANADIAN, that break compilation for foreign target
  2018-01-30 12:55         ` Jonathan Wakely
@ 2018-01-30 18:36           ` Petr Ovtchenkov
  0 siblings, 0 replies; 7+ messages in thread
From: Petr Ovtchenkov @ 2018-01-30 18:36 UTC (permalink / raw)
  To: Jonathan Wakely; +Cc: libstdc++, gcc-patches

On Tue, 30 Jan 2018 12:54:21 +0000
Jonathan Wakely <jwakely@redhat.com> wrote:

> On 30/01/18 10:19 +0300, Petr Ovtchenkov wrote:
> >On Tue, 19 Dec 2017 11:37:43 +0300
> >Petr Ovtchenkov <ptr@void-ptr.info> wrote:
> >
> >ping^3
> 
> 
> I don't fully understand the consequences (or need) for this patch.
> 
> I asked some other people to look at it, and didn't get confirmation
> it's OK. So I'm reluctant to make the change. Especially this late in
> the GCC 8 cycle.

Hmm, almost two years for this words. Do you really think that
-I/usr/include may be correct in build of cross of some kind
(CANADIAN is just variant of cross)? Of cause, I don't consider
case with rolling target headers in /usr/include.


> 
> 
> >> On Thu, 16 Nov 2017 20:55:37 +0300
> >> Petr Ovtchenkov <ptr@void-ptr.info> wrote:
> >>
> >> > On Wed, 20 Sep 2017 13:44:59 +0300
> >> > Petr Ovtchenkov <ptr@void-ptr.info> wrote:
> >> >
> >> > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71212
> >> > >
> >> > > On Fri, 20 May 2016 16:10:50 +0300
> >> > > Petr Ovtchenkov <ptr@void-ptr.info> wrote:
> >> > >
> >> > > > Some old ad-hoc (adding -I/usr/include to compiler
> >> > > > flags) break compilation of libstdc++ for foreign
> >> > > > target architecture (due to compiler see includes
> >> > > > of native).
> >> >
> >> > Reference for terms:
> >> >
> >> > https://gcc.gnu.org/onlinedocs/gccint/Configure-Terms.html
> >> >
> >> > Present of "CANADIAN=yes" lead to inclusion of
> >> > headers from build (-I/usr/include). "CANADIAN=yes" used _only_
> >> > to set "-I/usr/include".
> >> >
> >> > Inclusion of build headers in cross-compilation
> >> > process is not a mistake only in case of native (i.e. it is mistake
> >> > for cross, for canadian, for crossed native and for crossback),
> >> > but sometimes give "success".
> >> >
> >> > Note, that build/host/target may be different not only due to
> >> > different architectures, but due to different sysroots
> >> > (libc, kernel, binutils, etc.).
> >> >
> >> > CANADIAN is set to "yes" by code
> >> >
> >> > -  # If Canadian cross, then don't pick up tools from the build directory.
> >> > -  # Used only in GLIBCXX_EXPORT_INCLUDES.
> >> > -  if test -n "$with_cross_host" &&
> >> > -     test x"$build_alias" != x"$with_cross_host" &&
> >> > -     test x"$build" != x"$target";
> >> > -  then
> >> > -    CANADIAN=yes
> >> > -  else
> >> > -    CANADIAN=no
> >> > -  fi
> >> >
> >> > and it add "-I/usr/include" to compiler flags for building libstdc++.
> >> > This is wrong.
> >> >
> >> > Reference to patch:
> >> > https://gcc.gnu.org/ml/gcc-patches/2017-09/msg01332.html

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2018-01-30 18:36 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-09-20 10:38 [PATCH] Remove CANADIAN, that break compilation for foreign target Petr Ovtchenkov
2017-09-20 10:45 ` Petr Ovtchenkov
2017-11-16 17:55   ` [PING] " Petr Ovtchenkov
2017-12-19  8:37     ` [PING^2] " Petr Ovtchenkov
2018-01-30  7:19       ` [PING^3] " Petr Ovtchenkov
2018-01-30 12:55         ` Jonathan Wakely
2018-01-30 18:36           ` Petr Ovtchenkov

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).