Use xcrun to find nm and ranlib on OS X builds
authorddkilzer@apple.com <ddkilzer@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 28 Mar 2012 20:13:27 +0000 (20:13 +0000)
committerddkilzer@apple.com <ddkilzer@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 28 Mar 2012 20:13:27 +0000 (20:13 +0000)
<http://webkit.org/b/82466>

Reviewed by Dan Bernstein.

* Scripts/build-webkit: Use xcrun to find ranlib.
* Scripts/webkitdirs.pm:
(determineNmPath): Added.  Use xcrun to find nm on OS X.
(nmPath): Added.
* Scripts/webkitperl/features.pm:
(libraryContainsSymbol): Use nmPath().

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

Tools/ChangeLog
Tools/Scripts/build-webkit
Tools/Scripts/webkitdirs.pm
Tools/Scripts/webkitperl/features.pm

index 9863267..02d216c 100644 (file)
@@ -1,3 +1,17 @@
+2012-03-28  David Kilzer  <ddkilzer@apple.com>
+
+        Use xcrun to find nm and ranlib on OS X builds
+        <http://webkit.org/b/82466>
+
+        Reviewed by Dan Bernstein.
+
+        * Scripts/build-webkit: Use xcrun to find ranlib.
+        * Scripts/webkitdirs.pm:
+        (determineNmPath): Added.  Use xcrun to find nm on OS X.
+        (nmPath): Added.
+        * Scripts/webkitperl/features.pm:
+        (libraryContainsSymbol): Use nmPath().
+
 2012-03-28  Ojan Vafai  <ojan@chromium.org>
 
         Add history navigation to garden-o-matic
index fae1ce4..d102a4a 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -w
 
-# Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved.
+# Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights reserved.
 # Copyright (C) 2009 Google Inc. All rights reserved.
 # Copyright (C) 2010 moiji-mobile.com All rights reserved.
 # Copyright (C) 2011 Research In Motion Limited. All rights reserved.
@@ -555,13 +555,16 @@ if (isGtk()) {
         "libWebKitSystemInterfaceLion.a",
         "libWebCoreSQLite3.a",
     );
+
+    my $ranlib = `xcrun -find ranlib`;
+    chomp $ranlib;
     foreach my $libName (@librariesToCopy) {
         my $srcLib = "WebKitLibraries/" . $libName;
         my $lib = "$productDir/" . $libName;
         if (!-e $lib || -M $lib > -M $srcLib) {
             print "Updating $lib\n";
             system "ditto", $srcLib, $lib;
-            system "ranlib", $lib;
+            system $ranlib, $lib;
         }
     }
 
index 023dc5b..3cbb2ce 100755 (executable)
@@ -1,4 +1,4 @@
-# Copyright (C) 2005, 2006, 2007, 2010, 2012 Apple Inc. All rights reserved.
+# Copyright (C) 2005, 2006, 2007, 2010, 2011, 2012 Apple Inc. All rights reserved.
 # Copyright (C) 2009 Google Inc. All rights reserved.
 # Copyright (C) 2011 Research In Motion Limited. All rights reserved.
 #
@@ -56,6 +56,7 @@ BEGIN {
        &cmakeBasedPortName
        &currentSVNRevision
        &debugSafari
+       &nmPath
        &passedConfiguration
        &printHelpAndExitForRunAndDebugWebKitAppIfNeeded
        &productDir
@@ -81,6 +82,7 @@ my $configurationForVisualStudio;
 my $configurationProductDir;
 my $sourceDir;
 my $currentSVNRevision;
+my $nmPath;
 my $osXVersion;
 my $generateDsym;
 my $isQt;
@@ -1307,6 +1309,23 @@ sub isPerianInstalled()
     return 0;
 }
 
+sub determineNmPath()
+{
+    return if $nmPath;
+
+    if (isAppleMacWebKit()) {
+        $nmPath = `xcrun -find nm`;
+        chomp $nmPath;
+    }
+    $nmPath = "nm" if !$nmPath;
+}
+
+sub nmPath()
+{
+    determineNmPath();
+    return $nmPath;
+}
+
 sub determineOSXVersion()
 {
     return if $osXVersion;
index 1df5640..8992619 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved
+# Copyright (C) 2005, 2006, 2007, 2008, 2009, 2012 Apple Inc. All rights reserved
 # Copyright (C) 2006 Alexey Proskuryakov (ap@nypop.com)
 # Copyright (C) 2010 Andras Becsi (abecsi@inf.u-szeged.hu), University of Szeged
 #
 use strict;
 use warnings;
 
+use FindBin;
+use lib $FindBin::Bin;
+use webkitdirs;
+
 BEGIN {
    use Exporter   ();
    our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
@@ -53,7 +57,7 @@ sub libraryContainsSymbol($$)
 
     my $foundSymbol = 0;
     if (-e $path) {
-        open NM, "-|", "nm", $path or die;
+        open NM, "-|", nmPath(), $path or die;
         while (<NM>) {
             $foundSymbol = 1 if /$symbol/; # FIXME: This should probably check for word boundaries before/after the symbol name.
         }