* [Bug lto/53780] [l4.7.1 lto] linker fails with lto and "standard" object file
2012-06-26 15:23 [Bug lto/53780] New: [l4.7.1 lto] linker fails with lto and "standard" object file vincenzo.innocente at cern dot ch
@ 2012-06-28 12:52 ` vincenzo.innocente at cern dot ch
2012-06-29 6:11 ` vincenzo.innocente at cern dot ch
` (9 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: vincenzo.innocente at cern dot ch @ 2012-06-28 12:52 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53780
--- Comment #1 from vincenzo Innocente <vincenzo.innocente at cern dot ch> 2012-06-28 12:52:42 UTC ---
the failure on vanilla fedora may be related to PR53768
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug lto/53780] [l4.7.1 lto] linker fails with lto and "standard" object file
2012-06-26 15:23 [Bug lto/53780] New: [l4.7.1 lto] linker fails with lto and "standard" object file vincenzo.innocente at cern dot ch
2012-06-28 12:52 ` [Bug lto/53780] " vincenzo.innocente at cern dot ch
@ 2012-06-29 6:11 ` vincenzo.innocente at cern dot ch
2012-06-29 7:39 ` vincenzo.innocente at cern dot ch
` (8 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: vincenzo.innocente at cern dot ch @ 2012-06-29 6:11 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53780
--- Comment #2 from vincenzo Innocente <vincenzo.innocente at cern dot ch> 2012-06-29 06:11:19 UTC ---
seems fixed by the back-port published in comment 4 PR53768
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug lto/53780] [l4.7.1 lto] linker fails with lto and "standard" object file
2012-06-26 15:23 [Bug lto/53780] New: [l4.7.1 lto] linker fails with lto and "standard" object file vincenzo.innocente at cern dot ch
2012-06-28 12:52 ` [Bug lto/53780] " vincenzo.innocente at cern dot ch
2012-06-29 6:11 ` vincenzo.innocente at cern dot ch
@ 2012-06-29 7:39 ` vincenzo.innocente at cern dot ch
2012-06-29 10:34 ` vincenzo.innocente at cern dot ch
` (7 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: vincenzo.innocente at cern dot ch @ 2012-06-29 7:39 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53780
--- Comment #3 from vincenzo Innocente <vincenzo.innocente at cern dot ch> 2012-06-29 07:39:02 UTC ---
The patch HAS a side effect that I observed also in 4.8 and had no time to
reduce yet.
(At least now I know the origin of it)
something pretty weird
plenty of
error:
tmp/slc5_amd64_gcc470/src/FWCore/Modules/src/FWCoreModules/MulticoreRunLumiEventChecker.o:
multiple definition of
'edm::WorkerT<edm::EDAnalyzer>::implDoBegin(edm::EventPrincipal&,
edm::EventSetup const&, edm::CurrentProcessingContext const*)::{lambda(ed
m::Worker*)#1}::operator void (*)(edm::Worker*)() const'
/afs/cern.ch/user/i/innocent/w3/gcc47slc5/bin/ld:
tmp/slc5_amd64_gcc470/src/FWCore/Modules/src/FWCoreModules/EventContentAnalyzer.o:
previous definition he
re
/afs/cern.ch/user/i/innocent/w3/gcc47slc5/bin/ld: error:
tmp/slc5_amd64_gcc470/src/FWCore/Modules/src/FWCoreModules/Prescaler.o:
multiple definition of
'edm::WorkerT<edm::EDFilter>::implDoBegin(edm::EventPrincipal&, edm::EventSetup
const&, edm::CurrentProcessingContext const*)::{lambda(edm::Worker*)#1}::_FUN(
edm::Worker*)'
/afs/cern.ch/user/i/innocent/w3/gcc47slc5/bin/ld:
tmp/slc5_amd64_gcc470/src/FWCore/Modules/src/FWCoreModules/LogErrorFilter.o:
previous definition here
ld is
GNU gold (GNU Binutils 2.22.52.20120515) 1.11
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug lto/53780] [l4.7.1 lto] linker fails with lto and "standard" object file
2012-06-26 15:23 [Bug lto/53780] New: [l4.7.1 lto] linker fails with lto and "standard" object file vincenzo.innocente at cern dot ch
` (2 preceding siblings ...)
2012-06-29 7:39 ` vincenzo.innocente at cern dot ch
@ 2012-06-29 10:34 ` vincenzo.innocente at cern dot ch
2012-06-29 10:51 ` rguenth at gcc dot gnu.org
` (6 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: vincenzo.innocente at cern dot ch @ 2012-06-29 10:34 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53780
--- Comment #4 from vincenzo Innocente <vincenzo.innocente at cern dot ch> 2012-06-29 10:34:22 UTC ---
take back: (never do two updates at once)
in SOMETHING else committed between
gcc version 4.7.2 20120615 (prerelease) [gcc-4_7-branch revision 188650] (GCC)
and
gcc-4_7-branch revision 189063
that causes the regression in comment 3
the patch above revision 188650 is ok and does not cause regression
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug lto/53780] [l4.7.1 lto] linker fails with lto and "standard" object file
2012-06-26 15:23 [Bug lto/53780] New: [l4.7.1 lto] linker fails with lto and "standard" object file vincenzo.innocente at cern dot ch
` (3 preceding siblings ...)
2012-06-29 10:34 ` vincenzo.innocente at cern dot ch
@ 2012-06-29 10:51 ` rguenth at gcc dot gnu.org
2012-06-29 13:20 ` vincenzo.innocente at cern dot ch
` (5 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-06-29 10:51 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53780
--- Comment #5 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-06-29 10:50:48 UTC ---
Candidates are
+2012-06-19 Jason Merrill <jason@redhat.com>
+
+ PR c++/52637
+ * dwarf2out.c (modified_type_die): Use scope_die_for.
+ (gen_type_die_with_usage, dwarf2out_finish): Likewise.
+ (uses_local_type_r, uses_local_type): New.
+ (scope_die_for): Keep a type that uses a local type in local scope.
+ Use get_context_die for namespace and type scope.
+2012-06-19 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/53470
+ * tree.c (free_lang_data_in_type): Do not clear TYPE_CONTEXT but
+ replace it with the first non-BLOCK context.
if you are using -g and all C++ changes.
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug lto/53780] [l4.7.1 lto] linker fails with lto and "standard" object file
2012-06-26 15:23 [Bug lto/53780] New: [l4.7.1 lto] linker fails with lto and "standard" object file vincenzo.innocente at cern dot ch
` (4 preceding siblings ...)
2012-06-29 10:51 ` rguenth at gcc dot gnu.org
@ 2012-06-29 13:20 ` vincenzo.innocente at cern dot ch
2012-06-29 13:46 ` rguenth at gcc dot gnu.org
` (4 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: vincenzo.innocente at cern dot ch @ 2012-06-29 13:20 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53780
--- Comment #6 from vincenzo Innocente <vincenzo.innocente at cern dot ch> 2012-06-29 13:20:31 UTC ---
the regression in comment 3 happens with
gcc version 4.7.2 20120620 (prerelease) [gcc-4_7-branch revision 188811] (GCC)
(and was a fix required by myself)
will open a new bug report (btw no -g involved!)
is connected to "sigcpp": will try to reproduce with something small
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug lto/53780] [l4.7.1 lto] linker fails with lto and "standard" object file
2012-06-26 15:23 [Bug lto/53780] New: [l4.7.1 lto] linker fails with lto and "standard" object file vincenzo.innocente at cern dot ch
` (5 preceding siblings ...)
2012-06-29 13:20 ` vincenzo.innocente at cern dot ch
@ 2012-06-29 13:46 ` rguenth at gcc dot gnu.org
2012-06-29 15:03 ` vincenzo.innocente at cern dot ch
` (3 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-06-29 13:46 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53780
Richard Guenther <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |rguenth at gcc dot gnu.org
--- Comment #7 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-06-29 13:45:50 UTC ---
Hmm. Does
Index: gcc/tree.c
===================================================================
--- gcc/tree.c (revision 189046)
+++ gcc/tree.c (working copy)
@@ -4852,7 +4852,15 @@ find_decls_types_r (tree *tp, int *ws, v
fld_worklist_push (TYPE_MAIN_VARIANT (t), fld);
/* Do not walk TYPE_NEXT_VARIANT. We do not stream it and thus
do not and want not to reach unused variants this way. */
- fld_worklist_push (TYPE_CONTEXT (t), fld);
+ if (TYPE_CONTEXT (t))
+ {
+ tree ctx = TYPE_CONTEXT (t);
+ /* We adjust BLOCK TYPE_CONTEXTs to the innermost non-BLOCK one.
+ So push that instead. */
+ while (ctx && TREE_CODE (ctx) == BLOCK)
+ ctx = BLOCK_SUPERCONTEXT (ctx);
+ fld_worklist_push (ctx, fld);
+ }
/* Do not walk TYPE_CANONICAL. We do not stream it and thus do not
and want not to reach unused types this way. */
fix it?
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug lto/53780] [l4.7.1 lto] linker fails with lto and "standard" object file
2012-06-26 15:23 [Bug lto/53780] New: [l4.7.1 lto] linker fails with lto and "standard" object file vincenzo.innocente at cern dot ch
` (6 preceding siblings ...)
2012-06-29 13:46 ` rguenth at gcc dot gnu.org
@ 2012-06-29 15:03 ` vincenzo.innocente at cern dot ch
2012-06-29 15:31 ` vincenzo.innocente at cern dot ch
` (2 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: vincenzo.innocente at cern dot ch @ 2012-06-29 15:03 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53780
--- Comment #8 from vincenzo Innocente <vincenzo.innocente at cern dot ch> 2012-06-29 15:03:17 UTC ---
NOT when applied on the top of
gcc version 4.8.0 20120629 (experimental) [trunk revision 189073] (GCC)
svn diff
Index: gcc/tree.c
===================================================================
--- gcc/tree.c (revision 189073)
+++ gcc/tree.c (working copy)
@@ -4910,7 +4910,15 @@
fld_worklist_push (TYPE_MAIN_VARIANT (t), fld);
/* Do not walk TYPE_NEXT_VARIANT. We do not stream it and thus
do not and want not to reach unused variants this way. */
- fld_worklist_push (TYPE_CONTEXT (t), fld);
+ if (TYPE_CONTEXT (t))
+ {
+ tree ctx = TYPE_CONTEXT (t);
+ /* We adjust BLOCK TYPE_CONTEXTs to the innermost non-BLOCK one.
+ So push that instead. */
+ while (ctx && TREE_CODE (ctx) == BLOCK)
+ ctx = BLOCK_SUPERCONTEXT (ctx);
+ fld_worklist_push (ctx, fld);
+ }
/* Do not walk TYPE_CANONICAL. We do not stream it and thus do not
and want not to reach unused types this way. */
I'll try also with 4.7
did not manage yet to reproduce with simple examples using sigcpp...
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug lto/53780] [l4.7.1 lto] linker fails with lto and "standard" object file
2012-06-26 15:23 [Bug lto/53780] New: [l4.7.1 lto] linker fails with lto and "standard" object file vincenzo.innocente at cern dot ch
` (7 preceding siblings ...)
2012-06-29 15:03 ` vincenzo.innocente at cern dot ch
@ 2012-06-29 15:31 ` vincenzo.innocente at cern dot ch
2012-06-30 15:24 ` vincenzo.innocente at cern dot ch
2012-10-11 19:10 ` matt at use dot net
10 siblings, 0 replies; 12+ messages in thread
From: vincenzo.innocente at cern dot ch @ 2012-06-29 15:31 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53780
--- Comment #9 from vincenzo Innocente <vincenzo.innocente at cern dot ch> 2012-06-29 15:31:12 UTC ---
in any case the "regression" disappear if I declare inline the template methods
in question
template<typename T>
+ inline
bool
WorkerT<T>::implDoBegin(EventPrincipal& ep, EventSetup const& c,
CurrentProcessingContext const* cpc) {
etc
so I would suggest not to touch anything until is not understood If it a real
compiler bug or a "user" code mistake…
v.
On 29 Jun, 2012, at 5:03 PM, vincenzo.innocente at cern dot ch wrote:
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53780
>
> --- Comment #8 from vincenzo Innocente <vincenzo.innocente at cern dot ch> 2012-06-29 15:03:17 UTC ---
> NOT when applied on the top of
> gcc version 4.8.0 20120629 (experimental) [trunk revision 189073] (GCC)
> svn diff
> Index: gcc/tree.c
> ===================================================================
> --- gcc/tree.c (revision 189073)
> +++ gcc/tree.c (working copy)
> @@ -4910,7 +4910,15 @@
> fld_worklist_push (TYPE_MAIN_VARIANT (t), fld);
> /* Do not walk TYPE_NEXT_VARIANT. We do not stream it and thus
> do not and want not to reach unused variants this way. */
> - fld_worklist_push (TYPE_CONTEXT (t), fld);
> + if (TYPE_CONTEXT (t))
> + {
> + tree ctx = TYPE_CONTEXT (t);
> + /* We adjust BLOCK TYPE_CONTEXTs to the innermost non-BLOCK one.
> + So push that instead. */
> + while (ctx && TREE_CODE (ctx) == BLOCK)
> + ctx = BLOCK_SUPERCONTEXT (ctx);
> + fld_worklist_push (ctx, fld);
> + }
> /* Do not walk TYPE_CANONICAL. We do not stream it and thus do not
> and want not to reach unused types this way. */
>
> I'll try also with 4.7
>
> did not manage yet to reproduce with simple examples using sigcpp...
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug lto/53780] [l4.7.1 lto] linker fails with lto and "standard" object file
2012-06-26 15:23 [Bug lto/53780] New: [l4.7.1 lto] linker fails with lto and "standard" object file vincenzo.innocente at cern dot ch
` (8 preceding siblings ...)
2012-06-29 15:31 ` vincenzo.innocente at cern dot ch
@ 2012-06-30 15:24 ` vincenzo.innocente at cern dot ch
2012-10-11 19:10 ` matt at use dot net
10 siblings, 0 replies; 12+ messages in thread
From: vincenzo.innocente at cern dot ch @ 2012-06-30 15:24 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53780
--- Comment #10 from vincenzo Innocente <vincenzo.innocente at cern dot ch> 2012-06-30 15:24:24 UTC ---
reduced testcase for comment 3 regression as PR53821
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug lto/53780] [l4.7.1 lto] linker fails with lto and "standard" object file
2012-06-26 15:23 [Bug lto/53780] New: [l4.7.1 lto] linker fails with lto and "standard" object file vincenzo.innocente at cern dot ch
` (9 preceding siblings ...)
2012-06-30 15:24 ` vincenzo.innocente at cern dot ch
@ 2012-10-11 19:10 ` matt at use dot net
10 siblings, 0 replies; 12+ messages in thread
From: matt at use dot net @ 2012-10-11 19:10 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53780
Matt Hargett <matt at use dot net> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |matt at use dot net
--- Comment #11 from Matt Hargett <matt at use dot net> 2012-10-11 19:10:00 UTC ---
I am also seeing the message:
boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::gregorian::bad_day_of_year>
warning: relocation refers to discarded section
in my final link of a large C++ program compiled with LTO (with boost not
compiled as LTO). I tried compiling boost with LTO to work around the problem,
but got an ICE instead (will file that later).
Do the patches mentioned below (still) fix the problem in 4.7.x?
^ permalink raw reply [flat|nested] 12+ messages in thread