Strange git commit on master branch in gcc git mirror
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
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
"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
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
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
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
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
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