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

2010-12-11 Thread ac...@cruxppc.org


Dennis Clarke-2 wrote:
> 
> 
>> On Wed, Dec 08, 2010 at 02:42:56PM +0100, Richard Guenther wrote:
>>> 
>> This was built against ppl 0.10.2 and cloog 0.15.10.
> 
> Have you tried a bootstrap with neither ppl nor cloog ?  I have yet to see
> their value and I generally exclude them. This results ( thus far ) in
> nice clean bootstrap builds.
> 

i sucessfully bootstraped on  powerpc64-unknown-linux-gnu and 
powerpc-unknown-linux-gnu but 
as i've ppl-0.11 i still need this configure hack:
sed -i "/ppl_minor_version=/s#10#11#" $name-$version/configure 


thanks,
--nico

--
GNU/Linux on Power Architecture
CRUX PPC - http://cruxppc.org/

-- 
View this message in context: 
http://old.nabble.com/GCC-4.5.2-Release-Candidate-available-from-gcc.gnu.org-tp30405453p30432287.html
Sent from the gcc - Dev mailing list archive at Nabble.com.



Re: Tree checking failure in jc1

2010-12-11 Thread Dave Korn
On 10/12/2010 20:49, Dave Korn wrote:

>   I found a couple of new FAILs in my latest libjava testrun:
> 
>> FAIL: newarray_overflow -O3 compilation from source
>> FAIL: newarray_overflow -O3 -findirect-dispatch compilation from source
> 
>   These turn out to be tree checking failures:
> 
>> In file included from :3:0:
>> newarray_overflow.java:20:0: internal compiler error: tree check: expected 
>> class
>>  'type', have 'declaration' (function_decl) in put_decl_node, at 
>> java/lang.c:405

  This turned out to be a second bug, triggered by -fdump-tree-all attempting
to output some line of mangled gimple.  Without that flag, or ...

> put_decl_node (TREE_CODE (DECL_CONTEXT (node)) == FUNCTION_DECL
>? DECL_CONTEXT (node)
>: TYPE_NAME (DECL_CONTEXT (node)),
>verbosity);

... with the suggested fix, compilation proceeds to the site of the actual
crash that occurred in the testsuite run: a segfault in 
gimple.c#walk_gimple_op():

> Program received signal SIGSEGV, Segmentation fault.
> 0x007cfdbe in walk_gimple_op (stmt=0x7fe106e0, callback_op=0x4a0ef0 
>  .265801>, wi=0x326c554) at /gnu/gcc/gcc/gcc/gimple.c:2841
> 2841  return !AGGREGATE_TYPE_P (type);
> (gdb) call debug_gimple_stmt (stmt)
> newarray_overflow.int_check.__builtin_prefetch (D.1284_85, 0, );
> 
> (gdb)

  I think this is the same as PR29710(*) "gnat ICEs on -fprefetch-loop-arrays
-O1", so I'll put the rest of my findings there.  Note that weird missing
third argument: it turns out that integer_three_node hasn't been initialised
at the time that issue_prefetch_ref() attempts to pass it to 
gimple_build_call().

cheers,
  DaveK
-- 
(*) - http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29710



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

2010-12-11 Thread Dennis Clarke

>
>
> Dennis Clarke-2 wrote:
>>
>>
>>> On Wed, Dec 08, 2010 at 02:42:56PM +0100, Richard Guenther wrote:
 
>>> This was built against ppl 0.10.2 and cloog 0.15.10.
>>
>> Have you tried a bootstrap with neither ppl nor cloog ?  I have yet to
>> see
>> their value and I generally exclude them. This results ( thus far ) in
>> nice clean bootstrap builds.
>>
>
> i sucessfully bootstraped on  powerpc64-unknown-linux-gnu and
> powerpc-unknown-linux-gnu but
> as i've ppl-0.11 i still need this configure hack:
> sed -i "/ppl_minor_version=/s#10#11#" $name-$version/configure
>

excellent. I love PowerPC.  :-)

On other fronts I have been working for days to get ppl to compile and
pass its own basic testsuite on Solaris ( i386 and Sparc ) and thus far
all attempts have failed. I have been in contact with Roberto Bagnara and
I have his next release candidate on my systems ( at Blastwave.org Inc. )
and I am sure we will work it out and then get GCC 4.5.2 ( RC or otherwise
) up and running. This will be a week of work at least however. :-\

-- 
Dennis Clarke
dcla...@opensolaris.ca  <- Email related to the open source Solaris
dcla...@blastwave.org   <- Email related to open source for Solaris




GNU Modula-2 version 1.0

2010-12-11 Thread Gaius Mulley

Hi,

GNU Modula-2 1.0 has been released.  Full details on how to download
gm2 can be found on the homepage www.nongnu.org/gm2.  It successfully
passes all regression tests on both the x86_32 and x86_64 Debian
GNU/Linux platforms, for details about other ports please also see the
homepage.

A huge thanks to all the numerous people that have supported this
project over the last decade.

regards,
Gaius


gcc-4.6-20101211 is now available

2010-12-11 Thread gccadmin
Snapshot gcc-4.6-20101211 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/4.6-20101211/
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/trunk revision 167715

You'll find:

 gcc-4.6-20101211.tar.bz2 Complete GCC (includes all of below)

  MD5=93d2fd229589cdffe6bf28666c02d12f
  SHA1=c113e28a19e00e9f59c8f516c8586b3696475b2f

 gcc-core-4.6-20101211.tar.bz2C front end and core compiler

  MD5=5be8c1ffccd4d80880397a6f2162ae08
  SHA1=e06e10432dceb3b8f02dda1eca962f68ec0573c4

 gcc-ada-4.6-20101211.tar.bz2 Ada front end and runtime

  MD5=b92b88c18e7fe27f19dfbbd3fc70c997
  SHA1=25e5309792ef979532b5dacbe66afcfcd29e1195

 gcc-fortran-4.6-20101211.tar.bz2 Fortran front end and runtime

  MD5=a095a019a97e1337eac2cdc89c6d120d
  SHA1=2233c1ff84bcad458f330cafeb8b0ac83ce9b632

 gcc-g++-4.6-20101211.tar.bz2 C++ front end and runtime

  MD5=d8feb506fda676fa01b39282ea7fc1a5
  SHA1=aaa3573d1bf974e251a3a59f1236e0ccec6b6a07

 gcc-java-4.6-20101211.tar.bz2Java front end and runtime

  MD5=8ecbc24d1e126e258d75549eadc715dc
  SHA1=05abbeab9128afc84b980da3016bb226f087c90d

 gcc-objc-4.6-20101211.tar.bz2Objective-C front end and runtime

  MD5=91c9fdafb105658be8fdc10d9df1e792
  SHA1=0f5af39fbf464e4ff33dad068af11c7fc81865bf

 gcc-testsuite-4.6-20101211.tar.bz2   The GCC testsuite

  MD5=b4ec63c6d97a18ad4902350951e9aa24
  SHA1=68891058c84a0c170ca0cd205f54ee34999ff8eb

Diffs from 4.6-20101204 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.


Is init_priority file scope or global scope?

2010-12-11 Thread H.J. Lu
Hi,

Using .init_array section on Linux/x86 raised a question on
init_priority.  GCC manual says

`init_priority (PRIORITY)'
 In Standard C++, objects defined at namespace scope are guaranteed
 to be initialized in an order in strict accordance with that of
 their definitions _in a given translation unit_.  No guarantee is
 made for initializations across translation units.  However, GNU
 C++ allows users to control the order of initialization of objects
 defined at namespace scope with the `init_priority' attribute by
 specifying a relative PRIORITY, a constant integral expression
 currently bounded between 101 and 65535 inclusive.  Lower numbers
 indicate a higher priority.

 In the following example, `A' would normally be created before
 `B', but the `init_priority' attribute has reversed that order:

  Some_Class  A  __attribute__ ((init_priority (2000)));
  Some_Class  B  __attribute__ ((init_priority (543)));

 Note that the particular values of PRIORITY do not matter; only
 their relative ordering.

Is init_priority file scope or global scope? I consider init_priority is
file scope.  Is that a correct assumption?

-- 
H.J.


GCC 4.5.2 Release Candidate : WARNING: program timed out.

2010-12-11 Thread Dennis Clarke
While running the testsuite I see a number of warnings related to
timeouts.  Is there some way to avoid these annoyances?

Thus :

=== gcc tests ===

Schedule of variations:
unix

Running target unix
Using /usr/local/share/dejagnu/baseboards/unix.exp as board description
file for target.
Using /usr/local/share/dejagnu/config/unix.exp as generic interface file
for target.
Using
/export/medusa/dclarke/build/GCC/4.5.2-RC/RC-20101208/gcc/testsuite/config/default.exp
as tool-and-target-specific interface file.
Running
/export/medusa/dclarke/build/GCC/4.5.2-RC/RC-20101208/gcc/testsuite/gcc.c-torture/compile/compile.exp
...
WARNING: program timed out.
FAIL: gcc.c-torture/compile/pr46534.c  -O0  (test for excess errors)
WARNING: program timed out.
FAIL: gcc.c-torture/compile/pr46534.c  -O1  (test for excess errors)
WARNING: program timed out.
FAIL: gcc.c-torture/compile/pr46534.c  -O2  (test for excess errors)
WARNING: program timed out.
FAIL: gcc.c-torture/compile/pr46534.c  -O3 -fomit-frame-pointer  (test for
excess errors)
WARNING: program timed out.
FAIL: gcc.c-torture/compile/pr46534.c  -O3 -g  (test for excess errors)
WARNING: program timed out.
FAIL: gcc.c-torture/compile/pr46534.c  -Os  (test for excess errors)
WARNING: program timed out.
FAIL: gcc.c-torture/compile/pr46534.c  -O2 -flto  (test for excess errors)
WARNING: program timed out.
FAIL: gcc.c-torture/compile/pr46534.c  -O2 -fwhopr  (test for excess errors)
.
.
.

-- 
Dennis Clarke
dcla...@opensolaris.ca  <- Email related to the open source Solaris
dcla...@blastwave.org   <- Email related to open source for Solaris




Re: Is init_priority file scope or global scope?

2010-12-11 Thread Dave Korn
On 12/12/2010 06:54, H.J. Lu wrote:

[ off-list, but it's not personal, so let's Cc the list back in, someone might
find this explanation of the mechanism useful in the archives. ]

> Can you check the assembly output? Since
> 
> 
> Note that the particular values of PRIORITY do not matter; only
> their relative ordering.
> ---
> 
> on Linux, the numeric string in section name isn't the same as
> PRIORITY in source file. That means on Linux, the order
> of .ctors sections in 2 files isn't the relative ordering of PRIORITY
> of those 2 files.

  Well, at least on PE-COFF, the numeric string is (65536-priority).  It is
zero padded to five digits, so that the linker's alphabetical sort effectively
becomes a numeric sort, and the reason for the inverting the numeric order of
priorities is because .ctors gets read backwards at startup.

  I did actually check the assembly somewhere between writing "IIRC" and
finishing my email as it happens.  For a testcase based on your example:

class Some_Class {
  int x;
public:
  Some_Class();
  ~Some_Class();
};

Some_Class  A  __attribute__ ((init_priority (2000)));
Some_Class  B  __attribute__ ((init_priority (543)));

... what we get is a static_initialization_and_destruction function that takes
the init priority level as an argument and constructs or destroys (per a
second argument) everything at that level only:

.file   "clas.c"
.globl  _A
.bss
.align 4
_A:
.space 4
.globl  _B
.align 4
_B:
.space 4
.text
.def__Z41__static_initialization_and_destruction_0ii;   .scl
3;  .type   32; .endef
__Z41__static_initialization_and_destruction_0ii:
LFB0:
.cfi_startproc
pushl   %ebp
.cfi_def_cfa_offset 8
.cfi_offset 5, -8
movl%esp, %ebp
.cfi_def_cfa_register 5
subl$24, %esp
cmpl$1, 8(%ebp)
jne L2
cmpl$2000, 12(%ebp)
^^^
jne L3
^^
movl$_A, (%esp)
call__ZN10Some_ClassC1Ev
L3:
cmpl$543, 12(%ebp)
^^
jne L2
^^
movl$_B, (%esp)
call__ZN10Some_ClassC1Ev
L2:
cmpl$0, 8(%ebp)
jne L1
cmpl$543, 12(%ebp)
^^
jne L5
^^
movl$_B, (%esp)
call__ZN10Some_ClassD1Ev
L5:
cmpl$2000, 12(%ebp)
^^^
jne L1
^^
movl$_A, (%esp)
call__ZN10Some_ClassD1Ev
L1:
leave
.cfi_restore 5
.cfi_def_cfa 4, 4
ret
.cfi_endproc
LFE0:


  Then we have __GLOBAL__[I/D] functions for each priority level, which load
the appropriate priority and construct/destruct argument and call that:

.def__GLOBAL__I.00543_A;.scl3;  .type   32; .endef
__GLOBAL__I.00543_A:
LFB1:
.cfi_startproc
pushl   %ebp
.cfi_def_cfa_offset 8
.cfi_offset 5, -8
movl%esp, %ebp
.cfi_def_cfa_register 5
subl$24, %esp
movl$543, 4(%esp)
^
movl$1, (%esp)
^^
call__Z41__static_initialization_and_destruction_0ii
leave
.cfi_restore 5
.cfi_def_cfa 4, 4
ret
.cfi_endproc
LFE1:

.def__GLOBAL__D.00543_A;.scl3;  .type   32; .endef
__GLOBAL__D.00543_A:
LFB2:
.cfi_startproc
pushl   %ebp
.cfi_def_cfa_offset 8
.cfi_offset 5, -8
movl%esp, %ebp
.cfi_def_cfa_register 5
subl$24, %esp
movl$543, 4(%esp)
^
movl$0, (%esp)
^^
call__Z41__static_initialization_and_destruction_0ii
leave
.cfi_restore 5
.cfi_def_cfa 4, 4
ret
.cfi_endproc
LFE2:

.def__GLOBAL__I.02000_A;.scl3;  .type   32; .endef
__GLOBAL__I.02000_A:
LFB3:
.cfi_startproc
pushl   %ebp
.cfi_def_cfa_offset 8
.cfi_offset 5, -8
movl%esp, %ebp
.cfi_def_cfa_register 5
subl$24, %esp
movl$2000, 4(%esp)
^^
movl$1, (%esp)
^^
call__Z41__static_initialization_and_destruction_0ii
leave
.cfi_restore 5
.cfi_def_cfa 4, 4
ret
.cfi_endproc
LFE3:

.def__GLOBAL__D.02000_A;.scl3;  .type   32; .endef
__GLOBAL__D.02000_A:
LFB4:
.cfi_startproc
pushl   %ebp
.cfi_def_cfa_offset 8
.cfi_offset 5, -8
movl%esp, %ebp
.cfi_def_cfa_register 5
subl$24, %esp
movl$2000, 4(%esp)
^^

Re: Is init_priority file scope or global scope?

2010-12-11 Thread Dave Korn
On 12/12/2010 00:47, H.J. Lu wrote:
> Hi,
> 
> Using .init_array section on Linux/x86 raised a question on
> init_priority.  GCC manual says
> 
> `init_priority (PRIORITY)'
>  In Standard C++, objects defined at namespace scope are guaranteed
>  to be initialized in an order in strict accordance with that of
>  their definitions _in a given translation unit_.  No guarantee is
>  made for initializations across translation units.  However, GNU
>  C++ allows users to control the order of initialization of objects
>  defined at namespace scope with the `init_priority' attribute by
>  specifying a relative PRIORITY, a constant integral expression
>  currently bounded between 101 and 65535 inclusive.  Lower numbers
>  indicate a higher priority.
> 
>  In the following example, `A' would normally be created before
>  `B', but the `init_priority' attribute has reversed that order:
> 
>   Some_Class  A  __attribute__ ((init_priority (2000)));
>   Some_Class  B  __attribute__ ((init_priority (543)));
> 
>  Note that the particular values of PRIORITY do not matter; only
>  their relative ordering.
> 
> Is init_priority file scope or global scope? I consider init_priority is
> file scope.  Is that a correct assumption?
> 

  At least on PE-COFF, it's implemented by appending a numeric string to the
.ctor/.dtor section name for the object's __GLOBAL__[CD] entries and letting
them all get sorted by the linker into numeric order in the final output
.ctors/.dtors table, so it ought to be global.


cheers,
  DaveK