public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* Re: GCC-TM dependency build
       [not found]                   ` <20100408165919.GA6093@redhat.com>
@ 2010-04-09 16:37                     ` Richard Henderson
  2010-04-10  2:48                       ` Jonathan Wakely
  0 siblings, 1 reply; 3+ messages in thread
From: Richard Henderson @ 2010-04-09 16:37 UTC (permalink / raw)
  To: gcc; +Cc: Aldy Hernandez, jarias, Ulrich Drepper, aoliva

On 04/08/2010 09:59 AM, Aldy Hernandez wrote:
> The problem is that now the problem is present on a serial make (ala,
> "/src/configure && make").

I've reliably reproduced this.  As far as I can tell, it's a problem
of makefile variable expansion in the top-level make.

For the folks just joining in gcc@, the problem is in the building of
libitm on the transactional-memory branch.  Libitm is written in C++,
and uses <cassert>.

On the *first* invocation of make, the value of CXX_FOR_TARGET that is
passed down to the libitm sub-make does *not* include the -I flags for
the appropriate libstdc++ directories, and so <cassert> is not found
and results in the obvious build error.  This failure can apparently
be masked by having an existing installation at PREFIX (which is I 
suppose why it took me so long to see the problem).

On the *second* invocation of make, the value of CXX_FOR_TARGET *does*
include the appropriate -I flags and compilation succeeds.

This failure does not appear for libjava, the only other c++ library,
because it only uses the C headers (<ctype.h> etc) instead of the C++
wrapper headers (<cctype>).  It doesn't *really* use libstdc++ at all.

As best I can figure, this...

> GCC_TARGET_TOOL(c++, CXX_FOR_TARGET, CXX,
>                 [gcc/g++ -B$$r/$(HOST_SUBDIR)/gcc/ -nostdinc++ `test ! -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags || $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags --build-includes` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs],
>                 c++)

... gets expanded too early in the make process.  During the first
invocation of make the testsuite_flags script does not yet exist,
and the variable is not re-evaluated after configure-target-libstdc++-v3.

I have no idea how to fix this.  Ideas?


r~

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

* Re: GCC-TM dependency build
  2010-04-09 16:37                     ` GCC-TM dependency build Richard Henderson
@ 2010-04-10  2:48                       ` Jonathan Wakely
  2010-04-12 18:28                         ` Richard Henderson
  0 siblings, 1 reply; 3+ messages in thread
From: Jonathan Wakely @ 2010-04-10  2:48 UTC (permalink / raw)
  To: Richard Henderson; +Cc: gcc, Aldy Hernandez, jarias, Ulrich Drepper, aoliva

On 9 April 2010 17:00, Richard Henderson wrote:
>
> I have no idea how to fix this.  Ideas?

Maybe a dumb question, I don't know the context of this problem...

Is <cassert> the only C++ header that causes a problem?

<cassert> is exactly equivalent to <assert.h> because it only declares
macros, which are not in namespace std anyway.

So if that's the only problem, using <assert.h> instead of <cassert>
would solve it.

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

* Re: GCC-TM dependency build
  2010-04-10  2:48                       ` Jonathan Wakely
@ 2010-04-12 18:28                         ` Richard Henderson
  0 siblings, 0 replies; 3+ messages in thread
From: Richard Henderson @ 2010-04-12 18:28 UTC (permalink / raw)
  To: Jonathan Wakely; +Cc: gcc, Aldy Hernandez, jarias, Ulrich Drepper, aoliva

On 04/09/2010 03:16 PM, Jonathan Wakely wrote:
> Is<cassert>  the only C++ header that causes a problem?
>
> <cassert>  is exactly equivalent to<assert.h>  because it only declares
> macros, which are not in namespace std anyway.
>
> So if that's the only problem, using<assert.h>  instead of<cassert>
> would solve it.

No, we also use <type_traits>, so avoiding the C wrapper headers
doesn't really help.


r~

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

end of thread, other threads:[~2010-04-12 18:10 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20100331163055.GA2700@redhat.com>
     [not found] ` <4BB39088.5080502@redhat.com>
     [not found]   ` <20100331184807.GA2923@redhat.com>
     [not found]     ` <4BBB255B.8000504@bsc.es>
     [not found]       ` <20100406121705.GA6766@redhat.com>
     [not found]         ` <37064.192.168.6.2.1270740237.squirrel@webmail.bsc.es>
     [not found]           ` <20100408153506.GA4966@redhat.com>
     [not found]             ` <4BBE0781.7050907@redhat.com>
     [not found]               ` <20100408164448.GA5771@redhat.com>
     [not found]                 ` <4BBE0AED.60407@redhat.com>
     [not found]                   ` <20100408165919.GA6093@redhat.com>
2010-04-09 16:37                     ` GCC-TM dependency build Richard Henderson
2010-04-10  2:48                       ` Jonathan Wakely
2010-04-12 18:28                         ` Richard Henderson

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