Does using -fno-tree-sink avoid the problem even without this patch?
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41354

Den 5. aug. 2010 14.36 skrev <[email protected]>:

> 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
>



-- 
Erik Corry, Software Engineer
Google Denmark ApS.  CVR nr. 28 86 69 84
c/o Philip & Partners, 7 Vognmagergade, P.O. Box 2227, DK-1018 Copenhagen K,
Denmark.

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

Reply via email to