cpu: Avoid including inorder TLBUnit to avoid gcc LTO bug
authorAndreas Hansson <andreas.hansson@arm.com>
Wed, 20 Mar 2013 10:41:23 +0000 (06:41 -0400)
committerAndreas Hansson <andreas.hansson@arm.com>
Wed, 20 Mar 2013 10:41:23 +0000 (06:41 -0400)
This patch comments out the inclusion of the inorder TLBUnit which is
only used in the 9-stage pipeline. With the TLBUnit present, gcc >=
4.6 in combination with LTO ends up throwing away the definition of
the TLBUnit destructor, and consequently fail to link. See
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53808 for more details
about the bug, and http://gcc.gnu.org/ml/gcc/2012-06/msg00397.html for
the discussion thread that also touches on similar issues seen with
clang.

src/cpu/inorder/resources/resource_list.hh

index ae6b4ecaf95c87fdb4746fc5959668a21798989b..a3876d80f199ee6b24e11384a8ab957a18418661 100644 (file)
@@ -42,7 +42,9 @@
 #include "cpu/inorder/resources/graduation_unit.hh"
 #include "cpu/inorder/resources/inst_buffer.hh"
 #include "cpu/inorder/resources/mult_div_unit.hh"
-#include "cpu/inorder/resources/tlb_unit.hh"
+// The TLBUnit is only needed with the 9-stage pipe and is
+// triggering a gcc LTO bug
+//#include "cpu/inorder/resources/tlb_unit.hh"
 #include "cpu/inorder/resources/use_def.hh"
 
 #endif