Revision: 5179
Author: [email protected]
Date: Thu Aug  5 05:34:53 2010
Log: Fix GCC 4.4.4 build

Force a number functions to not inline in order th work around a bug in GCC 4.4.4.

See http://codereview.chromium.org/3083016 for more info.
Review URL: http://codereview.chromium.org/3034056
http://code.google.com/p/v8/source/detail?r=5179

Modified:
 /branches/bleeding_edge/src/globals.h
 /branches/bleeding_edge/src/heap.h

=======================================
--- /branches/bleeding_edge/src/globals.h       Wed Jul 14 04:18:09 2010
+++ /branches/bleeding_edge/src/globals.h       Thu Aug  5 05:34:53 2010
@@ -643,11 +643,14 @@
 #if defined(__GNUC__) && !defined(DEBUG)
 #if (__GNUC__ >= 4)
 #define INLINE(header) inline header  __attribute__((always_inline))
+#define NO_INLINE(header) header __attribute__((noinline))
 #else
 #define INLINE(header) inline __attribute__((always_inline)) header
+#define NO_INLINE(header) __attribute__((noinline)) header
 #endif
 #else
 #define INLINE(header) inline header
+#define NO_INLINE(header) header
 #endif

 // Feature flags bit positions. They are mostly based on the CPUID spec.
=======================================
--- /branches/bleeding_edge/src/heap.h  Thu Aug  5 04:19:43 2010
+++ /branches/bleeding_edge/src/heap.h  Thu Aug  5 05:34:53 2010
@@ -1195,12 +1195,12 @@
   static bool CreateInitialMaps();
   static bool CreateInitialObjects();

- // These four Create*EntryStub functions are here because of a gcc-4.4 bug
-  // that assigns wrong vtable entries.
-  static void CreateCEntryStub();
-  static void CreateJSEntryStub();
-  static void CreateJSConstructEntryStub();
-  static void CreateRegExpCEntryStub();
+ // These four Create*EntryStub functions are here and forced to not be inlined
+  // because of a gcc-4.4 bug that assigns wrong vtable entries.
+  NO_INLINE(static void CreateCEntryStub());
+  NO_INLINE(static void CreateJSEntryStub());
+  NO_INLINE(static void CreateJSConstructEntryStub());
+  NO_INLINE(static void CreateRegExpCEntryStub());

   static void CreateFixedStubs();

--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to