Commit 31f3026b authored by sgjesse@chromium.org's avatar sgjesse@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5179 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 2ba27d22
...@@ -643,11 +643,14 @@ F FUNCTION_CAST(Address addr) { ...@@ -643,11 +643,14 @@ F FUNCTION_CAST(Address addr) {
#if defined(__GNUC__) && !defined(DEBUG) #if defined(__GNUC__) && !defined(DEBUG)
#if (__GNUC__ >= 4) #if (__GNUC__ >= 4)
#define INLINE(header) inline header __attribute__((always_inline)) #define INLINE(header) inline header __attribute__((always_inline))
#define NO_INLINE(header) header __attribute__((noinline))
#else #else
#define INLINE(header) inline __attribute__((always_inline)) header #define INLINE(header) inline __attribute__((always_inline)) header
#define NO_INLINE(header) __attribute__((noinline)) header
#endif #endif
#else #else
#define INLINE(header) inline header #define INLINE(header) inline header
#define NO_INLINE(header) header
#endif #endif
// Feature flags bit positions. They are mostly based on the CPUID spec. // Feature flags bit positions. They are mostly based on the CPUID spec.
......
...@@ -1195,12 +1195,12 @@ class Heap : public AllStatic { ...@@ -1195,12 +1195,12 @@ class Heap : public AllStatic {
static bool CreateInitialMaps(); static bool CreateInitialMaps();
static bool CreateInitialObjects(); static bool CreateInitialObjects();
// These four Create*EntryStub functions are here because of a gcc-4.4 bug // These four Create*EntryStub functions are here and forced to not be inlined
// that assigns wrong vtable entries. // because of a gcc-4.4 bug that assigns wrong vtable entries.
static void CreateCEntryStub(); NO_INLINE(static void CreateCEntryStub());
static void CreateJSEntryStub(); NO_INLINE(static void CreateJSEntryStub());
static void CreateJSConstructEntryStub(); NO_INLINE(static void CreateJSConstructEntryStub());
static void CreateRegExpCEntryStub(); NO_INLINE(static void CreateRegExpCEntryStub());
static void CreateFixedStubs(); static void CreateFixedStubs();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment