Strange git commit on master branch in gcc git mirror

2011-06-05 Thread H.J. Lu
Hi Jason,

There is a strange git commit on master branch:

http://gcc.gnu.org/git/?p=gcc.git;a=commit;h=6681e82c16913119b6a3ca0052efe9259d7377a9

 in git mit mirror, which isn't in svn gcc trunk.  Can you look at a look at it?

Thanks.


-- 
H.J.


Strange commit from fortran-dev branch

2011-06-05 Thread H.J. Lu
Hi,

Your commit:

http://gcc.gnu.org/ml/gcc-cvs/2011-06/msg00145.html

includes some bogus entries:

trunk/gcc/go/gofrontend/expressions.cc.merge-left.r167407
trunk/gcc/go/gofrontend/expressions.cc.merge-right.r172891
trunk/gcc/go/gofrontend/expressions.cc.working
trunk/gcc/go/gofrontend/go.cc.merge-left.r167407
trunk/gcc/go/gofrontend/go.cc.merge-right.r172891
trunk/gcc/go/gofrontend/go.cc.working
trunk/gcc/go/gofrontend/gogo-tree.cc.merge-left.r167407
trunk/gcc/go/gofrontend/gogo-tree.cc.merge-right.r172891
trunk/gcc/go/gofrontend/gogo-tree.cc.working
trunk/gcc/go/gofrontend/gogo.cc.merge-left.r167407
trunk/gcc/go/gofrontend/gogo.cc.merge-right.r172891
trunk/gcc/go/gofrontend/gogo.cc.working
trunk/gcc/go/gofrontend/gogo.h.merge-left.r167407
trunk/gcc/go/gofrontend/gogo.h.merge-right.r172891
trunk/gcc/go/gofrontend/gogo.h.working
trunk/gcc/go/gofrontend/parse.cc.merge-left.r167407
trunk/gcc/go/gofrontend/parse.cc.merge-right.r172891
trunk/gcc/go/gofrontend/parse.cc.working
trunk/gcc/go/gofrontend/parse.h.merge-left.r167407
trunk/gcc/go/gofrontend/parse.h.merge-right.r172891
trunk/gcc/go/gofrontend/parse.h.working
trunk/gcc/go/gofrontend/statements.cc.merge-left.r167407
trunk/gcc/go/gofrontend/statements.cc.merge-right.r172891
trunk/gcc/go/gofrontend/statements.cc.working
trunk/gcc/go/gofrontend/statements.h.merge-left.r167407
trunk/gcc/go/gofrontend/statements.h.merge-right.r172891
trunk/gcc/go/gofrontend/statements.h.working
trunk/gcc/go/gofrontend/types.cc.merge-left.r167407
trunk/gcc/go/gofrontend/types.cc.merge-right.r172891
trunk/gcc/go/gofrontend/types.cc.working
trunk/gcc/go/gofrontend/unsafe.cc.merge-left.r167407
trunk/gcc/go/gofrontend/unsafe.cc.merge-right.r172891
trunk/gcc/go/gofrontend/unsafe.cc.working

Can you fix it?

Thanks.


H.J.


Re: Strange git commit on master branch in gcc git mirror

2011-06-05 Thread Andreas Schwab
"H.J. Lu"  writes:

> http://gcc.gnu.org/git/?p=gcc.git;a=commit;h=6681e82c16913119b6a3ca0052efe9259d7377a9
>
>  in git mit mirror, which isn't in svn gcc trunk.

It's right here:

http://gcc.gnu.org/viewcvs?limit_changes=0&view=revision&revision=174658

Looks like an accident, modifying both trunk and branches/fortran-dev.
But the git mirror splits it between the trunk and fortran-dev branches.

Andreas.

-- 
Andreas Schwab, sch...@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."


gcc-4.3-20110605 is now available

2011-06-05 Thread gccadmin
Snapshot gcc-4.3-20110605 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/4.3-20110605/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

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

You'll find:

 gcc-4.3-20110605.tar.bz2 Complete GCC

  MD5=fa58a7a83eeb0598f37b6e7088fc2590
  SHA1=083cbd65b423e85284be33e544069278c81238b9

Diffs from 4.3-20110529 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-4.3
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: Strange commit from fortran-dev branch

2011-06-05 Thread H.J. Lu
On Sun, Jun 5, 2011 at 12:17 PM, H.J. Lu  wrote:
> Hi,
>
> Your commit:
>
> http://gcc.gnu.org/ml/gcc-cvs/2011-06/msg00145.html
>
> includes some bogus entries:
>
>    trunk/gcc/go/gofrontend/expressions.cc.merge-left.r167407
>    trunk/gcc/go/gofrontend/expressions.cc.merge-right.r172891
>    trunk/gcc/go/gofrontend/expressions.cc.working
>    trunk/gcc/go/gofrontend/go.cc.merge-left.r167407
>    trunk/gcc/go/gofrontend/go.cc.merge-right.r172891
>    trunk/gcc/go/gofrontend/go.cc.working
>    trunk/gcc/go/gofrontend/gogo-tree.cc.merge-left.r167407
>    trunk/gcc/go/gofrontend/gogo-tree.cc.merge-right.r172891
>    trunk/gcc/go/gofrontend/gogo-tree.cc.working
>    trunk/gcc/go/gofrontend/gogo.cc.merge-left.r167407
>    trunk/gcc/go/gofrontend/gogo.cc.merge-right.r172891
>    trunk/gcc/go/gofrontend/gogo.cc.working
>    trunk/gcc/go/gofrontend/gogo.h.merge-left.r167407
>    trunk/gcc/go/gofrontend/gogo.h.merge-right.r172891
>    trunk/gcc/go/gofrontend/gogo.h.working
>    trunk/gcc/go/gofrontend/parse.cc.merge-left.r167407
>    trunk/gcc/go/gofrontend/parse.cc.merge-right.r172891
>    trunk/gcc/go/gofrontend/parse.cc.working
>    trunk/gcc/go/gofrontend/parse.h.merge-left.r167407
>    trunk/gcc/go/gofrontend/parse.h.merge-right.r172891
>    trunk/gcc/go/gofrontend/parse.h.working
>    trunk/gcc/go/gofrontend/statements.cc.merge-left.r167407
>    trunk/gcc/go/gofrontend/statements.cc.merge-right.r172891
>    trunk/gcc/go/gofrontend/statements.cc.working
>    trunk/gcc/go/gofrontend/statements.h.merge-left.r167407
>    trunk/gcc/go/gofrontend/statements.h.merge-right.r172891
>    trunk/gcc/go/gofrontend/statements.h.working
>    trunk/gcc/go/gofrontend/types.cc.merge-left.r167407
>    trunk/gcc/go/gofrontend/types.cc.merge-right.r172891
>    trunk/gcc/go/gofrontend/types.cc.working
>    trunk/gcc/go/gofrontend/unsafe.cc.merge-left.r167407
>    trunk/gcc/go/gofrontend/unsafe.cc.merge-right.r172891
>    trunk/gcc/go/gofrontend/unsafe.cc.working
>
> Can you fix it?
>

I checked in this patch:

http://gcc.gnu.org/ml/gcc-cvs/2011-06/msg00150.html

to revert it.

-- 
H.J.


Re: Strange commit from fortran-dev branch

2011-06-05 Thread jerry DeLisle

On 06/05/2011 12:17 PM, H.J. Lu wrote:

Hi,

Your commit:

http://gcc.gnu.org/ml/gcc-cvs/2011-06/msg00145.html

includes some bogus entries:

 trunk/gcc/go/gofrontend/expressions.cc.merge-left.r167407
 trunk/gcc/go/gofrontend/expressions.cc.merge-right.r172891
 trunk/gcc/go/gofrontend/expressions.cc.working
 trunk/gcc/go/gofrontend/go.cc.merge-left.r167407
 trunk/gcc/go/gofrontend/go.cc.merge-right.r172891
 trunk/gcc/go/gofrontend/go.cc.working
 trunk/gcc/go/gofrontend/gogo-tree.cc.merge-left.r167407
 trunk/gcc/go/gofrontend/gogo-tree.cc.merge-right.r172891
 trunk/gcc/go/gofrontend/gogo-tree.cc.working
 trunk/gcc/go/gofrontend/gogo.cc.merge-left.r167407
 trunk/gcc/go/gofrontend/gogo.cc.merge-right.r172891
 trunk/gcc/go/gofrontend/gogo.cc.working
 trunk/gcc/go/gofrontend/gogo.h.merge-left.r167407
 trunk/gcc/go/gofrontend/gogo.h.merge-right.r172891
 trunk/gcc/go/gofrontend/gogo.h.working
 trunk/gcc/go/gofrontend/parse.cc.merge-left.r167407
 trunk/gcc/go/gofrontend/parse.cc.merge-right.r172891
 trunk/gcc/go/gofrontend/parse.cc.working
 trunk/gcc/go/gofrontend/parse.h.merge-left.r167407
 trunk/gcc/go/gofrontend/parse.h.merge-right.r172891
 trunk/gcc/go/gofrontend/parse.h.working
 trunk/gcc/go/gofrontend/statements.cc.merge-left.r167407
 trunk/gcc/go/gofrontend/statements.cc.merge-right.r172891
 trunk/gcc/go/gofrontend/statements.cc.working
 trunk/gcc/go/gofrontend/statements.h.merge-left.r167407
 trunk/gcc/go/gofrontend/statements.h.merge-right.r172891
 trunk/gcc/go/gofrontend/statements.h.working
 trunk/gcc/go/gofrontend/types.cc.merge-left.r167407
 trunk/gcc/go/gofrontend/types.cc.merge-right.r172891
 trunk/gcc/go/gofrontend/types.cc.working
 trunk/gcc/go/gofrontend/unsafe.cc.merge-left.r167407
 trunk/gcc/go/gofrontend/unsafe.cc.merge-right.r172891
 trunk/gcc/go/gofrontend/unsafe.cc.working

Can you fix it?

Thanks.


H.J.

I am working on it.  Both the gcc/go and libgo directories had numerous 
conflicts during merge even though we never touch those directories for 
gfortran.  Why it would add those I have no idea.  At the time of my commit 
there were no conflicts showing. Regardless, I will clean it up as I go here.


The goal is to get gcc/fortran and libgfortran on the branch up to date with 
trunk.

Jerry

Jerry


Re: Strange commit from fortran-dev branch

2011-06-05 Thread jerry DeLisle

On 06/05/2011 01:58 PM, H.J. Lu wrote:

On Sun, Jun 5, 2011 at 12:17 PM, H.J. Lu  wrote:

Hi,

Your commit:

http://gcc.gnu.org/ml/gcc-cvs/2011-06/msg00145.html

includes some bogus entries:

trunk/gcc/go/gofrontend/expressions.cc.merge-left.r167407
trunk/gcc/go/gofrontend/expressions.cc.merge-right.r172891
trunk/gcc/go/gofrontend/expressions.cc.working
trunk/gcc/go/gofrontend/go.cc.merge-left.r167407
trunk/gcc/go/gofrontend/go.cc.merge-right.r172891
trunk/gcc/go/gofrontend/go.cc.working
trunk/gcc/go/gofrontend/gogo-tree.cc.merge-left.r167407
trunk/gcc/go/gofrontend/gogo-tree.cc.merge-right.r172891
trunk/gcc/go/gofrontend/gogo-tree.cc.working
trunk/gcc/go/gofrontend/gogo.cc.merge-left.r167407
trunk/gcc/go/gofrontend/gogo.cc.merge-right.r172891
trunk/gcc/go/gofrontend/gogo.cc.working
trunk/gcc/go/gofrontend/gogo.h.merge-left.r167407
trunk/gcc/go/gofrontend/gogo.h.merge-right.r172891
trunk/gcc/go/gofrontend/gogo.h.working
trunk/gcc/go/gofrontend/parse.cc.merge-left.r167407
trunk/gcc/go/gofrontend/parse.cc.merge-right.r172891
trunk/gcc/go/gofrontend/parse.cc.working
trunk/gcc/go/gofrontend/parse.h.merge-left.r167407
trunk/gcc/go/gofrontend/parse.h.merge-right.r172891
trunk/gcc/go/gofrontend/parse.h.working
trunk/gcc/go/gofrontend/statements.cc.merge-left.r167407
trunk/gcc/go/gofrontend/statements.cc.merge-right.r172891
trunk/gcc/go/gofrontend/statements.cc.working
trunk/gcc/go/gofrontend/statements.h.merge-left.r167407
trunk/gcc/go/gofrontend/statements.h.merge-right.r172891
trunk/gcc/go/gofrontend/statements.h.working
trunk/gcc/go/gofrontend/types.cc.merge-left.r167407
trunk/gcc/go/gofrontend/types.cc.merge-right.r172891
trunk/gcc/go/gofrontend/types.cc.working
trunk/gcc/go/gofrontend/unsafe.cc.merge-left.r167407
trunk/gcc/go/gofrontend/unsafe.cc.merge-right.r172891
trunk/gcc/go/gofrontend/unsafe.cc.working

Can you fix it?


I checked in this patch:

http://gcc.gnu.org/ml/gcc-cvs/2011-06/msg00150.html

to revert it.

OK thanks,  I still see some local conflicts on libstd++ so i am going to 
delete/clean the local tree and recheckout and see where we are.


Thanks,

Jerry



patch trunk: seek plugin also in a language specific directory when given a short name

2011-06-05 Thread Basile Starynkevitch
Hello All,

Front-end functions (e.g. pragma-related) are not available to all
plugins (e.g. not to plugins fired from lto1). See the
http://gcc.gnu.org/ml/gcc/2011-05/msg00321.html discussion.

This patch document a little bit that, and search short plugins like 
-fplugin=name in both `gcc -print-file-name=plugin`/name.so  and  
`gcc -print-file-name=plugin`/cc1/name.so or 
`gcc -print-file-name=plugin`/cc1plus/name.so or 
`gcc -print-file-name=plugin`/lto1/name.so  etc ..
 
# gcc/ChangeLog entries 
2011-06-06  Basile Starynkevitch  

* doc/plugins.texi (Loading plugins): Plugins are also 
seeked in a front-end specific subdirectory.
(Plugin callbacks): lto1 plugins can't register pragma handlers.

* plugin.c: Update copyright year.
(PLUGIN_FILE_SUFFIX): New constant macro.
(add_new_plugin): Search short plugins also in a front-end specific 
subdirectory.
#

Attaching patch to trunk 174684

Comments are welcome. Ok for trunk?

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} ***
Index: gcc/doc/plugins.texi
===
--- gcc/doc/plugins.texi	(revision 174684)
+++ gcc/doc/plugins.texi	(working copy)
@@ -23,10 +23,14 @@ plugins as key-value pairs. Multiple plugins can b
 specifying multiple @option{-fplugin} arguments.
 
 A plugin can be simply given by its short name (no dots or
-slashes). When simply passing @option{-fplugin=@var{name}}, the plugin is
-loaded from the @file{plugin} directory, so @option{-fplugin=@var{name}} is
-the same as @option{-fplugin=`gcc -print-file-name=plugin`/@var{name}.so},
-using backquote shell syntax to query the @file{plugin} directory.
+slashes). When simply passing @option{-fplugin=@var{name}}, the plugin
+is loaded from the @file{plugin} directory using if needed a front-end
+specific subdirectory, so @option{-fplugin=@var{name}} is the same as
+@option{-fplugin=`gcc -print-file-name=plugin`/@var{program}/@var{name}.so} or
+@option{-fplugin=`gcc -print-file-name=plugin`/@var{name}.so}, using
+backquote shell syntax to query the @file{plugin} directory, where
+@var{program} is one of @code{cc1}, @code{cc1plus}, @code{lto1} etc. 
+This permits some plugins to be available only to some front-ends.
 
 @section Plugin API
 
@@ -207,10 +211,11 @@ For the PLUGIN_PASS_MANAGER_SETUP, PLUGIN_INFO, PL
 and PLUGIN_REGISTER_GGC_CACHES pseudo-events the @code{callback} should be
 null, and the @code{user_data} is specific.
 
-When the PLUGIN_PRAGMAS event is triggered (with a null
-pointer as data from GCC), plugins may register their own pragmas
-using functions like @code{c_register_pragma} or
-@code{c_register_pragma_with_expansion}.
+When the PLUGIN_PRAGMAS event is triggered (with a null pointer as
+data from GCC), plugins may register their own pragmas using functions
+like @code{c_register_pragma} or
+@code{c_register_pragma_with_expansion}. This is not possible in
+plugins run from @code{lto1}.
 
 @section Interacting with the pass manager
 
Index: gcc/plugin.c
===
--- gcc/plugin.c	(revision 174684)
+++ gcc/plugin.c	(working copy)
@@ -1,5 +1,5 @@
 /* Support for GCC plugin mechanism.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -117,6 +117,12 @@ get_plugin_base_name (const char *full_name)
 }
 
 
+/* FIXME: the ".so" suffix is currently builtin, since plugins
+   only work on ELF host systems like e.g. Linux or Solaris.  
+   When plugins shall be available on non ELF systems such as
+   Windows or MacOS, this code has to be greatly improved.  */
+#define PLUGIN_FILE_SUFFIX ".so"
+
 /* Create a plugin_name_args object for the given plugin and insert it
to the hash table. This function is called when
-fplugin=/path/to/NAME.so or -fplugin=NAME option is processed.  */
@@ -140,17 +146,37 @@ add_new_plugin (const char* plugin_name)
 
   if (name_is_short)
 {
+  char *plugpath;
+  char* foundpath = NULL;
   base_name = CONST_CAST (char*, plugin_name);
-  /* FIXME: the ".so" suffix is currently builtin, since plugins
-	 only work on ELF host systems like e.g. Linux or Solaris.
-	 When plugins shall be available on non ELF systems such as
-	 Windows or MacOS, this code has to be greatly improved.  */
-  plugin_name = concat (default_plugin_dir_name (), "/",
-			plugin_name, ".so", NULL);
-  if (access (plugin_name, R_OK))
+
+  /* Look for PLUGINDIR/PROGNAME/NAME.so.  This is useful for
+	 front-end specific plugins.  */
+  if (!foundpath)
+	plugpath = concat (default_plugin_di