diff -u -r chrome/browser/search_engines/template_url_prepopulate_data.h chrome/browser/search_engines/template_url_prepopulate_data.h
--- chrome/browser/search_engines/template_url_prepopulate_data.h	2011-04-13 13:23:41.000000000 +0400
+++ chrome/browser/search_engines/template_url_prepopulate_data.h	2011-04-20 19:32:58.000000000 +0400
@@ -7,6 +7,7 @@
 #pragma once
 
 #include <vector>
+#include <cstddef>
 
 class GURL;
 class PrefService;
diff -u -r gpu/command_buffer/common/types.h gpu/command_buffer/common/types.h
--- gpu/command_buffer/common/types.h	2011-04-13 13:22:57.000000000 +0400
+++ gpu/command_buffer/common/types.h	2011-04-20 19:32:58.000000000 +0400
@@ -11,6 +11,7 @@
 #include <stdint.h>
 #endif
 #include <string>
+#include <cstddef>
 
 typedef signed char         schar;
 typedef signed char         int8;
diff -u -r ppapi/cpp/paint_aggregator.h ppapi/cpp/paint_aggregator.h
--- ppapi/cpp/paint_aggregator.h	2011-04-13 13:22:58.000000000 +0400
+++ ppapi/cpp/paint_aggregator.h	2011-04-20 20:11:44.000000000 +0400
@@ -9,6 +9,7 @@
 
 #include "ppapi/cpp/point.h"
 #include "ppapi/cpp/rect.h"
+#include <cstddef>
 
 namespace pp {
 
diff -u -r third_party/libjingle/source/talk/base/sigslot.h third_party/libjingle/source/talk/base/sigslot.h
--- third_party/libjingle/source/talk/base/sigslot.h	2011-04-13 13:25:41.000000000 +0400
+++ third_party/libjingle/source/talk/base/sigslot.h	2011-04-20 20:00:43.000000000 +0400
@@ -80,6 +80,7 @@
 
 #include <set>
 #include <list>
+#include <cstddef>
 
 // On our copy of sigslot.h, we force single threading
 #define SIGSLOT_PURE_ISO
diff -u -r third_party/ots/src/os2.cc third_party/ots/src/os2.cc
--- third_party/ots/src/os2.cc	2011-04-13 13:24:06.000000000 +0400
+++ third_party/ots/src/os2.cc	2011-04-20 19:45:44.000000000 +0400
@@ -5,6 +5,7 @@
 #include "os2.h"
 
 #include "head.h"
+#include <cstddef>
 
 // OS/2 - OS/2 and Windows Metrics
 // http://www.microsoft.com/opentype/otspec/os2.htm
diff -u -r third_party/tcmalloc/chromium/src/base/stl_allocator.h third_party/tcmalloc/chromium/src/base/stl_allocator.h
--- third_party/tcmalloc/chromium/src/base/stl_allocator.h	2011-04-13 13:23:04.000000000 +0400
+++ third_party/tcmalloc/chromium/src/base/stl_allocator.h	2011-04-20 19:32:58.000000000 +0400
@@ -38,6 +38,7 @@
 #include <config.h>
 
 #include <limits>
+#include <cstddef>
 
 #include "base/basictypes.h"
 #include "base/logging.h"
diff -u -r third_party/tcmalloc/chromium/src/base/vdso_support.h third_party/tcmalloc/chromium/src/base/vdso_support.h
--- third_party/tcmalloc/chromium/src/base/vdso_support.h	2011-04-13 13:23:04.000000000 +0400
+++ third_party/tcmalloc/chromium/src/base/vdso_support.h	2011-04-20 19:32:58.000000000 +0400
@@ -37,6 +37,7 @@
 
 #define HAVE_VDSO_SUPPORT 1
 
+#include <cstddef>
 #include <stdlib.h>     // for NULL
 #include <link.h>  // for ElfW
 #include "base/basictypes.h"
diff -u -r third_party/tcmalloc/chromium/src/common.cc third_party/tcmalloc/chromium/src/common.cc
--- third_party/tcmalloc/chromium/src/common.cc	2011-04-13 13:23:04.000000000 +0400
+++ third_party/tcmalloc/chromium/src/common.cc	2011-04-20 19:32:58.000000000 +0400
@@ -34,6 +34,7 @@
 #include "system-alloc.h"
 #include "config.h"
 #include "common.h"
+#include <cstddef>
 
 namespace tcmalloc {
 
diff -u -r third_party/tcmalloc/chromium/src/symbolize.h third_party/tcmalloc/chromium/src/symbolize.h
--- third_party/tcmalloc/chromium/src/symbolize.h	2011-04-13 13:23:04.000000000 +0400
+++ third_party/tcmalloc/chromium/src/symbolize.h	2011-04-20 19:32:58.000000000 +0400
@@ -38,6 +38,7 @@
 #include <stdint.h>  // for uintptr_t
 #endif
 #include <map>
+#include <cstddef>
 
 using std::map;
 
diff -u -r third_party/tcmalloc/chromium/src/system-alloc.h third_party/tcmalloc/chromium/src/system-alloc.h
--- third_party/tcmalloc/chromium/src/system-alloc.h	2011-04-13 13:23:04.000000000 +0400
+++ third_party/tcmalloc/chromium/src/system-alloc.h	2011-04-20 19:32:58.000000000 +0400
@@ -37,6 +37,7 @@
 #define TCMALLOC_SYSTEM_ALLOC_H_
 
 #include <config.h>
+#include <cstddef>
 #include "internal_logging.h"
 
 // REQUIRES: "alignment" is a power of two or "0" to indicate default alignment
diff -u -r ui/gfx/codec/jpeg_codec.h ui/gfx/codec/jpeg_codec.h
--- ui/gfx/codec/jpeg_codec.h	2011-04-13 13:23:45.000000000 +0400
+++ ui/gfx/codec/jpeg_codec.h	2011-04-20 19:32:58.000000000 +0400
@@ -7,6 +7,7 @@
 #pragma once
 
 #include <vector>
+#include <cstddef>
 
 class SkBitmap;
 
--- ppapi/cpp/paint_aggregator.h	2010-12-23 18:10:27.000000000 -0600
+++ ppapi/cpp/paint_aggregator.h~	2011-04-19 05:34:56.085582885 -0500
@@ -5,6 +5,7 @@
 #ifndef PPAPI_CPP_PAINT_AGGREGATOR_H_
 #define PPAPI_CPP_PAINT_AGGREGATOR_H_
 
+#include <cstddef>
 #include <vector>
 
 #include "ppapi/cpp/point.h"
Index: Source/WebCore/ChangeLog
===================================================================
--- third_party/WebKit/Source/WebCore/ChangeLog	(revision 84120)
+++ third_party/WebKit/Source/WebCore/ChangeLog	(revision 84123)
@@ -1,2 +1,24 @@
+2011-04-17  Thierry Reding  <thierry.reding@avionic-design.de>
+
+        Reviewed by Adam Barth.
+
+        Fix build with GCC 4.6.
+
+        * dom/make_names.pl: Execute preprocessor without the -P option. The
+        preprocessor in GCC 4.6 eats empty lines, effectively breaking the
+        parsing performed by this script. Dropping the -P option when invoking
+        the preprocessor keeps the empty lines but as a side-effect also adds
+        additional linemarkers.
+
+        From the cpp manpage:
+
+          -P  Inhibit generation of linemarkers in the output from the
+              preprocessor. This might be useful when running the preprocessor
+              on something that is not C code, and will be sent to a program
+              which might be confused by the linemarkers.
+
+        The linemarkers are not problematic, however, because the script
+        properly handles them by ignoring all lines starting with a #.
+
 2011-04-17  David Kilzer  <ddkilzer@apple.com>
 
