2011-02-03 Dirk Pranke <dpranke@chromium.org>
authordpranke@chromium.org <dpranke@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 4 Feb 2011 03:59:26 +0000 (03:59 +0000)
committerdpranke@chromium.org <dpranke@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 4 Feb 2011 03:59:26 +0000 (03:59 +0000)
        Unreviewed, rolling out r77562.
        http://trac.webkit.org/changeset/77562
        https://bugs.webkit.org/show_bug.cgi?id=53630

        broke chromium mac build

        * WebCore.gyp/WebCore.gyp:
        * WebCore.gyp/mac/check_objc_rename.sh: Removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@77589 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/WebCore.gyp/WebCore.gyp
Source/WebCore/WebCore.gyp/mac/check_objc_rename.sh [deleted file]

index e0cd24e..ac9407c 100644 (file)
@@ -1,3 +1,14 @@
+2011-02-03  Dirk Pranke  <dpranke@chromium.org>
+
+        Unreviewed, rolling out r77562.
+        http://trac.webkit.org/changeset/77562
+        https://bugs.webkit.org/show_bug.cgi?id=53630
+
+        broke chromium mac build
+
+        * WebCore.gyp/WebCore.gyp:
+        * WebCore.gyp/mac/check_objc_rename.sh: Removed.
+
 2011-02-03  Adam Barth  <abarth@webkit.org>
 
         Reviewed by Daniel Bates.
index 6051bfd..70df557 100644 (file)
           ],
           'conditions': [
             ['inside_chromium_build==1 and OS=="win" and component=="shared_library"', {
-              'direct_dependent_settings': {
-                'defines': [
-                  'USING_V8_SHARED',
-                ],
-              },
+              'defines': [
+                'USING_V8_SHARED',
+              ],
             }],
           ],
         }],
             '<(chromium_src_dir)/build/linux/system.gyp:fontconfig',
             '<(chromium_src_dir)/build/linux/system.gyp:gtk',
           ],
-          'direct_dependent_settings': {
-            'cflags': [
-              # WebCore does not work with strict aliasing enabled.
-              # https://bugs.webkit.org/show_bug.cgi?id=25864
-              '-fno-strict-aliasing',
-            ],
-          },
+          'cflags': [
+            # WebCore does not work with strict aliasing enabled.
+            # https://bugs.webkit.org/show_bug.cgi?id=25864
+            '-fno-strict-aliasing',
+          ],
         }],
         ['OS=="linux"', {
-          'direct_dependent_settings': {
-            'defines': [
-              # Mozilla on Linux effectively uses uname -sm, but when running
-              # 32-bit x86 code on an x86_64 processor, it uses
-              # "Linux i686 (x86_64)".  Matching that would require making a
-              # run-time determination.
-              'WEBCORE_NAVIGATOR_PLATFORM="Linux i686"',
-            ],
-          },
+          'defines': [
+            # Mozilla on Linux effectively uses uname -sm, but when running
+            # 32-bit x86 code on an x86_64 processor, it uses
+            # "Linux i686 (x86_64)".  Matching that would require making a
+            # run-time determination.
+            'WEBCORE_NAVIGATOR_PLATFORM="Linux i686"',
+          ],
         }],
         ['OS=="mac"', {
           'dependencies': [
           'export_dependent_settings': [
             'webkit_system_interface',
           ],
-          'direct_dependent_settings': {
-            'defines': [
-              # Match Safari and Mozilla on Mac x86.
-              'WEBCORE_NAVIGATOR_PLATFORM="MacIntel"',
+          'defines': [
+            # Match Safari and Mozilla on Mac x86.
+            'WEBCORE_NAVIGATOR_PLATFORM="MacIntel"',
 
-              # Chromium's version of WebCore includes the following Objective-C
-              # classes. The system-provided WebCore framework may also provide
-              # these classes. Because of the nature of Objective-C binding
-              # (dynamically at runtime), it's possible for the
-              # Chromium-provided versions to interfere with the system-provided
-              # versions.  This may happen when a system framework attempts to
-              # use WebCore.framework, such as when converting an HTML-flavored
-              # string to an NSAttributedString.  The solution is to force
-              # Objective-C class names that would conflict to use alternate
-              # names.
-              #
-              # This list will hopefully shrink but may also grow.  Its
-              # performance is monitored by the "Check Objective-C Rename"
-              # postbuild step, and any suspicious-looking symbols not handled
-              # here or whitelisted in that step will cause a build failure.
-              #
-              # If this is unhandled, the console will receive log messages
-              # such as:
-              # com.google.Chrome[] objc[]: Class ScrollbarPrefsObserver is implemented in both .../Google Chrome.app/Contents/Versions/.../Google Chrome Helper.app/Contents/MacOS/../../../Google Chrome Framework.framework/Google Chrome Framework and /System/Library/Frameworks/WebKit.framework/Versions/A/Frameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
-              'ScrollbarPrefsObserver=ChromiumWebCoreObjCScrollbarPrefsObserver',
-              'WebCoreRenderThemeNotificationObserver=ChromiumWebCoreObjCWebCoreRenderThemeNotificationObserver',
-              'WebFontCache=ChromiumWebCoreObjCWebFontCache',
-            ],
-            'include_dirs': [
-              '../../../WebKitLibraries',
-            ],
-            'postbuilds': [
-              {
-                # This step ensures that any Objective-C names that aren't
-                # redefined to be "safe" above will cause a build failure.
-                'postbuild_name': 'Check Objective-C Rename',
-                'variables': {
-                  'class_whitelist_regex':
-                      'ChromiumWebCoreObjC|TCMVisibleView|RTCMFlippedView',
-                  'category_whitelist_regex':
-                      'TCMInterposing',
-                },
-                'action': [
-                  'mac/check_objc_rename.sh',
-                  '<(class_whitelist_regex)',
-                  '<(category_whitelist_regex)',
-                ],
-              },
-            ],
-          },
+            # Chromium's version of WebCore includes the following Objective-C
+            # classes. The system-provided WebCore framework may also provide
+            # these classes. Because of the nature of Objective-C binding
+            # (dynamically at runtime), it's possible for the Chromium-provided
+            # versions to interfere with the system-provided versions.  This may
+            # happen when a system framework attempts to use WebCore.framework,
+            # such as when converting an HTML-flavored string to an
+            # NSAttributedString.  The solution is to force Objective-C class
+            # names that would conflict to use alternate names.
+
+            # FIXME: This list will hopefully shrink but may also grow.
+            # Periodically run:
+            # nm libwebcore.a | grep -E '[atsATS] ([+-]\[|\.objc_class_name)'
+            # and make sure that everything listed there has the alternate
+            # ChromiumWebCoreObjC name, and that nothing extraneous is listed
+            # here. If all Objective-C can be eliminated from Chromium's WebCore
+            # library, these defines should be removed entirely.
+            'ScrollbarPrefsObserver=ChromiumWebCoreObjCScrollbarPrefsObserver',
+            'WebCoreRenderThemeNotificationObserver=ChromiumWebCoreObjCWebCoreRenderThemeNotificationObserver',
+            'WebFontCache=ChromiumWebCoreObjCWebFontCache',
+          ],
+          'include_dirs': [
+            '../../../WebKitLibraries',
+          ],
         }],
         ['OS=="win"', {
           'dependencies': [
           'export_dependent_settings': [
             '<(chromium_src_dir)/build/win/system.gyp:cygwin'
           ],
-          'direct_dependent_settings': {
-            'defines': [
-              # Match Safari and Mozilla on Windows.
-              'WEBCORE_NAVIGATOR_PLATFORM="Win32"',
-              '__PRETTY_FUNCTION__=__FUNCTION__',
-            ],
-            # This is needed because Event.h in this directory is blocked
-            # by a system header on windows.
-            'include_dirs++': ['../dom'],
-          },
+          'defines': [
+            # Match Safari and Mozilla on Windows.
+            'WEBCORE_NAVIGATOR_PLATFORM="Win32"',
+            '__PRETTY_FUNCTION__=__FUNCTION__',
+          ],
+          # This is needed because Event.h in this directory is blocked
+          # by a system header on windows.
+          'include_dirs++': ['../dom'],
         }],
         ['(OS=="linux" or OS=="win") and "WTF_USE_WEBAUDIO_MKL=1" in feature_defines', {
           # This directory needs to be on the include path for multiple sub-targets of webcore.
diff --git a/Source/WebCore/WebCore.gyp/mac/check_objc_rename.sh b/Source/WebCore/WebCore.gyp/mac/check_objc_rename.sh
deleted file mode 100644 (file)
index ed3c119..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-#!/bin/bash
-
-#
-# Copyright (C) 2011 Google Inc. All rights reserved.
-# 
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-# 
-#     * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#     * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following disclaimer
-# in the documentation and/or other materials provided with the
-# distribution.
-#     * Neither the name of Google Inc. nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-# 
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-# This script checks a WebCore static library for potential Objective-C
-# class name collisions with the system's copy of the WebCore framework.
-# See the postbuild action that calls it from ../WebCore.gyp for details.
-
-set -e
-set -o pipefail
-
-if [[ $# -ne 2 ]]; then
-  echo "usage: ${0} class_whitelist_pattern category_whitelist_pattern" >& 2
-  exit 1
-fi
-
-lib="${BUILT_PRODUCTS_DIR}/${FULL_PRODUCT_NAME}"
-nm_pattern='[atsATS] ([+-]\[|\.objc_class_name_)'
-
-class_whitelist_pattern="${1}"
-category_whitelist_pattern="${2}"
-
-# Send nm's stderr in the pipeline to /dev/null to avoid spewing
-# "nm: no name list" messages. This means that if the pipelined nm fails, there
-# won't be any output, so if the entire assignment fails, run nm again to get
-# some output.
-violators=$(nm -p "${lib}" 2> /dev/null | \
-    (grep -E "${nm_pattern}" || true) | \
-    (grep -Ev "${nm_pattern}(${class_whitelist_pattern})" || true) | \
-    (grep -Ev "\((${category_whitelist_pattern})\)" || true)) || nm -p "${lib}"
-
-if [[ -z "${violators}" ]]; then
-  # An empty list means that everything's clean.
-  exit 0
-fi
-
-cat << __EOF__ >&2
-These Objective-C symbols may clash with those provided by the system's own
-WebCore framework:
-${violators}
-
-These symbols were found in:
-${lib}
-
-This should be corrected by adding the appropriate definitions to
-$(dirname ${0})/../WebCore.gyp
-or by updating the whitelist in
-${0}
-__EOF__
-
-exit 1