Query about DWARF output for recursively nested inlined subroutines

2012-03-02 Thread Dan Towner
Hi all,

I have noticed the following construct appearing in some DWARF output and
I'm don't understand what it means, or whether it is actually a bug:

.uleb128 0x1c   ;# (DIE (0x80a) DW_TAG_inlined_subroutine)
.long 0x635;# DW_AT_abstract_origin
.word _picoMark_LBB23  ;# DW_AT_low_pc
.word _picoMark_LBE23  ;# DW_AT_high_pc
.byte 0x1   ;# DW_AT_call_file
(/home/dant/Tools/Verification/Flow/standalone_fn_error.vhd)
.byte 0xaf  ;# DW_AT_call_line
.uleb128 0x17   ;# (DIE (0x815) DW_TAG_formal_parameter)
.long 0x650;# DW_AT_abstract_origin
.long _picoMark_LLST15 ;# DW_AT_location
.uleb128 0x1c   ;# (DIE (0x81e) DW_TAG_inlined_subroutine)
.long 0x635;# DW_AT_abstract_origin
.word _picoMark_LBB25  ;# DW_AT_low_pc
.word _picoMark_LBE25  ;# DW_AT_high_pc
.byte 0x1   ;# DW_AT_call_file
(/home/dant/Tools/Verification/Flow/standalone_fn_error.vhd)
.byte 0x47  ;# DW_AT_call_line
.uleb128 0x17   ;# (DIE (0x829) DW_TAG_formal_parameter)
.long 0x650;# DW_AT_abstract_origin
.long _picoMark_LLST16 ;# DW_AT_location
.uleb128 0x1e   ;# (DIE (0x832) DW_TAG_lexical_block)
.word _picoMark_LBB26  ;# DW_AT_low_pc
.word _picoMark_LBE26  ;# DW_AT_high_pc

There are two puzzling things about this little fragment. Firstly the
inlined subroutine contains another inline instance of the same subroutine
within itself (i.e., the first inlined subroutine has abstract origin
0x635, and it contains another inlined subroutine child with the same
abstract origin). This seems to imply that the subroutine is recursive,
which it isn't. Nowhere in the source code does the subroutine call
itself.

Secondly, the DWARF contains call site information for the two
subroutines, but the second one is simply wrong. The source line for the
supposed call site (0x47 above) is the first line of the definition of 
`main', and isn't even a call site.

I can supply a test case (for the picochip port) if necessary, but I just
wanted to get an idea of whether this really is a problem, or I'm just
misinterpreting what is going on.

thanks,

dan.


GCC 4.7.0 Status Report (2012-03-02)

2012-03-02 Thread Richard Guenther

The GCC 4.7 branch has been created and a first release candidate
is being prepared right now.  The branch is closed for now.


Previous Report
===

http://gcc.gnu.org/ml/gcc/2012-02/msg00441.html


The next report will announce the release candidate.


Re: GCC 4.7.0 Status Report (2012-03-02)

2012-03-02 Thread Paolo Carlini

On 03/02/2012 12:15 PM, Richard Guenther wrote:

The GCC 4.7 branch has been created and a first release candidate
is being prepared right now.  The branch is closed for now.
Just be clear (I think the information could be useful in general): 
mainline can be already considered open for Stage 1 commits?


Thanks,
Paolo.


GCC 4.8.0 Status Report (2012-03-02), Stage 1 starts now

2012-03-02 Thread Richard Guenther

Status
==

The trunk has branched for the GCC 4.7 release and is now open
again for general development, stage 1.  Please consider not
disrupting it too much during the RC phase of GCC 4.7 so it
is possible to test important fixes for 4.7.0 on it.


Quality Data


Priority  #   Change from Last Report
---   ---
P10   -  2 
P2   69   -  1 
P31   -  1 
---   ---
Total70   -  4


Previous Report
===

http://gcc.gnu.org/ml/gcc/2012-02/msg00441.html

The next report will be sent by Jakub.


gcc-4.8-20120302 is now available

2012-03-02 Thread Richard Guenther

Snapshot gcc-4.8-20120302 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/4.8-20120302/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 4.8 SVN branch
with the following options: svn://gcc.gnu.org/svn/gcc/trunk revision 184782

You'll find:

 gcc-4.8-20120302.tar.bz2 Complete GCC

  MD5=99738587c160f04b2fef57269aae4f01
  SHA1=4932a396e8f063cff7a160fbdda1c12769bd7657

Diffs from gcc-4.7-20120225 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-4.8
link is updated and a message is sent to the gcc list.  Please do not use
a snapshot before it has been announced that way.



GCC 4.7.0

2012-03-02 Thread Mioljub Ivanovic
GCC 4.7.0 listed, but there isn't link for download!




GCC 4.7.0 Release Candidate available from gcc.gnu.org

2012-03-02 Thread Richard Guenther

GCC 4.7.0 Release Candidate available from gcc.gnu.org

The first release candidate for GCC 4.7.0 is available from

 ftp://gcc.gnu.org/pub/gcc/snapshots/4.7.0-RC-20120302

and shortly its mirrors.  It has been generated from SVN revision 184777.

I have so far bootstrapped and tested the release candidate on
x86_64-linux.  Please test it and report any issues to bugzilla.

If all goes well, I'd like to release 4.7.0 in about three weeks.


Partly rewriting gengtype in C++ ?

2012-03-02 Thread Basile Starynkevitch
Hello All,

I'm quite tempted to start working on a rewrite of gengtype in C++ (using
C++03 standard).

One of the reasons is that gengtype is really in bad shape, and nobody
understands it well. Another reason is that gengtype needs to be enhanced to
accept at least common C++ containers (like std::vector or std::map, or
probably a GCC specific variant of them whiwh would be notably
gcc_vector)


If I start working on that (very probably inside the MELT branch at first)
do I have a reasonable chance for that to be accepted in some trunk?

(I do strongly believe that a better garbage collector would be useful even
if part of GCC is going C++)

Or is improving gengtype not even worth any effort?

Cheers
-- 
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basilestarynkevitchnet mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mines, sont seulement les miennes} ***


Re: GCC 4.7.0

2012-03-02 Thread Jakub Jelinek
On Fri, Mar 02, 2012 at 02:35:52PM +0100, Mioljub Ivanovic wrote:
> GCC 4.7.0 listed, but there isn't link for download!

4.7.0 hasn't been released yet, just a release candidate - 4.7.0-rc1.
The actual release will happen in a few weeks.
If you want to try the release candidate, the link for it has been posted
already.

Jakub


Re: GCC 4.7.0 Release Candidate available from gcc.gnu.org

2012-03-02 Thread Dennis Clarke

>
> GCC 4.7.0 Release Candidate available from gcc.gnu.org
>
> The first release candidate for GCC 4.7.0 is available from
>
>  ftp://gcc.gnu.org/pub/gcc/snapshots/4.7.0-RC-20120302
>
> and shortly its mirrors.  It has been generated from SVN revision 184777.
>
> I have so far bootstrapped and tested the release candidate on
> x86_64-linux.  Please test it and report any issues to bugzilla.
>
> If all goes well, I'd like to release 4.7.0 in about three weeks.

I'll drop it on Solaris. Give it a push. Do we realy really need that
ppl/cloog stuff? I have never seen it build and pass any tests, ever,
even once, on Solaris with or without Sun Studio compilers or GCC or
prayer and geek magic under a full moon.  Seriously.

So really, it that stuff a "need" or a "nice to have" ?

dc




-- 
--
http://pgp.mit.edu:11371/pks/lookup?op=vindex&search=0x1D936C72FA35B44B
+-+---+
| Dennis Clarke   | Solaris and Linux and Open Source |
| dcla...@blastwave.org   | Respect for open standards.   |
+-+---+



[Ann] GCC MELT plugin 0.9.4 for GCC 4.6 & 4.7

2012-03-02 Thread Basile Starynkevitch
Hello All

It is my pleasure to announce the GCC MELT plugin version 0.9.4 for GCC 4.6 & 
4.7.

MELT is a high level domain specific language to extend GCC.
See http://gcc-melt.org/ for more

The MELT plugin 0.9.4 for GCC 4.6 and 4.7 is available as a gzipped source tar 
archive
from http://gcc-melt.org/melt-0.9.4-plugin-for-gcc-4.6-or-4.7.tgz of size 
4353062 bytes
and md5sum 3949d71132c79e833f68b3f35e2d1f9c (march 2nd 2012).

It is extracted from MELT branch svn revision 184792.
The version number 0.9.4 of the MELT plugin is unrelated to the version of the 
GCC
compiler (4.6 or 4.7) for which it is supposed to work. Bug reports and patches 
are
welcome (to the gcc-m...@googlegroups.com list).


NEWS for 0.9.4 MELT plugin for GCC 4.6 (and 4.7 when available)
released on March 02nd, 2012

   Language improvements
   =

Add CHEADER macro to insert header c-code. For example

   (cheader #{#include }#)
or 
   (cheader #{inline int succ(int x) { return x+1;}}#)

[you still need dirty tricks to link an external library into a MELT
module; as a temporary workaround, consider editing melt-module.mk for
them, perhaps defining GCCMELT_MODULE_EXTRALIBES there, or link
manually the library into melt.so meta-plugin]

   Runtime 
   ===

Hash maps have an auxiliary data value, which can be accessed and set
at will. 

   Translator
   ==

All C-generating devices (primitives, c-iterators, ...) emit their
code in a syntax checking C function, which is never called, but is
emitted to ensure the emittable C code is syntactically correct. This
catch typos in (defprimitive ...) etc... even for e.g. yet unused
primitives.

   Bugs 
   

Many bugs have been corrected.


Regards.
-- 
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basilestarynkevitchnet mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mine, sont seulement les miennes} ***


Re: Partly rewriting gengtype in C++ ?

2012-03-02 Thread Laurynas Biveinis
Basile -

> I'm quite tempted to start working on a rewrite of gengtype in C++ (using
> C++03 standard).
>
> One of the reasons is that gengtype is really in bad shape, and nobody
> understands it well. Another reason is that gengtype needs to be enhanced to
> accept at least common C++ containers (like std::vector or std::map, or
> probably a GCC specific variant of them whiwh would be notably
> gcc_vector Keytype,typename Elemtype,bool GGCed>)

> If I start working on that (very probably inside the MELT branch at first)
> do I have a reasonable chance for that to be accepted in some trunk?

Since no other GCC part is using C++ currently, I believe this would
be rather poor first module choice to convert to C++. If C++ was
already a non-optional requirement, then C++ conversion would be OK,
but I believe this rewrite should be made in conjunction with current
requirements and not in anticipation of some future requirement (or
you risk rewriting it twice).

-- 
Laurynas


Re: Partly rewriting gengtype in C++ ?

2012-03-02 Thread Diego Novillo

On 02/03/12 12:56 , Laurynas Biveinis wrote:


Since no other GCC part is using C++ currently, I believe this would
be rather poor first module choice to convert to C++. If C++ was
already a non-optional requirement, then C++ conversion would be OK,


It already is.  We bootstrap in C++ mode.  I don't see a problem 
starting to move some code to C++.  Whether this is a good chunk of code 
to convert is another question.


Basile, I don't see a problem with your plan, in principle.


Diego.


Re: Partly rewriting gengtype in C++ ?

2012-03-02 Thread Laurynas Biveinis
2012/3/2 Diego Novillo :
> It already is.  We bootstrap in C++ mode.  I don't see a problem starting to
> move some code to C++.  Whether this is a good chunk of code to convert is
> another question.

Sorry, I should have been more precise and said "not the best first
module choice to convert to C++ and lose the ability to go back to
building in C."

I agree that such conversion will have to be done at some point, but
I'm not sure if a big rewrite should happen way before the rest of the
code will start to use gengtype-annotated C++ data structures.

-- 
Laurynas


Re: Partly rewriting gengtype in C++ ?

2012-03-02 Thread Diego Novillo
On Fri, Mar 2, 2012 at 13:45, Laurynas Biveinis
 wrote:
> 2012/3/2 Diego Novillo :
>> It already is.  We bootstrap in C++ mode.  I don't see a problem starting to
>> move some code to C++.  Whether this is a good chunk of code to convert is
>> another question.
>
> Sorry, I should have been more precise and said "not the best first
> module choice to convert to C++ and lose the ability to go back to
> building in C."

I do not think we should look back.  Trying to retain the ability to
go back to C should not influence our design.

> I agree that such conversion will have to be done at some point, but
> I'm not sure if a big rewrite should happen way before the rest of the
> code will start to use gengtype-annotated C++ data structures.

Wait, I don't follow.  gengtype supporting C++ data structures is
different than writing gengtype in C++.


Diego.


Re: Partly rewriting gengtype in C++ ?

2012-03-02 Thread Basile Starynkevitch
On Fri, 2 Mar 2012 19:56:19 +0200
Laurynas Biveinis  wrote:

> Basile -
> 
> > I'm quite tempted to start working on a rewrite of gengtype in C++ (using
> > C++03 standard).
> >
> > One of the reasons is that gengtype is really in bad shape, and nobody
> > understands it well. Another reason is that gengtype needs to be enhanced to
> > accept at least common C++ containers (like std::vector or std::map, or
> > probably a GCC specific variant of them whiwh would be notably
> > gcc_vector > Keytype,typename Elemtype,bool GGCed>)

Actually, this brings another question: is vec.h deprecated (or at least do we 
want to
get rid of it for next release), or not yet?

> 
> > If I start working on that (very probably inside the MELT branch at first)
> > do I have a reasonable chance for that to be accepted in some trunk?
> 
> Since no other GCC part is using C++ currently, I believe this would
> be rather poor first module choice to convert to C++. If C++ was
> already a non-optional requirement, then C++ conversion would be OK,
> but I believe this rewrite should be made in conjunction with current
> requirements and not in anticipation of some future requirement (or
> you risk rewriting it twice).

I don't understand that last sentence. Gengtype is precisely a utility
independent of GCC usage (outside of plugin development), in the sense that 
once GCC has
been built you don't need it (except for plugins). So I would believe that it 
is the
less risky part to "rewrite" in C++ (because it is an independent executable, 
not needed
for the vast majority of GCC users, e.g. for all users of a Linux-distribution 
packaged
GCC not compiling GCC plugins).

And my feeling is that C++ is now in principle required for GCC. For instance, 
you need
it to compile the Go front-end.


Diego Novillo wrote:
> It already is.  We bootstrap in C++ mode.  I don't see a problem 
> starting to move some code to C++.  Whether this is a good chunk of code 
> to convert is another question.

Well, I think it is a good code to convert, because it has a limited 
dependency, and
because gengtype is really really ugly today. Few people understand it (I am 
partly of
them) and those who do, think it is ugly code (and very few people really can 
understand
it, because most questions about gengtype remain unanswered.).

> 
> Basile, I don't see a problem with your plan, in principle.

(I have not fully decided yet yo work on it; currently it is a wish mostly; is 
it ok to
use the MELT branch for that also??? I believe I don't want to work on two 
branches!)

Cheers.
-- 
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basilestarynkevitchnet mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mine, sont seulement les miennes} ***


Re: Query about DWARF output for recursively nested inlined subroutines

2012-03-02 Thread Michael Eager

On 03/02/2012 02:49 AM, Dan Towner wrote:

Hi all,

I have noticed the following construct appearing in some DWARF output and
I'm don't understand what it means, or whether it is actually a bug:

 .uleb128 0x1c   ;# (DIE (0x80a) DW_TAG_inlined_subroutine)
 .long 0x635;# DW_AT_abstract_origin
 .word _picoMark_LBB23  ;# DW_AT_low_pc
 .word _picoMark_LBE23  ;# DW_AT_high_pc
 .byte 0x1   ;# DW_AT_call_file
(/home/dant/Tools/Verification/Flow/standalone_fn_error.vhd)
 .byte 0xaf  ;# DW_AT_call_line
 .uleb128 0x17   ;# (DIE (0x815) DW_TAG_formal_parameter)
 .long 0x650;# DW_AT_abstract_origin
 .long _picoMark_LLST15 ;# DW_AT_location
 .uleb128 0x1c   ;# (DIE (0x81e) DW_TAG_inlined_subroutine)
 .long 0x635;# DW_AT_abstract_origin
 .word _picoMark_LBB25  ;# DW_AT_low_pc
 .word _picoMark_LBE25  ;# DW_AT_high_pc
 .byte 0x1   ;# DW_AT_call_file
(/home/dant/Tools/Verification/Flow/standalone_fn_error.vhd)
 .byte 0x47  ;# DW_AT_call_line
 .uleb128 0x17   ;# (DIE (0x829) DW_TAG_formal_parameter)
 .long 0x650;# DW_AT_abstract_origin
 .long _picoMark_LLST16 ;# DW_AT_location
 .uleb128 0x1e   ;# (DIE (0x832) DW_TAG_lexical_block)
 .word _picoMark_LBB26  ;# DW_AT_low_pc
 .word _picoMark_LBE26  ;# DW_AT_high_pc

There are two puzzling things about this little fragment. Firstly the
inlined subroutine contains another inline instance of the same subroutine
within itself (i.e., the first inlined subroutine has abstract origin
0x635, and it contains another inlined subroutine child with the same
abstract origin). This seems to imply that the subroutine is recursive,
which it isn't. Nowhere in the source code does the subroutine call
itself.

>

Secondly, the DWARF contains call site information for the two
subroutines, but the second one is simply wrong. The source line for the
supposed call site (0x47 above) is the first line of the definition of
`main', and isn't even a call site.

I can supply a test case (for the picochip port) if necessary, but I just
wanted to get an idea of whether this really is a problem, or I'm just
misinterpreting what is going on.


It's a bit difficult to tell what is going on.

Can you post a small program which creates output like this,
along with output from readelf -w or dwarfdump?

--
Michael Eagerea...@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077


Re: Partly rewriting gengtype in C++ ?

2012-03-02 Thread Laurynas Biveinis
>> I agree that such conversion will have to be done at some point, but
>> I'm not sure if a big rewrite should happen way before the rest of the
>> code will start to use gengtype-annotated C++ data structures.
>
> Wait, I don't follow.  gengtype supporting C++ data structures is
> different than writing gengtype in C++.

Unless I misunderstood it, Basile's stated reason for the C++ rewrite
is to implement C++ data structure support at the same time?

-- 
Laurynas


Re: Partly rewriting gengtype in C++ ?

2012-03-02 Thread Jakub Jelinek
On Fri, Mar 02, 2012 at 01:06:59PM -0500, Diego Novillo wrote:
> On 02/03/12 12:56 , Laurynas Biveinis wrote:
> 
> >Since no other GCC part is using C++ currently, I believe this would
> >be rather poor first module choice to convert to C++. If C++ was
> >already a non-optional requirement, then C++ conversion would be OK,
> 
> It already is.  We bootstrap in C++ mode.  I don't see a problem
> starting to move some code to C++.  Whether this is a good chunk of
> code to convert is another question.

We don't, we are only using C++ for stage2 and stage3 compilation by
default, not for stage1, so you can still bootstrap without C++ compiler.
And --disable-build-poststage1-with-cxx works just fine too.

I think it would be a bad idea if it was gengtype that started requiring
C++, if it is for something useful, perhaps (though you know my position on
it).

Jakub


Re: Partly rewriting gengtype in C++ ?

2012-03-02 Thread Basile Starynkevitch
On Fri, 2 Mar 2012 13:56:24 -0500
Diego Novillo  wrote:
> 
> > I agree that such conversion will have to be done at some point, but
> > I'm not sure if a big rewrite should happen way before the rest of the
> > code will start to use gengtype-annotated C++ data structures.
> 
> Wait, I don't follow.  gengtype supporting C++ data structures is
> different than writing gengtype in C++.

In principle I fully agree (gengtype could even be a GCC plugin -at least if we 
restrict
ourselves to hosts having a GCC-, or a MELT extension). Unfortunately, I don't 
think that
a gengtype implemented as a GCC plugin would be accepted (because it would 
require that
the compiler compiling GCC is a GCC).

I practice, gengtype is so messy today that any significant work on it (notably
support of ggc-ed vectors using C++ vectors or templates, not vec.h) requires 
to rewrite
big parts of it. Nobody really understands it very well... And its coding 
conventions are
horrible!

So in fact the two are silently related; to enhance gengtype for C++ data 
structures I
would be tempted to rewrite it in MELT (but that means a GCC plugin required to 
build GCC)
or in C++.

BTW, we could adopt a terminology: gengtype++ would be an enhanced gengtype 
able to GTY
types like C++ [GTY-ed] classes or [GTY-ed] vectors
(it is indeed an increment of gengtype,
providing extra functionality). While gengtypexx would be a rewrite of gengtype 
in C++.  

My feeling is that gengtypexx is a useful step towards gengtype++ ; another 
option would
be to make gengtype++ a GCC plugin or MELT extension, but while it is much 
simpler (it
can take advantage of all GCC infrastructure, notably all GCC C++ frontend) I 
believe it
wont be accepted any soon, because it would require GCC to be hacked with GCC 
(we could
put the generated gt-*.[ch] files inside the repository, so GCC would then 
still be
compilable by any C++03 compiler).

Cheers.
-- 
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basilestarynkevitchnet mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mine, sont seulement les miennes} ***


Re: GCC 4.7.0 Release Candidate available from gcc.gnu.org

2012-03-02 Thread Rainer Orth
Dennis Clarke  writes:

>> GCC 4.7.0 Release Candidate available from gcc.gnu.org
>>
>> The first release candidate for GCC 4.7.0 is available from
>>
>>  ftp://gcc.gnu.org/pub/gcc/snapshots/4.7.0-RC-20120302
>>
>> and shortly its mirrors.  It has been generated from SVN revision 184777.
>>
>> I have so far bootstrapped and tested the release candidate on
>> x86_64-linux.  Please test it and report any issues to bugzilla.
>>
>> If all goes well, I'd like to release 4.7.0 in about three weeks.
>
> I'll drop it on Solaris. Give it a push. Do we realy really need that
> ppl/cloog stuff? I have never seen it build and pass any tests, ever,
> even once, on Solaris with or without Sun Studio compilers or GCC or
> prayer and geek magic under a full moon.  Seriously.

Given that PPL is a C++ library, you need to build it with g++ since
Studio CC and g++ aren't ABI-compatible.

That said, I'm using them in my Solaris GCC bootstraps, although it
admittedly took some effort to build initially and using it requires you
to jump through hoops to get the configure options right.  I agree that
this is an incredible mess right now.

> So really, it that stuff a "need" or a "nice to have" ?

install.texi documents them as optional:

Necessary to build GCC with the Graphite loop optimizations.

but that sentence could probably be clarified.

Rainer

-- 
-
Rainer Orth, Center for Biotechnology, Bielefeld University


Re: GCC 4.7.0 Release Candidate available from gcc.gnu.org

2012-03-02 Thread Dennis Clarke
>>> If all goes well, I'd like to release 4.7.0 in about three weeks.
>>
>> I'll drop it on Solaris. Give it a push. Do we realy really need that
>> ppl/cloog stuff? I have never seen it build and pass any tests, ever,
>> even once, on Solaris with or without Sun Studio compilers or GCC or
>> prayer and geek magic under a full moon.  Seriously.
>
> Given that PPL is a C++ library, you need to build it with g++ since
> Studio CC and g++ aren't ABI-compatible.
>
> That said, I'm using them in my Solaris GCC bootstraps, although it
> admittedly took some effort to build initially and using it requires you
> to jump through hoops to get the configure options right.  I agree that
> this is an incredible mess right now.

I found it too be entirely too much work to be trusted and considered
stable long term. So therefore I generally kick ppl/cloog to the curb
and focus on core c,c++ gfortan and ada with objc thrown in without
the ppl/cloog bits at all. I have been very happy with my results and
the recent 4.6.3 RC was the most clean and pure results I have seen
to date, on Solaris 8 old Sparc no less :

http://gcc.gnu.org/ml/gcc-testresults/2012-02/msg02786.html

>> So really, it that stuff a "need" or a "nice to have" ?
>
> install.texi documents them as optional:
>
> Necessary to build GCC with the Graphite loop optimizations.
>
> but that sentence could probably be clarified.

Would be cool to say "entirely optional".

dc

-- 
--
http://pgp.mit.edu:11371/pks/lookup?op=vindex&search=0x1D936C72FA35B44B
+-+---+
| Dennis Clarke   | Solaris and Linux and Open Source |
| dcla...@blastwave.org   | Respect for open standards.   |
+-+---+



Re: GCC 4.7.0 Release Candidate available from gcc.gnu.org

2012-03-02 Thread Dennis Clarke

> Dennis Clarke  writes:
>
>>> GCC 4.7.0 Release Candidate available from gcc.gnu.org
>>>
>>> The first release candidate for GCC 4.7.0 is available from
>>>
>>>  ftp://gcc.gnu.org/pub/gcc/snapshots/4.7.0-RC-20120302
>>>
>>> and shortly its mirrors.  It has been generated from SVN revision 184777.
>>>
>>> I have so far bootstrapped and tested the release candidate on
>>> x86_64-linux.  Please test it and report any issues to bugzilla.
>>>
>>> If all goes well, I'd like to release 4.7.0 in about three weeks.
>>
>> I'll drop it on Solaris. Give it a push. Do we realy really need that
>> ppl/cloog stuff? I have never seen it build and pass any tests, ever,
>> even once, on Solaris with or without Sun Studio compilers or GCC or
>> prayer and geek magic under a full moon.  Seriously.
>
> Given that PPL is a C++ library, you need to build it with g++ since
> Studio CC and g++ aren't ABI-compatible.
>
> That said, I'm using them in my Solaris GCC bootstraps, although it
> admittedly took some effort to build initially and using it requires you
> to jump through hoops to get the configure options right.  I agree that
> this is an incredible mess right now.
>
>> So really, it that stuff a "need" or a "nice to have" ?
>
> install.texi documents them as optional:
>
> Necessary to build GCC with the Graphite loop optimizations.
>
> but that sentence could probably be clarified.
>
>   Rainer

Well this topic is in play for me right now and I'd love your input
also.

I just finished a prep for bootstrapping gcc 4.6.3 and 4.7.0-RC1 on
Solaris 8 sparc and i386 here. One of the initial steps is to ensure
we have gmp/mpfr/mpc flawless which I do :


.
.
.
PASS: tsub_ui
PASS: ttan
PASS: ttanh
PASS: tui_div
PASS: tui_ui_sub
GMP: include 5.0.4, lib 5.0.4
MPFR: include 3.1.0, lib 3.1.0
MPC: include 0.9, lib 0.9
PASS: tget_version
===
All 60 tests passed
===
gmake[2]: Leaving directory `/opt/bw/src/mpc-0.9-SunOS5.8-i386.001/tests'
gmake[1]: Leaving directory `/opt/bw/src/mpc-0.9-SunOS5.8-i386.001/tests'
Making check in doc
gmake[1]: Entering directory `/opt/bw/src/mpc-0.9-SunOS5.8-i386.001/doc'
gmake[1]: Nothing to be done for `check'.
gmake[1]: Leaving directory `/opt/bw/src/mpc-0.9-SunOS5.8-i386.001/doc'
gmake[1]: Entering directory `/opt/bw/src/mpc-0.9-SunOS5.8-i386.001'
gmake[1]: Leaving directory `/opt/bw/src/mpc-0.9-SunOS5.8-i386.001'
$
$ uname -a
SunOS titan 5.8 Generic_127722-03 i86pc i386 i86pc
$ cat /etc/release
   Solaris 8 2/02 s28x_u7wos_08a INTEL
   Copyright 2002 Sun Microsystems, Inc.  All Rights Reserved.
   Assembled 18 December 2001
$ psrinfo -v
Status of virtual processor 0 as of: 03/02/12 20:25:50
  on-line since 04/28/11 17:39:44.
  The i386 processor operates at 400 MHz,
and has an i387 compatible floating point processor.
Status of virtual processor 1 as of: 03/02/12 20:25:50
  on-line since 04/28/11 17:39:48.
  The i386 processor operates at 400 MHz,
and has an i387 compatible floating point processor.
$

So I have had no issues with old Solaris 8 and Sparc32 or Sparc 64-bit
regardless if it is Sparc64 Fujitsu, Niagara T2 or old UltraSparc II.
I know I have to compile for x86_64 on Solaris 10. That is a given.

The question on my mind that requires ( or begs ) your input is should
I continue to trust the golden rule of the ABI and build, test and
release based on Solaris 8?  I don't really want to do the same
process over and over on Solaris 10 or 11 when I *know* that old
Solaris 8 is rock solid stable and the baseline ABI to be used.

Your thoughts ?

Dennis



-- 
--
http://pgp.mit.edu:11371/pks/lookup?op=vindex&search=0x1D936C72FA35B44B
+-+---+
| Dennis Clarke   | Solaris and Linux and Open Source |
| dcla...@blastwave.org   | Respect for open standards.   |
+-+---+



Re: GCC: OpenMP posix pthread

2012-03-02 Thread Erotavlas_turbo
Hi,

I have found the solution i.e. the developers of GCC have found it. The latest 
version of GCC 4.6.3 can be used with Helgrind. See here for more detail 
http://gcc.gnu.org/onlinedocs/libstdc++/manual/debug.html#debug.races


Best Regards

Salvatore




gcc-4.6-20120302 is now available

2012-03-02 Thread gccadmin
Snapshot gcc-4.6-20120302 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/4.6-20120302/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 4.6 SVN branch
with the following options: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch 
revision 184837

You'll find:

 gcc-4.6-20120302.tar.bz2 Complete GCC

  MD5=00581c9995b24aa6817034e48f72db28
  SHA1=562c515dc108c1a868152b47280685a8bcc7f0dd

Diffs from 4.6-20120224 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-4.6
link is updated and a message is sent to the gcc list.  Please do not use
a snapshot before it has been announced that way.


Re: random commentary on -fsplit-stack (and a bug report)

2012-03-02 Thread Jay Freeman (saurik)
> > "Jay Freeman (saurik)"  writes:
> "Ian Lance Taylor"  wrote:

> > After getting more sleep, I realize that this problem is actually much
> > more endemic than I had even previously thought. Most any vaguely
> > object-oriented library is going to have tons of function pointers in
> > it, and you often interact solely with those function pointers (as in,
> > you have no actual symbol references anywhere). A simple example: in
> > the case of C++, any call to a non-split-stack virtual function will
> > fail.
> 
> Certainly true in principle, but unlikely in practice.  Why would you
> compile part of your C++ program with split-stack and part without?
> Implementing child classes that define virtual methods for classes
> defined in a precompiled library seems like an unusual case to me.

That is actually incredible common, due to object-oriented GUI libraries such 
as Qt or MFC. Most development for systems like Symbian, or kernel drivers for 
Darwin (and I personally believe split stacks could be a great boon in kernel 
development) are also going to involve subclassing code compiled by someone 
else and overriding virtual methods. The Qt "Getting Started" one-pager 
actually does this.

That said, the specific situation I was describing was even simpler: just using 
a library compiled by someone else, not subclassing it. If you call a virtual 
method it will be a call via a function pointer without a symbol reference. Any 
and all C++ language bindings are thereby off-limits to code that has been 
compiled with -fsplit-stack until the function pointer issue is addressed.

> The abstraction break exists not because I thought it was a good idea,
> but because I couldn't see any other way to do it.  The split-stack
> system needs to work in a world with precompiled libraries and where
> people will not change their source code.  Any approach that requires
> people to rebuild the world, or to edit their source code, is a
> non-starter for me.  I don't mind if there is some more efficient
> mechanism which works if we require those steps, but I wanted a system
> that would work where we do not require them.  I'm willing to impose
> restrictions like "you must compile all your source code with
> -fsplit-stack;" I'm not willing to say "you must not use precompiled
> libraries."

I feel like there was some misunderstanding here, mostly because I agree with 
your constraints. ;P That said, I feel the current implementation does not quit 
provide this dream: the function-pointer restriction alone makes it impossible 
to use numerous standard precompiled libraries. FWIW, though: I certainly do 
not want to go in a direction that requires /more/ intervention than I feel 
like I am having to make currently, and I agree that it is possible with none 
and that should be the target.

> > Part of me (and I realize that this causes other tradeoffs, and I'm
> > therefore not even recommending it: more just musing) feels like the
> > notion of "supports split stack" is more of a calling convention. In
> > the same way that gcc currently supports regparm, stdcall, thiscall,
> > fastcall... it seems like it might simply be a new attribute (probably
> > orthogonal to the calling convention) a function can have (and would
> > not have by default): splitcall.
> 
> I'm fine with that, but it requires a source code change, so I want the
> system to work without it.

Accepted. I believe that the extension of this idea can actually be pulled off 
with compiler flags and a feature I'm calling "fallback symbols" in the linker, 
which the linker may already support (although a long time ago I spent a lot of 
time looking at the linker and don't remember it), but I think would be easy to 
add and something a lot of other projects an interesting tool), but I will not 
mention this idea again unless I have a solid proposal that actually manages to 
accomplish that.

> > Actually, thinking about it more: it seems like 99% of these problems
> > could be solved by providing a second symbol definition for the
> > split-stack prologue and binding that as part of the type
> > signature. So, you could either call the "original implementation" of
> > a function using its normal symbol, or you could call the split-stack
> > prologue version of the same function using one that had been mangled
> > with some prefix.
...
> It's an interesting idea, but my immediate reaction is to ask how this
> helps us in the world where we do not require source code changes.

So, imagine a more general linker feature (again, one which may already exist) 
that allowed you to have a "low-priority symbol" in your object file. As in, 
one which if you find a copy elsewhere the linker will use that one, but if it 
doesn't then it will "fall back" to using the one defined locally in this 
object file. I think that this fairly general mechanism is easy to specify and 
can probably be used for all sorts of other tasks that people may come up with; 
it also is not architec