Use xcrun to find path to nm for Mac port
authorddkilzer@apple.com <ddkilzer@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 27 May 2012 06:52:07 +0000 (06:52 +0000)
committerddkilzer@apple.com <ddkilzer@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 27 May 2012 06:52:07 +0000 (06:52 +0000)
<http://webkit.org/b/87588>

Reviewed by Dan Bernstein.

* Scripts/webkitpy/layout_tests/port/mac.py:
(MacPort.nm_command): Add. Tries to find a path for the nm
command using xcrun.  Falls back to returning 'nm'.
* Scripts/webkitpy/layout_tests/port/webkit.py:
(WebKitPort.nm_command): Add. Returns 'nm'.
(WebKitPort._webcore_symbols_string): Call self.nm_command().

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

Tools/ChangeLog
Tools/Scripts/webkitpy/layout_tests/port/mac.py
Tools/Scripts/webkitpy/layout_tests/port/webkit.py

index 7c7f3fe..d26e271 100644 (file)
@@ -1,3 +1,17 @@
+2012-05-26  David Kilzer  <ddkilzer@apple.com>
+
+        Use xcrun to find path to nm for Mac port
+        <http://webkit.org/b/87588>
+
+        Reviewed by Dan Bernstein.
+
+        * Scripts/webkitpy/layout_tests/port/mac.py:
+        (MacPort.nm_command): Add. Tries to find a path for the nm
+        command using xcrun.  Falls back to returning 'nm'.
+        * Scripts/webkitpy/layout_tests/port/webkit.py:
+        (WebKitPort.nm_command): Add. Returns 'nm'.
+        (WebKitPort._webcore_symbols_string): Call self.nm_command().
+
 2012-05-25  Lynn Neir  <lynn.neir@skype.net>
 
         Added windows implementation in DRT for TextInputController, https://bugs.webkit.org/show_bug.cgi?id=32021
index 9513ae5..8552176 100644 (file)
@@ -1,4 +1,5 @@
 # Copyright (C) 2011 Google Inc. All rights reserved.
+# Copyright (C) 2012 Apple Inc. All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions are
@@ -239,3 +240,10 @@ class MacPort(ApplePort):
                 _log.debug("IOError raised while stopping helper: %s" % str(e))
                 pass
             self._helper = None
+
+    def nm_command(self):
+        try:
+            return self._executive.run_command(['xcrun', '-find', 'nm']).rstrip()
+        except ScriptError, e:
+            _log.warn("xcrun failed; falling back to 'nm'.")
+            return 'nm'
index 0965b44..d798039 100644 (file)
@@ -1,7 +1,7 @@
 #!/usr/bin/env python
 # Copyright (C) 2010 Google Inc. All rights reserved.
 # Copyright (C) 2010 Gabor Rapcsanyi <rgabor@inf.u-szeged.hu>, University of Szeged
-# Copyright (C) 2011 Apple Inc. All rights reserved.
+# Copyright (C) 2011, 2012 Apple Inc. All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions are
@@ -262,12 +262,15 @@ class WebKitPort(Port):
         """If a port makes certain features available only through runtime flags, it can override this routine to indicate which ones are available."""
         return None
 
+    def nm_command(self):
+        return 'nm'
+
     def _webcore_symbols_string(self):
         webcore_library_path = self._path_to_webcore_library()
         if not webcore_library_path:
             return None
         try:
-            return self._executive.run_command(['nm', webcore_library_path], error_handler=Executive.ignore_error)
+            return self._executive.run_command([self.nm_command(), webcore_library_path], error_handler=Executive.ignore_error)
         except OSError, e:
             _log.warn("Failed to run nm: %s.  Can't determine WebCore supported features." % e)
         return None