Re: Patch pinging

2010-06-08 Thread Jonathan Wakely
On 8 June 2010 05:42, Basile Starynkevitch wrote:
> On Mon, 2010-06-07 at 15:05 -0600, Jeff Law wrote:
>> On 06/07/10 14:31, Ian Lance Taylor wrote:
>> > The gcc project currently has a problem: when people who are not
>> > regular gcc developers send in a patch, those patches often get
>> > dropped.  They get dropped because they do not get reviewed, and they
>> > get dropped because after review they do not get committed.  This
>> > discourages new developers and it means that the gcc project does not
>> > move as fast as it could.
>> >
>> >
>> So perhaps the thing to do is somehow separate patches from regular
>> contributors and irregular contributors.  A relatively easy way to do
>> this would be for a regular contributor to include a keyword in their
>> message to gcc-patches to mark the thread as not needing 3rd party
>> tracking/pings.
>
>
> I am not sure what does that mean in practice. I am only a write after
> approval contributor, so I cannot formally approve any patch (except
> perhaps to my MELT branch). However, I definitely can follow some
> patches (and I even do have an intern, Jeremie Salvucci, who did all the
> legal framework and wants to become a GCC contributor).
>
> It seems that perhaps you are suggesting a status in between reviewers &
> W.A.A. contributors.

No, I think you misunderstood.  The keyword would only indicate that
the patch author does not need anyone to commit it for them.  That
doesn't change the approval process.  It would tell NightStrike there
is no need to track the patch.


gc-improv code merged to mainline, trunk is still frozen

2010-06-08 Thread Laurynas Biveinis
Hi all,

I've committed the gc-improv code to trunk. The testsuite is still
running, however bootstrap went fine on x86_64/linux. Due to nature of
the changes, any problems should show up as bootstrap compile errors
and on x86_64/linux I don't expect them.

The problems are more (although IMHO not much) likely to crop up in
other backends, where I did testing on the branch on the compile farm
a couple of months ago and in the backends where I could only verify
that cross-compiler still builds.

So feel free now to try to bootstrap and regtest the trunk on your
favorite architecture to see if anything breaks.

Thanks!
-- 
Laurynas


Re: Patch pinging

2010-06-08 Thread Eric Botcazou
> Reading gcc-cvs, or ChangeLogs, or other things like that is just way
> too much time.

What about writing a small script that parses the main ChangeLogs?  They are 
supposed to be uniformly formatted.  And ping messages shouldn't contain all 
the junk of previous messages, just the ChangeLog (and optionally the URL).

-- 
Eric Botcazou


Re: Patch pinging

2010-06-08 Thread Paolo Bonzini

On 06/08/2010 06:42 AM, Basile Starynkevitch wrote:

On Mon, 2010-06-07 at 15:05 -0600, Jeff Law wrote:

So perhaps the thing to do is somehow separate patches from regular
contributors and irregular contributors.  A relatively easy way to do
this would be for a regular contributor to include a keyword in their
message to gcc-patches to mark the thread as not needing 3rd party
tracking/pings.


It seems that perhaps you are suggesting a status in between reviewers&
W.A.A. contributors.


I don't understand.  WAA rights definitely allow you to shepherd and 
commit patches from people without svn access, even for patches you 
can't approve.


Paolo


Re: Patch pinging

2010-06-08 Thread Manuel López-Ibáñez
On 8 June 2010 07:43, Chiheng Xu  wrote:
> On Tue, Jun 8, 2010 at 9:14 AM, Ben White  wrote:
>> Would a modestly modified copy of Bugzilla be workable for that something?
>> I.E. Patchzilla?
>
> Think about mercurial or git.  Every one can commit on his/her own
> local repository, and "publish" his/her repository.  Every one can
> pull other people's changes into his/her own repository, and can
> selectively merge interesting/valuable changes. Every patch have it's
> own branch. So called "approved patches" will be those patches whose
> branches have been merged. Then, you only need to think whether or not
> merge the branches the patches reside.
>
> If you use mercurial or git, every change will not be lost, every one
> can review and selectively merge any branch on his/her convenience.

That would only make matters worse in GCC, because reviewers are not
generally interested on spending time merging anyone's else changes.
What we are discussion here is a way to not lose track of the work of
sporadic contributors so they don't feel ignored by the GCC project.

Cheers,

Manuel.


Re: Patch pinging

2010-06-08 Thread Manuel López-Ibáñez
On 8 June 2010 10:43, Paolo Bonzini  wrote:
> On 06/08/2010 06:42 AM, Basile Starynkevitch wrote:
>>
>> On Mon, 2010-06-07 at 15:05 -0600, Jeff Law wrote:
>>>
>>> So perhaps the thing to do is somehow separate patches from regular
>>> contributors and irregular contributors.  A relatively easy way to do
>>> this would be for a regular contributor to include a keyword in their
>>> message to gcc-patches to mark the thread as not needing 3rd party
>>> tracking/pings.
>>
>> It seems that perhaps you are suggesting a status in between reviewers&
>> W.A.A. contributors.
>
> I don't understand.  WAA rights definitely allow you to shepherd and commit
> patches from people without svn access, even for patches you can't approve.

And basile (and other WAA contributors), this would a nice
contribution. Asking people that do not appear to have access to svn
whether you want to commit their patches for them. And keeping them in
the loop (by showing them the commit) soy they feel within the
community and not outside of it.

Cheers,

Manuel.


Re: Patch pinging

2010-06-08 Thread Manuel López-Ibáñez
On 8 June 2010 11:17, Manuel López-Ibáñez  wrote:
> On 8 June 2010 10:43, Paolo Bonzini  wrote:
>> On 06/08/2010 06:42 AM, Basile Starynkevitch wrote:
>>>
>>> On Mon, 2010-06-07 at 15:05 -0600, Jeff Law wrote:

 So perhaps the thing to do is somehow separate patches from regular
 contributors and irregular contributors.  A relatively easy way to do
 this would be for a regular contributor to include a keyword in their
 message to gcc-patches to mark the thread as not needing 3rd party
 tracking/pings.
>>>
>>> It seems that perhaps you are suggesting a status in between reviewers&
>>> W.A.A. contributors.
>>
>> I don't understand.  WAA rights definitely allow you to shepherd and commit
>> patches from people without svn access, even for patches you can't approve.
>
> And basile (and other WAA contributors), this would a nice
> contribution. Asking people that do not appear to have access to svn
> whether you want to commit their patches for them. And keeping them in

It should say: "whether they want you to commit their patches for them."

Cheers,

Manuel.


Pseudo frame pointer register in assembly code

2010-06-08 Thread Naveen H. S
Hi,

We have been implementing GCC port for a new target.

The FRAME_POINTER_REGNUM is defined a pseudo register in header file.
I am using the following macros in header file to eliminate the pseudo
arg pointer and frame pointer.
However, there are some instances of frame pointer in the assembly code.

Currently, I have modified "GO_IF_LEGITIMATE_ADDRESS" in C file to 
eliminate these register references in assembly code. However, there
are still some references found.

Please let me know if there is anything else to be defined to remove
these pseudo instances.

The following chunk of code is used in header file to eliminate pseudo
registers.
===
#define FRAME_POINTER_REQUIRED 0

#define ELIMINABLE_REGS \
 {{ARG_POINTER_REGNUM, STACK_POINTER_REGNUM},   \
  {ARG_POINTER_REGNUM, FRAME_POINTER_REGNUM},  \
  {FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM}}

#define CAN_ELIMINATE(FROM, TO) (1)

#define INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET)\
{   \
  if ((FROM) == FRAME_POINTER_REGNUM)   \
(OFFSET) = ( STACK_POINTER_OFFSET   \
 + crtl->outgoing_args_size );   \
  else if ((FROM) == ARG_POINTER_REGNUM)\
(OFFSET) = ( STACK_POINTER_OFFSET   \
 + xxx_compute_frame_size (get_frame_size (),   \
   (long long *)0, (int*)0));   \
  else  \
gcc_unreachable (); \
}
===

Thanks & Regards,
Naveen.H.S



Re: gc-improv code merged to mainline, trunk is still frozen

2010-06-08 Thread Laurynas Biveinis
On x86_64/linux, the merge does not cause any new testsuite
regressions, except the fact that two new testcases were added during
the freeze:

gfortran.dg/proc_ptr_27.f90
g++.dg/cpp0x/decltype23.C

So now I am more or less done with testing, and I am waiting for any
complaints :)

-- 
Laurynas


Re: Patch pinging

2010-06-08 Thread Jonathan Wakely
On 7 June 2010 22:43, Ian Lance Taylor wrote:
>
> The patch tracker (http://gcc.gnu.org/wiki/GCC_Patch_Tracking) is not
> currently operating.
>
> Would anybody like to volunteer to get it working again?

I'm not volunteering, but I might look into it one day.  I already
have too little spare time for my libstdc++ (and C++ committee)
commitments, so it won't be soon.

If dberlin doesn't still have the code, it shouldn't be too hard to
reimplement, assuming the same model is desirable.

Since I wouldn't fancy setting up a mailbox, a script which
periodically crawls the gcc-patches archive might suffice. Finding
:ADDPATCH xxx: messages would be easy. :REVIEWMAIL: messages include
the In-Reply-To in the form of an  comment in the
HTML, the last such comment seems to be the direct ancestor.
:REVIEWURL url: mails would obviously work, the url identifies the
message in the archive. :REVIEWID id: messages would work too, as the
id is known to the patch tracker.

It wouldn't need a database, a structured file of some sort would do,
and a CGI script which parsed that could produce an HTML page for
viewing.

Just a simple matter of programming ;)


RE: externally_visible and resoultion file

2010-06-08 Thread Bingfeng Mei
Hi, 
Sorry for coming back to this issue after a while. I am still puzzled
by this. The following are two test files:

a.c

#include 
#include 
extern int foo(int);
void bar() 
{
  printf("bar\n");
}  
extern int src[], dst[];
int vv;
int main()
{ 
  int ret;
  vv = 12; 
  ret = foo(20);
  memcpy(dst, src, 100);
  return ret + 3;
}  

b.c 
#include 
int src[100];
int dst[100];
extern int vv;
extern void bar();
int foo(int c)
{
  printf("Hello world: %d\n", c);
  bar();
  return 1000 + vv;
}

I compiled with following steps
~/work/install-x86/bin/gcc -flto a.c -O2 -c
~/work/install-x86/bin/gcc b.c -O2 -c
ar cru libb.a b.o
~/work/install-x86/bin/gcc -flto a.o -L. -lb -O2 -fuse-linker-plugin -o f 
-fwhole-program -save-temps

Since you both mentioned that resolution file is not used to replace 
externally_visible attribute yet, 
I expect there will be link errors regarding both vv and bar. Somehow, GCC 
doesn't complain at all.
However, looking at generated assembly code, GCC produces wrong code for 
calling bar, and vv is 
linked correctly though. 

00400510 :
  400510:   48 83 ec 08 sub$0x8,%rsp
  400514:   89 fe   mov%edi,%esi
  400516:   31 c0   xor%eax,%eax
  400518:   bf 1c 06 40 00  mov$0x40061c,%edi
  40051d:   e8 56 01 00 00  callq  400678 
  400522:   31 c0   xor%eax,%eax
  400524:   e8 d7 fa bf ff  callq  0 <__fini_array_end>
<  should call bar. 
  400529:   8b 05 a1 17 00 00   mov0x17a1(%rip),%eax# 
401cd0 
  40052f:   48 83 c4 08 add$0x8,%rsp
  400533:   05 e8 03 00 00  add$0x3e8,%eax
  400538:   c3  retq   
  400539:   0f 1f 80 00 00 00 00nopl   0x0(%rax)

Is this a bug? GCC should issue warning/error here. Why is vv linked 
correctly?
Shouldn't it be treated as static with -fwhile-program and without 
externally_visible? 

My trunk is 160104 by the way.

Thanks,
Bingfeng

> -Original Message-
> From: Jan Hubicka [mailto:hubi...@ucw.cz]
> Sent: 27 May 2010 09:04
> To: Richard Guenther
> Cc: Bingfeng Mei; gcc@gcc.gnu.org
> Subject: Re: externally_visible and resoultion file
> 
> > On Wed, May 26, 2010 at 5:53 PM, Bingfeng Mei 
> wrote:
> > > Hi, Richard,
> > > With resolution file generated by GOLD (or I am going to hack gnu
> LD),  is
> > > externally_visible attribute still needed to annotate those symbols
> accessed
> > > from non-LTO objects when compiling with -fwhole-program.
> >
> > Yes it is.  We do not parse the complete resolution file but only the
> > entries we'll end up reading .o files with LTO information for.
> >
> > > In theory, it shouldn't be needed since LTO has all information.
> But what
> > > about current implementation. I checked relevant source files and
> can't
> > > get immediate clue.
> >
> > The current implementation has no idea of the external references
> > (though it's probably not too hard to implement).
> 
> Yep, this is also one of my TODO list items...
> 
> Honza
> >
> > Richard.




Re: externally_visible and resoultion file

2010-06-08 Thread Richard Guenther
On Tue, Jun 8, 2010 at 3:01 PM, Bingfeng Mei  wrote:
> Hi,
> Sorry for coming back to this issue after a while. I am still puzzled
> by this. The following are two test files:
>
> a.c
>
> #include 
> #include 
> extern int foo(int);
> void bar()
> {
>  printf("bar\n");
> }
> extern int src[], dst[];
> int vv;
> int main()
> {
>  int ret;
>  vv = 12;
>  ret = foo(20);
>  memcpy(dst, src, 100);
>  return ret + 3;
> }
>
> b.c
> #include 
> int src[100];
> int dst[100];
> extern int vv;
> extern void bar();
> int foo(int c)
> {
>  printf("Hello world: %d\n", c);
>  bar();
>  return 1000 + vv;
> }
>
> I compiled with following steps
> ~/work/install-x86/bin/gcc -flto a.c -O2 -c
> ~/work/install-x86/bin/gcc b.c -O2 -c
> ar cru libb.a b.o
> ~/work/install-x86/bin/gcc -flto a.o -L. -lb -O2 -fuse-linker-plugin -o f 
> -fwhole-program -save-temps
>
> Since you both mentioned that resolution file is not used to replace 
> externally_visible attribute yet,
> I expect there will be link errors regarding both vv and bar. Somehow, 
> GCC doesn't complain at all.
> However, looking at generated assembly code, GCC produces wrong code for 
> calling bar, and vv is
> linked correctly though.
>
> 00400510 :
>  400510:       48 83 ec 08             sub    $0x8,%rsp
>  400514:       89 fe                   mov    %edi,%esi
>  400516:       31 c0                   xor    %eax,%eax
>  400518:       bf 1c 06 40 00          mov    $0x40061c,%edi
>  40051d:       e8 56 01 00 00          callq  400678 
>  400522:       31 c0                   xor    %eax,%eax
>  400524:       e8 d7 fa bf ff          callq  0 <__fini_array_end>    
> <  should call bar.
>  400529:       8b 05 a1 17 00 00       mov    0x17a1(%rip),%eax        # 
> 401cd0 
>  40052f:       48 83 c4 08             add    $0x8,%rsp
>  400533:       05 e8 03 00 00          add    $0x3e8,%eax
>  400538:       c3                      retq
>  400539:       0f 1f 80 00 00 00 00    nopl   0x0(%rax)
>
> Is this a bug? GCC should issue warning/error here. Why is vv linked 
> correctly?
> Shouldn't it be treated as static with -fwhile-program and without 
> externally_visible?

bar should be indeed eliminated which is what I see with not
using the linker plugin.

If you use the linker-plugin I see in the .optimized dump that
the were eliminated.  But it seems that gold picks them up
from the original objects which seem to be retained somehow.

I guess this is a bug in the linker-plugin.

Richard.

> My trunk is 160104 by the way.


plugin_is_GPL_compatible mangling

2010-06-08 Thread Joern Rennecke

I'm currently working on an update of the patch for PR42843, and I wonder
what best to do about the symbol plugin_is_GPL_compatible.

Although gcc doesn't currently mangle global variables, a future version of
gcc - or any other build compiler - might add mangling.

If I add:

#ifdef __cplusplus
extern "C" {
#endif
extern int plugin_is_GPL_compatible;
#ifdef __cplusplus
}
#endif

in gcc-plugin.h, then that potential problem is avoided.

However, it would mean that plugin_is_GPL_compatible would have to be declared
as type int - we currently say in the documentation that the type doesn't
matter.  So we'd have to change the documentation to reflect this, then.
Also, the type we suggest in the documentation is int, but some people
might have choosen a different type to be on the safe side not to use GFDL
code (pasted from the manual) together with GPL code, or to safe space -
should we worry about the backwards compatibility issue there?


Re: plugin_is_GPL_compatible mangling

2010-06-08 Thread Basile Starynkevitch
On Tue, Jun 08, 2010 at 09:48:15AM -0400, Joern Rennecke wrote:
> I'm currently working on an update of the patch for PR42843, and I wonder
> what best to do about the symbol plugin_is_GPL_compatible.
> 
> extern int plugin_is_GPL_compatible;

> 
> However, it would mean that plugin_is_GPL_compatible would have to be declared
> as type int - we currently say in the documentation that the type doesn't
> matter.  So we'd have to change the documentation to reflect this, then.
> Also, the type we suggest in the documentation is int, but some people
> might have choosen a different type to be on the safe side not to use GFDL
> code (pasted from the manual) together with GPL code, or to safe space -
> should we worry about the backwards compatibility issue there?

I strongly believe your proposal is good, and we should *not* worry
about backwards compatibility:

* plugins are supposed to be free software, preferably GPLv3, so
  people can patch & recompile them, especially since your requirement
  is easy!

* plugins are not supposed to even be source compatible from one
  version (e.g. 4.5) of GCC to the next (e.g. 4.6).

* some plugins might be source (but not binary) compatible from a
  minor version (e.g. 4.5.0) to the next (e.g. 4.5.1).

* very few plugins exist in practice today, and some of them already
  declared plugin_is_GPL_compatible as an int. We could even change
  the name to GCC_plugin_is_GPL_compatible if you want. Whatever we
  do, we should document that.

I hope your patch will be approved.

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: externally_visible and resoultion file

2010-06-08 Thread Bingfeng Mei
Thanks. But why "v" is linked correctly here? Shouldn't it 
be treated as static with -fwhole-program? 

Bingfeng

> -Original Message-
> From: Richard Guenther [mailto:richard.guent...@gmail.com]
> Sent: 08 June 2010 14:10
> To: Bingfeng Mei
> Cc: Jan Hubicka; gcc@gcc.gnu.org; Cary Coutant
> Subject: Re: externally_visible and resoultion file
> 
> On Tue, Jun 8, 2010 at 3:01 PM, Bingfeng Mei  wrote:
> > Hi,
> > Sorry for coming back to this issue after a while. I am still puzzled
> > by this. The following are two test files:
> >
> > a.c
> >
> > #include 
> > #include 
> > extern int foo(int);
> > void bar()
> > {
> >  printf("bar\n");
> > }
> > extern int src[], dst[];
> > int vv;
> > int main()
> > {
> >  int ret;
> >  vv = 12;
> >  ret = foo(20);
> >  memcpy(dst, src, 100);
> >  return ret + 3;
> > }
> >
> > b.c
> > #include 
> > int src[100];
> > int dst[100];
> > extern int vv;
> > extern void bar();
> > int foo(int c)
> > {
> >  printf("Hello world: %d\n", c);
> >  bar();
> >  return 1000 + vv;
> > }
> >
> > I compiled with following steps
> > ~/work/install-x86/bin/gcc -flto a.c -O2 -c
> > ~/work/install-x86/bin/gcc b.c -O2 -c
> > ar cru libb.a b.o
> > ~/work/install-x86/bin/gcc -flto a.o -L. -lb -O2 -fuse-linker-plugin
> -o f -fwhole-program -save-temps
> >
> > Since you both mentioned that resolution file is not used to replace
> externally_visible attribute yet,
> > I expect there will be link errors regarding both vv and bar.
> Somehow, GCC doesn't complain at all.
> > However, looking at generated assembly code, GCC produces wrong code
> for calling bar, and vv is
> > linked correctly though.
> >
> > 00400510 :
> >  400510:       48 83 ec 08             sub    $0x8,%rsp
> >  400514:       89 fe                   mov    %edi,%esi
> >  400516:       31 c0                   xor    %eax,%eax
> >  400518:       bf 1c 06 40 00          mov    $0x40061c,%edi
> >  40051d:       e8 56 01 00 00          callq  400678 
> >  400522:       31 c0                   xor    %eax,%eax
> >  400524:       e8 d7 fa bf ff          callq  0
> <__fini_array_end>    <  should call bar.
> >  400529:       8b 05 a1 17 00
> 00       mov    0x17a1(%rip),%eax        # 401cd0 
> >  40052f:       48 83 c4 08             add    $0x8,%rsp
> >  400533:       05 e8 03 00 00          add    $0x3e8,%eax
> >  400538:       c3                      retq
> >  400539:       0f 1f 80 00 00 00 00    nopl   0x0(%rax)
> >
> > Is this a bug? GCC should issue warning/error here. Why is vv
> linked correctly?
> > Shouldn't it be treated as static with -fwhile-program and without
> externally_visible?
> 
> bar should be indeed eliminated which is what I see with not
> using the linker plugin.
> 
> If you use the linker-plugin I see in the .optimized dump that
> the were eliminated.  But it seems that gold picks them up
> from the original objects which seem to be retained somehow.
> 
> I guess this is a bug in the linker-plugin.
> 
> Richard.
> 
> > My trunk is 160104 by the way.




Re: externally_visible and resoultion file

2010-06-08 Thread Richard Guenther
On Tue, Jun 8, 2010 at 4:15 PM, Bingfeng Mei  wrote:
> Thanks. But why "v" is linked correctly here? Shouldn't it
> be treated as static with -fwhole-program?

Works for me without the linker plugin as well:

> gcc-4.5 -O2 -o t t1.o t2.o -flto -fwhole-program -B 
> /abuild/rguenther/trunk-g/gcc
t2.o: In function `foo':
t2.c:(.text+0x15): undefined reference to `bar'
t2.c:(.text+0x1b): undefined reference to `vv'
collect2: ld returned 1 exit status

Richard.


Re: gc-improv code merged to mainline, trunk is still frozen

2010-06-08 Thread Joern Rennecke

Quoting Laurynas Biveinis :


I forgot in my previous e-mail the actual diff and the ChangeLogs of
the gc-improv merge, attaching now.


Your gcc/gcc/cp/ChangeLog entry starts with 'Likewise.'


RE: externally_visible and resoultion file

2010-06-08 Thread Bingfeng Mei
Yes, this is also what I saw without plugin. I just wonder why "v"
is linked with plugin if resolution file is not used to eliminate need
of externally_visible attribute here. 

Thanks,
Bingfeng

> -Original Message-
> From: Richard Guenther [mailto:richard.guent...@gmail.com]
> Sent: 08 June 2010 15:18
> To: Bingfeng Mei
> Cc: Jan Hubicka; gcc@gcc.gnu.org; Cary Coutant
> Subject: Re: externally_visible and resoultion file
> 
> On Tue, Jun 8, 2010 at 4:15 PM, Bingfeng Mei  wrote:
> > Thanks. But why "v" is linked correctly here? Shouldn't it
> > be treated as static with -fwhole-program?
> 
> Works for me without the linker plugin as well:
> 
> > gcc-4.5 -O2 -o t t1.o t2.o -flto -fwhole-program -B
> /abuild/rguenther/trunk-g/gcc
> t2.o: In function `foo':
> t2.c:(.text+0x15): undefined reference to `bar'
> t2.c:(.text+0x1b): undefined reference to `vv'
> collect2: ld returned 1 exit status
> 
> Richard.




Re: externally_visible and resoultion file

2010-06-08 Thread Richard Guenther
On Tue, Jun 8, 2010 at 4:22 PM, Bingfeng Mei  wrote:
> Yes, this is also what I saw without plugin. I just wonder why "v"
> is linked with plugin if resolution file is not used to eliminate need
> of externally_visible attribute here.

Probably because of the same linker-plugin bug that causes bar
to be resolved.

Richard.

> Thanks,
> Bingfeng
>
>> -Original Message-
>> From: Richard Guenther [mailto:richard.guent...@gmail.com]
>> Sent: 08 June 2010 15:18
>> To: Bingfeng Mei
>> Cc: Jan Hubicka; gcc@gcc.gnu.org; Cary Coutant
>> Subject: Re: externally_visible and resoultion file
>>
>> On Tue, Jun 8, 2010 at 4:15 PM, Bingfeng Mei  wrote:
>> > Thanks. But why "v" is linked correctly here? Shouldn't it
>> > be treated as static with -fwhole-program?
>>
>> Works for me without the linker plugin as well:
>>
>> > gcc-4.5 -O2 -o t t1.o t2.o -flto -fwhole-program -B
>> /abuild/rguenther/trunk-g/gcc
>> t2.o: In function `foo':
>> t2.c:(.text+0x15): undefined reference to `bar'
>> t2.c:(.text+0x1b): undefined reference to `vv'
>> collect2: ld returned 1 exit status
>>
>> Richard.
>
>
>


Re: Patch pinging

2010-06-08 Thread NightStrike
On Tue, Jun 8, 2010 at 3:53 AM, Eric Botcazou  wrote:
>> Reading gcc-cvs, or ChangeLogs, or other things like that is just way
>> too much time.
>
> What about writing a small script that parses the main ChangeLogs?  They are
> supposed to be uniformly formatted.  And ping messages shouldn't contain all
> the junk of previous messages, just the ChangeLog (and optionally the URL).
>
> --
> Eric Botcazou
>

Are you volunteering to write that small script?


Re: plugin_is_GPL_compatible mangling

2010-06-08 Thread Mark Mitchell
Joern Rennecke wrote:

> #ifdef __cplusplus
> extern "C" {
> #endif
> extern int plugin_is_GPL_compatible;
> #ifdef __cplusplus
> }
> #endif

I think that's a good idea; I don't think that at this point we've made
any plugin compatibility guarantees.  (In the future, I think we should
-- but only when we have a much more structured plug-in API.)

> Also, the type we suggest in the documentation is int, but some people
> might have choosen a different type to be on the safe side not to use GFDL
> code (pasted from the manual) together with GPL code

"extern int foo" is not something that is going to be covered by
copyright; there's no expression in something like that.  I don't think
anybody should be worried.

Thanks,

-- 
Mark Mitchell
CodeSourcery
m...@codesourcery.com
(650) 331-3385 x713


Re: Patch pinging

2010-06-08 Thread NightStrike
On Mon, Jun 7, 2010 at 8:34 PM, Paolo Carlini  wrote:
> On 06/08/2010 02:20 AM, Manuel López-Ibáńez wrote:
>> Perhaps NightStrike can fine-tune his approach.
> By the way, I wonder how many contributors can even think taking
> seriously a message coming from "NightStrike". Not me, for sure...
>
> Paolo.
>

That's just being mean.  This is 2010.  People use aliases.  Would it
make you happier if my alias was Neil Samson instead of NightStrike?
Is it any more "real"?

Look, you don't want me to be here... fine.  I get it.  Enough is
enough already.  Technical disagreements are one thing.  Personal
attacks on me are just juvenile.


Re: gc-improv code merged to mainline, trunk is still frozen

2010-06-08 Thread Laurynas Biveinis
2010/6/8 Joern Rennecke :
> Quoting Laurynas Biveinis :
>
>> I forgot in my previous e-mail the actual diff and the ChangeLogs of
>> the gc-improv merge, attaching now.
>
> Your gcc/gcc/cp/ChangeLog entry starts with 'Likewise.'

I have noticed it before the actual commit, the committed version is OK:

2010-06-08 Laurynas Biveinis 

* typeck2.c (abstract_virtuals_error): Use typed GC allocation.
...


-- 
Laurynas


Successful build

2010-06-08 Thread Maynard, William L. (GSFC-5540)
I first installed gcc 4.5.0 on my Powerpc dual 970 machine with no
configuration options. That was successful, but the long long feature was
not enabled. Then I re-installed gcc 4.5.0 with this gcc ­v output:

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/powerpc-apple-darwin9.8.0/4.5.0/l
to-wrapper
Target: powerpc-apple-darwin9.8.0
Configured with: ../gcc-4.5.0/configure --with-cpu-64=970 --with-tune-64=970
--enable-long-long --enable-languages=c,c++,fortran,java
Thread model: posix
gcc version 4.5.0 (GCC)

The output from config.guess:   powerpc-apple-darwin9.8.0

I also let GCC install gmp 4.3.2, mpc 0.8.1 and mpfr-2.3.1 (patched)

I had previously installed gmp 5.0.1 with the other two listed above. When I
ran configure for gcc 4.5.0, it stopped and told me I had the wrong version
of gmp/mpc/mpfr installed (it never said which one). So I stepped back to
the previous version of GMP, unstalled all three from /usr/local/include/
and /usr/local/lib/, then had GCC install them; I notice it did not use the
same directories.

How do I configure GMP 5.0.1 or any of the others to upgrade the installed
versions?

Regarding your installation notes for powerpc-darwin, I¹d already installed
Xcode on my machine. Definitely needed on a mac to install anything that's
not mac ready.

I had no luck installing ppl 0.10.2
It kept telling me I had the wrong version of gmp for both of the versions I
tried, even when I tried to have gcc install it.

FYI, I¹ll only have this machine for another six months or so before it¹s
upgraded.

-- 
William L. Maynard  william.l.mayn...@nasa.gov
NASA Goddard Space Flight CenterBuilding 33, Room E224
Code 554301-614-6234
8800 Greenbelt Road 301-614-6819 (FAX)
Greenbelt, MD 20771




Re: Patch pinging

2010-06-08 Thread Jeff Law

On 06/08/10 09:01, NightStrike wrote:

On Mon, Jun 7, 2010 at 8:34 PM, Paolo Carlini  wrote:
   

On 06/08/2010 02:20 AM, Manuel López-Ibáńez wrote:
 

Perhaps NightStrike can fine-tune his approach.
   

By the way, I wonder how many contributors can even think taking
seriously a message coming from "NightStrike". Not me, for sure...

Paolo.

 

That's just being mean.  This is 2010.  People use aliases.  Would it
make you happier if my alias was Neil Samson instead of NightStrike?
Is it any more "real"?

Look, you don't want me to be here... fine.  I get it.  Enough is
enough already.  Technical disagreements are one thing.  Personal
attacks on me are just juvenile.
   

I don't see this as a personal attack.

Like Paolo, I'm a lot more likely to read a message from someone with a 
real name, or at least a name that sounds real.


Jeff


Experimental Patchwork setup

2010-06-08 Thread Segher Boessenkool
Hi all,

Jeremy has set up a Patchwork instance for us at

   http://patchwork.ozlabs.org/project/gcc/list/ .

It is feeding from gcc-patches; the plan is to make it
automatically recognise what patches went into the tree,
probably by snooping the gcc-cvs list.

You can also manually change patch status, if you're an
admin; who is admin currently has to be configured manually,
plan is to make everyone with an email @gcc.gnu.org admin
automatically.  In the meantime, if you want to play with
it, tell me and I'll get you added.

There aren't many patches in the system yet, so we'll need
to let it run for a few weeks at least for it to prove its
worth.

Any feedback is very welcome.  Go play with it :-)


Segher



Re: Patch pinging

2010-06-08 Thread David Edelsohn
On Tue, Jun 8, 2010 at 11:21 AM, Jeff Law  wrote:
> On 06/08/10 09:01, NightStrike wrote:
>>
>> On Mon, Jun 7, 2010 at 8:34 PM, Paolo Carlini
>>  wrote:
>>
>>>
>>> On 06/08/2010 02:20 AM, Manuel López-Ibáńez wrote:
>>>

 Perhaps NightStrike can fine-tune his approach.

>>>
>>> By the way, I wonder how many contributors can even think taking
>>> seriously a message coming from "NightStrike". Not me, for sure...
>>>
>>> Paolo.
>>>
>>>
>>
>> That's just being mean.  This is 2010.  People use aliases.  Would it
>> make you happier if my alias was Neil Samson instead of NightStrike?
>> Is it any more "real"?
>>
>> Look, you don't want me to be here... fine.  I get it.  Enough is
>> enough already.  Technical disagreements are one thing.  Personal
>> attacks on me are just juvenile.
>>
>
> I don't see this as a personal attack.
>
> Like Paolo, I'm a lot more likely to read a message from someone with a real
> name, or at least a name that sounds real.

Maybe not a personal attack, but it certainly could have been
expressed in a less offensive way.

I think the offered service might help improve responsiveness of the
GCC Community to patches.  Maybe we should create a generic "GCC Patch
Ping" account.  Constructive suggestions would be much more helpful in
this thread.

David


Re: Patch pinging

2010-06-08 Thread H.J. Lu
On Mon, Jun 7, 2010 at 10:43 PM, Chiheng Xu  wrote:
> On Tue, Jun 8, 2010 at 9:14 AM, Ben White  wrote:
>> Would a modestly modified copy of Bugzilla be workable for that something?
>> I.E. Patchzilla?
>
> Think about mercurial or git.  Every one can commit on his/her own
> local repository, and "publish" his/her repository.  Every one can
> pull other people's changes into his/her own repository, and can
> selectively merge interesting/valuable changes. Every patch have it's
> own branch. So called "approved patches" will be those patches whose
> branches have been merged. Then, you only need to think whether or not
> merge the branches the patches reside.
>
> If you use mercurial or git, every change will not be lost, every one
> can review and selectively merge any branch on his/her convenience.
>

git is an excellent tool to create and share patches. Maybe we should
have an open gcc git mirror with gitweb and every contributor can create
his/her own branches and publish them.


-- 
H.J.


Re: Patch pinging

2010-06-08 Thread Manuel López-Ibáñez
On 8 June 2010 17:42, H.J. Lu  wrote:
>
> git is an excellent tool to create and share patches. Maybe we should
> have an open gcc git mirror with gitweb and every contributor can create
> his/her own branches and publish them.

http://gcc.gnu.org/wiki/GitMirror

I don't see how such a thing solves the issue of patches from
first-time contributors being ignored.

Cheers,

Manuel.


Variadic functions

2010-06-08 Thread Jonas Bonn
Hi,
I am forwarding to you a mail that I sent to the uClibc mailing list as
I think it is actually a compiler issue.  Please see below for the
original.  Any tips would be greatly appreciated.
/Jonas

 Forwarded Message 
From: jonas at southpole dot se
To: ucl...@uclibc.org
Subject: Variadic functions
Date: Tue, 08 Jun 2010 09:22:28 +0200

Hi,
I am working on the OPENRISC32 (or32) architecture port of uClibc and
have run into a bit of conundrum that I was hoping someone could help me
understand a bit better.  Please bear with me...

--

The preconditions:

i) The declaration of xdrproc_t is variadic:

typedef bool_t (*xdrproc_t) (XDR *, void *, ...);

ii) In libc/inet/rpc/xdr.c the functions choices->proc, which of type
xdrproc_t is called:

return (*(choices->proc)) (xdrs, unp, LASTUNSIGNED);

iii) choices->proc may be dereferenced to the function
"xdr_accepted_reply" which is defined in libc/inet/rpc/rpc_prot.c as:

bool_t
xdr_accepted_reply (XDR *xdrs, struct accepted_reply *ar) { ... }

---

Now, the problem:
i)  As xdr_accepted_reply is not defined as variadic, the function is
compiled to find the parameters in registers r3 and r4.
ii)  As choices->proc is variadic (according to the declaration), the
compiler puts the first parameter in a register and the second on on the
stack.

This, of course, becomes problematic!!!

---

Workaround:
i)  By redefining xdr_accepted_reply to be variadic, the compiler makes
the function look for paramter 1 in a register and paramter 2 on the
stack, thus matching what it does for the function call.  Like this...

bool_t
xdr_accepted_reply (XDR *xdrs, struct accepted_reply *ar, ...) { ... }



Questions:
i)  Is my compiler broken?  If so, is there somewhere in GCC that
specifically handles register/stack parameter passing for variadic
functions???  (GCC 4.2, patched for or32)
ii)  What is the correct compiler behaviour variadic
declarations/definitions?  Should xdr_accepted_reply not be variadic
since it is used in such a context?  Note that there are several
functions that are cast to xdrproc_t and none of them are defined as
variadic...
iii)  Any advice on how to proceed... I know I need to patch something,
but I'm not sure if it's GCC,binutils, or uClibc.

Thanks for bearing with me on this.  Regards,
Jonas



Re: Patch pinging

2010-06-08 Thread Tobias Burnus
On 06/08/2010 05:42 PM, H.J. Lu wrote:
>> Think about mercurial or git.  Every one can commit on his/her own
>> local repository, and "publish" his/her repository.  [...]
> 
> git is an excellent tool to create and share patches. Maybe we should
> have an open gcc git mirror with gitweb and every contributor can create
> his/her own branches and publish them.

Well, we do: Goto http://repo.or.cz/w/official-gcc.git and click on "fork".

I do like Git, but Git seems to make mostly sense if you have a small
project on which you are working. If you have only a small patch (or a
collection of small and unrelated patches), it won't help much.

Additionally, I do not think that pulling from a branch will happen -
rather that one creates patches from an (published or unpublished) git
repository and submits them like normal.

Thus, I do not think it helps with patch reviewing/tracking, though I
believe it helps with developing patches.

Tobias,
who happily uses his private GCC git repository, which does not diverge
much from the git master.


Re: Patch pinging

2010-06-08 Thread Eric Botcazou
> Are you volunteering to write that small script?

If nothing better comes out, why not, but resurrecting the Patch Tracker seems 
to be a more appealing idea.

-- 
Eric Botcazou


Re: Patch pinging

2010-06-08 Thread Basile Starynkevitch
On Tue, 2010-06-08 at 09:21 -0600, Jeff Law wrote:
> >
> > Look, you don't want me to be here... fine.  I get it.  Enough is
> > enough already.  Technical disagreements are one thing.  Personal
> > attacks on me are just juvenile.
> >
> I don't see this as a personal attack.
> 
> Like Paolo, I'm a lot more likely to read a message from someone with a 
> real name, or at least a name that sounds real.


I also agree with Paolo, and I am not sure you could entirely hide your
true (legal) identity.

To commit code to GCC, you need to have signed some legal document with
FSF (e.g. a copyright transfer or disclaimer). I am not a lawyer, but I
would guess that for that document you'll need to reveal who you are.

Therefore, what is the point of hiding your name on this list? AFAIU,
someone (at least at FSF or at Codesourcery or at the organization
responsible of gcc.gnu.org subversion server) legally needs to know who
you are, and which legal document covers your contributions to GCC.

There is no personal attack involved. 

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: Patch pinging

2010-06-08 Thread Paolo Carlini
On 06/08/2010 08:40 PM, Basile Starynkevitch wrote:
> There is no personal attack involved.
For sure. Sorry if my quick remark could be interpreted in another way.

Paolo.



Re: Patch pinging

2010-06-08 Thread Basile Starynkevitch
On Tue, 2010-06-08 at 11:18 +0200, Manuel López-Ibáñez wrote:
> >>
> >> I don't understand.  WAA rights definitely allow you to shepherd and commit
> >> patches from people without svn access, even for patches you can't approve.
> >
> > And basile (and other WAA contributors), this would a nice
> > contribution. Asking people that do not appear to have access to svn
> > whether you want to commit their patches for them. And keeping them in
> 
> It should say: "whether they want you to commit their patches for them."

I thought that for legal reasons, WAA contributors should not commit
code which is not theirs, or on which they did not see the legal
copyright transfer or disclaimer form for the FSF.

Since such legal documents are not public, that restriction means in
practice that I could only reasonably commit only code that either I
have written, or that someone covered by the same legal documents than I
am, have written. For me Basile, the only person in that case I can
think of today is Jeremie Salvucci (my intern) and possibly Marc
Duranton (who started worked at CEA LIST, my employer).

So I don't understand how can I svn-commit code which I don't have
written (or which has not been written by a near colleague covered by
the same legal documents).


Could someone explain what exactly are the rules for committing code?

I probably am understanding them too restrictively.

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: Patch pinging

2010-06-08 Thread Paolo Bonzini

On 06/08/2010 09:21 PM, Basile Starynkevitch wrote:

On Tue, 2010-06-08 at 11:18 +0200, Manuel López-Ibáñez wrote:


I don't understand.  WAA rights definitely allow you to shepherd and commit
patches from people without svn access, even for patches you can't approve.


And basile (and other WAA contributors), this would a nice
contribution. Asking people that do not appear to have access to svn
whether you want to commit their patches for them. And keeping them in


It should say: "whether they want you to commit their patches for them."


I thought that for legal reasons, WAA contributors should not commit
code which is not theirs, or on which they did not see the legal
copyright transfer or disclaimer form for the FSF.


You can either ask someone to look up the copyright status or commit 
patches that are trivial.  The copyright status of a person is usually 
clear from the mailing list; if you're particularly interested in a 
patch and you cannot figure out their status you can ask on-list or 
off-list.


Here are a few of the people with access to the copyright list: me, Ian, 
Benjamin Koznik, David Edelsohn, Andreas Schwab, Joseph Myers, Ralf 
Wildenhues.  This is not a complete list, just people that I remember.



So I don't understand how can I svn-commit code which I don't have
written (or which has not been written by a near colleague covered by
the same legal documents).


Or which has not been written by someone whose patches already got in 
the tree, so that you can already trust him/her.


BTW, several companies have a company-wide copyright assignment too. 
The only one I can name that may need some help with commits is Mozilla.


Paolo


Re: Pseudo frame pointer register in assembly code

2010-06-08 Thread Ian Lance Taylor
"Naveen H. S"  writes:

> The FRAME_POINTER_REGNUM is defined a pseudo register in header file.
> I am using the following macros in header file to eliminate the pseudo
> arg pointer and frame pointer.
> However, there are some instances of frame pointer in the assembly code.


> #define ELIMINABLE_REGS \
>  {{ARG_POINTER_REGNUM, STACK_POINTER_REGNUM},   \
>   {ARG_POINTER_REGNUM, FRAME_POINTER_REGNUM},  \
>   {FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM}}

In gcc, some functions must have a frame pointer.  E.g., a function
which calls alloca or allocates a dynamically sized array.  So you can
not always eliminate the frame pointer in favor of the stack pointer.

You can address this in one of two ways.  First, you can simply make
FRAME_POINTER_REGNUM be a hard register.  Second, you can define a
hard register HARD_FRAME_POINTER_REGNUM.  Either way, it should not be
a fixed register.  In the latter case, have an elimination from
FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.  See the docs for
HARD_FRAME_POINTER_REGNUM and look at the backends which use it.

Ian


Re: Experimental Patchwork setup

2010-06-08 Thread Ian Lance Taylor
"Segher Boessenkool"  writes:

> Jeremy has set up a Patchwork instance for us at
>
>http://patchwork.ozlabs.org/project/gcc/list/ .
>
> It is feeding from gcc-patches; the plan is to make it
> automatically recognise what patches went into the tree,
> probably by snooping the gcc-cvs list.
>
> You can also manually change patch status, if you're an
> admin; who is admin currently has to be configured manually,
> plan is to make everyone with an email @gcc.gnu.org admin
> automatically.  In the meantime, if you want to play with
> it, tell me and I'll get you added.
>
> There aren't many patches in the system yet, so we'll need
> to let it run for a few weeks at least for it to prove its
> worth.
>
> Any feedback is very welcome.  Go play with it :-)


This is quite interesting, thanks for setting it up.


I can see already that to be useful for gcc today it will need some
curating.  E.g., http://patchwork.ozlabs.org/patch/54974/ is both 1)
committed; 2) on a branch.  This one
http://patchwork.ozlabs.org/patch/54958/ is committed to trunk.  Are
there ways that we can adjust our e-mail messages to make this work
better?

Ian


Re: Variadic functions

2010-06-08 Thread Ian Lance Taylor
Jonas Bonn  writes:

> I am forwarding to you a mail that I sent to the uClibc mailing list as
> I think it is actually a compiler issue.  Please see below for the
> original.  Any tips would be greatly appreciated.

This message would be more appropriate for the mailing list
gcc-h...@gcc.gnu.org.  Please take any followups to gcc-help.
Thanks.

> i) The declaration of xdrproc_t is variadic:
>
> typedef bool_t (*xdrproc_t) (XDR *, void *, ...);
>
> ii) In libc/inet/rpc/xdr.c the functions choices->proc, which of type
> xdrproc_t is called:
>
> return (*(choices->proc)) (xdrs, unp, LASTUNSIGNED);
>
> iii) choices->proc may be dereferenced to the function
> "xdr_accepted_reply" which is defined in libc/inet/rpc/rpc_prot.c as:
>
> bool_t
> xdr_accepted_reply (XDR *xdrs, struct accepted_reply *ar) { ... }


Casting a function pointer to a different type and then calling it is
undefined behaviour in C/C++.  The standard does not guarantee that
this program will work.


> i)  Is my compiler broken?  If so, is there somewhere in GCC that
> specifically handles register/stack parameter passing for variadic
> functions???  (GCC 4.2, patched for or32)

This problem does not indicate that your program is broken.  Calling
variadic functions is handled specially in the backend.  I am not
familiar with the or32 backend, but that is where the code would be.


> ii)  What is the correct compiler behaviour variadic
> declarations/definitions?  Should xdr_accepted_reply not be variadic
> since it is used in such a context?  Note that there are several
> functions that are cast to xdrproc_t and none of them are defined as
> variadic...

That is broken.  You can not casually cast function pointers to
different types.  You especially can not cast them between variadic
and non-variadic.


> iii)  Any advice on how to proceed... I know I need to patch something,
> but I'm not sure if it's GCC,binutils, or uClibc.

You need to patch the source code.  It sounds like that source code is
in uClibc.

Ian


Re: Experimental Patchwork setup

2010-06-08 Thread Segher Boessenkool
>> It is feeding from gcc-patches; the plan is to make it
>> automatically recognise what patches went into the tree,
>> probably by snooping the gcc-cvs list.

> This is quite interesting, thanks for setting it up.

All kudos go to Jeremy, I merely try to push people :-)

> I can see already that to be useful for gcc today it will need some
> curating.  E.g., http://patchwork.ozlabs.org/patch/54974/ is both 1)
> committed; 2) on a branch.  This one
> http://patchwork.ozlabs.org/patch/54958/ is committed to trunk.  Are
> there ways that we can adjust our e-mail messages to make this work
> better?

[I changed those patches to "accepted" state].

The plan is to make it recognise the patches that went in (by taking
a hash over the whole patch).  This will probably catch most.  Maybe
it'll work better to take the ChangeLog instead, we'll see.

Some manual work will always be needed; I think this is better than
annoying everyone all the time with extra procedural stuff.

When (if) it automatically recognises patches that went in, we can
start experimenting with automatically pinging old patches.

The goal is to be useful while not being annoying, being bureaucratic,
taking up much valuable time from anyone.


Segher



Re: Patch pinging

2010-06-08 Thread Dave Korn
On 08/06/2010 20:31, Paolo Bonzini wrote:

> Here are a few of the people with access to the copyright list: me, Ian,
> Benjamin Koznik, David Edelsohn, Andreas Schwab, Joseph Myers, Ralf
> Wildenhues.  This is not a complete list, just people that I remember.

  I also have access and am happy to be asked to check the list to help get a
patch cleared.

cheers,
  DaveK




gcc-4.4-20100608 is now available

2010-06-08 Thread gccadmin
Snapshot gcc-4.4-20100608 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/4.4-20100608/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

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

You'll find:

gcc-4.4-20100608.tar.bz2  Complete GCC (includes all of below)

gcc-core-4.4-20100608.tar.bz2 C front end and core compiler

gcc-ada-4.4-20100608.tar.bz2  Ada front end and runtime

gcc-fortran-4.4-20100608.tar.bz2  Fortran front end and runtime

gcc-g++-4.4-20100608.tar.bz2  C++ front end and runtime

gcc-java-4.4-20100608.tar.bz2 Java front end and runtime

gcc-objc-4.4-20100608.tar.bz2 Objective-C front end and runtime

gcc-testsuite-4.4-20100608.tar.bz2The GCC testsuite

Diffs from 4.4-20100601 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-4.4
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: Patch pinging

2010-06-08 Thread Martin Guy
On 6/8/10, NightStrike  wrote:
> Are you volunteering to write that small script?

DUnno, are you volunteering to write that small script?

You're the only one here actually volunteering a forwardgoing
commitment of their time here to improve GCC's development in this
way, it seems (and mostly just getting vilified for it, for using a
bizarre camelcase name!)

What I expected to happen was that you would start doing whta you
envision should happen by hand, and would then get so bored at doing
it that out of laziness you'd automate it somehow. :)

Still, we'll see...

M


Re: Experimental Patchwork setup

2010-06-08 Thread Jeremy Kerr
Hi Ian,

> I can see already that to be useful for gcc today it will need some
> curating.  E.g., http://patchwork.ozlabs.org/patch/54974/ is both 1)
> committed; 2) on a branch.  This one
> http://patchwork.ozlabs.org/patch/54958/ is committed to trunk.

There are a number of ways to keep the patch states up-to-date:

1) You can get the maintainers/committers to manually update the states. 
Simplest solution, but will add work to the folks who are already busy.

2) Use the command-line patchwork client to update patch state when a patch is 
committed. People have done this with a git post-commit hook to update the 
state of the patch in patchwork; I'm not sure if svn has something equivalent.

3) Batch-process the commit logs every once in a while. This can be done by 
anyone who is a patchwork admin for the project.

The second two rely on the patchwork hash of the patch. When a patch comes in, 
patchwork calculates a hash of the diff (minus a few things likely to change, 
like line numbers). The command-line client can reference patches by this 
hash, and so you don't need to keep any patchwork metadata in the changes.

> Are there ways that we can adjust our e-mail messages to make this work
> better?

As a design principle of patchwork, I've tried to avoid having to add 
patchwork metadata to the changes - after all, once the patch has gone in, the 
patchwork stuff is no longer relevant, and I don't want it polluting anyone's 
changelog...

There is one header you can add to emails:

 X-Patchwork-Hint: ignore

- this will tell patchwork to ignore the patch completely. I use this when 
sending a "this is the stuff I'm merging for the next release" email, as all 
of the patches have already been through the list.

Cheers,


Jeremy



Re: Patch pinging

2010-06-08 Thread Chiheng Xu
On Tue, Jun 8, 2010 at 11:55 PM, Tobias Burnus  wrote:
> On 06/08/2010 05:42 PM, H.J. Lu wrote:
>>> Think about mercurial or git.  Every one can commit on his/her own
>>> local repository, and "publish" his/her repository.  [...]
>>
>> git is an excellent tool to create and share patches. Maybe we should
>> have an open gcc git mirror with gitweb and every contributor can create
>> his/her own branches and publish them.
>
> Well, we do: Goto http://repo.or.cz/w/official-gcc.git and click on "fork".
>
> I do like Git, but Git seems to make mostly sense if you have a small
> project on which you are working. If you have only a small patch (or a
> collection of small and unrelated patches), it won't help much.
>
> Additionally, I do not think that pulling from a branch will happen -
> rather that one creates patches from an (published or unpublished) git
> repository and submits them like normal.
>
> Thus, I do not think it helps with patch reviewing/tracking, though I
> believe it helps with developing patches.
>
> Tobias,
> who happily uses his private GCC git repository, which does not diverge
> much from the git master.
>

The philosophy behind DVCS(mercurial or git) is that,  any software
project is an evolution tree, like the one of the lives of Planet
Earth.  This evolution tree has a root, which is the UCA(Ultimate
Common Ancestor) of all lives. For the lives of Planet Earth, UCA may
be some kind of ancient micro-organism. For a software, UCA would be
the revision zero.

Everyone can make change to any revision, do some minor improvement,
to let the evolution tree to branch and grow.  Everyone can merge
other people's valuable branch/change in his/her own branch, this is
like bi-sex reproduction. Everyone can make his/her branch more
perfect to gain some survival advantage. The changes that will be in
the final releases is those whose branches have been merged into
trunk.  Everyone strive to let his/her branch be merged, otherwise
his/her branch will die. If someone's branch are rejected, he/she can
try to redo his change, maybe from an newer trunk revision. When
his/her changes meet some criteria, he/she can ask someone to review
his branches and selectively merge.

The died branch are never lost, it is stored in the repositories
persistently, and can revive at any time.

If someone's branch diverge far from the trunk, it may be very hard to
merge. So branches from a relatively newer trunk revision and have not
too many changes will be desirable.

In this method, you only need to note the branch(and its URL) to
review, instead of attach the patches.



By the way, I found mercurial are easier to learn and use.





-- 
Chiheng Xu
Wuhan,China


Re: Patch pinging

2010-06-08 Thread NightStrike
On Tue, Jun 8, 2010 at 7:03 PM, Martin Guy  wrote:
> On 6/8/10, NightStrike  wrote:
>> Are you volunteering to write that small script?
>
> DUnno, are you volunteering to write that small script?

Sorry, no :(

> You're the only one here actually volunteering a forwardgoing
> commitment of their time here to improve GCC's development in this
> way, it seems (and mostly just getting vilified for it, for using a
> bizarre camelcase name!)

Thanks for noticing :)

> What I expected to happen was that you would start doing whta you
> envision should happen by hand, and would then get so bored at doing
> it that out of laziness you'd automate it somehow. :)

I was thinking of ways to make it a little easier.  What I proposed
was really not all that time consuming, though.

> Still, we'll see...

Apparently not :(


Re: Experimental Patchwork setup

2010-06-08 Thread Paolo Bonzini

On 06/08/2010 10:37 PM, Ian Lance Taylor wrote:

Are there ways that we can adjust our e-mail messages to make this
work better?


Two things: 1) we should make the [bracket] prefixes more standard for 
patches destined to feature branches; 2) we should likely not send 
multiple patches in one email as attachments.


Another point about (1): I believe patchwork should *not* track most of 
the branch patches, and the commit detection shouldn't care about 
release branch commits, only trunk.  This is because those are 99% of 
the time for trunk too, and whether the patches went on the release 
branches is effectively already tracked via bugzilla.


Paolo