Bug 1457483 Retrieve nm from environment for check_vanilla_allocations.py r?glandium draft
authorTom Ritter <tom@mozilla.com>
Fri, 27 Apr 2018 10:25:35 -0500
changeset 795805 2b2cbebd15b456234a13f2e0edeb51328f08f80c
parent 795804 9aea78d413fb11cdb7bfb5700e7401dee3933d84
push id110085
push userbmo:tom@mozilla.com
push dateWed, 16 May 2018 16:30:46 +0000
reviewersglandium
bugs1457483
milestone61.0a1
Bug 1457483 Retrieve nm from environment for check_vanilla_allocations.py r?glandium MozReview-Commit-ID: HIZpMk4Ierb
config/check_vanilla_allocations.py
js/src/old-configure.in
old-configure.in
old mode 100644
new mode 100755
--- a/config/check_vanilla_allocations.py
+++ b/config/check_vanilla_allocations.py
@@ -37,16 +37,17 @@
 #----------------------------------------------------------------------------
 
 from __future__ import print_function
 
 import argparse
 import re
 import subprocess
 import sys
+import buildconfig
 
 # The obvious way to implement this script is to search for occurrences of
 # malloc et al, succeed if none are found, and fail is some are found.
 # However, "none are found" does not necessarily mean "none are present" --
 # this script could be buggy.  (Or the output format of |nm| might change in
 # the future.)
 #
 # So jsutil.cpp deliberately contains a (never-called) function that contains a
@@ -71,17 +72,18 @@ def main():
     parser.add_argument('file', type=str,
                         help='name of the file to check')
     args = parser.parse_args()
 
     # Run |nm|.  Options:
     # -u: show only undefined symbols
     # -C: demangle symbol names
     # -A: show an object filename for each undefined symbol
-    cmd = ['nm', '-u', '-C', '-A', args.file]
+    nm = buildconfig.substs.get('NM') or 'nm'
+    cmd = [nm, '-u', '-C', '-A', args.file]
     lines = subprocess.check_output(cmd, universal_newlines=True,
                                     stderr=subprocess.PIPE).split('\n')
 
     # alloc_fns contains all the vanilla allocation/free functions that we look
     # for. Regexp chars are escaped appropriately.
 
     alloc_fns = [
         # Matches |operator new(unsigned T)|, where |T| is |int| or |long|.
--- a/js/src/old-configure.in
+++ b/js/src/old-configure.in
@@ -1711,16 +1711,17 @@ dnl =
 dnl = Maintainer debug option (no --enable equivalent)
 dnl =
 dnl ========================================================
 
 AC_SUBST(AR)
 AC_SUBST(AR_FLAGS)
 AC_SUBST(AR_EXTRACT)
 AC_SUBST(AS)
+AC_SUBST(NM)
 AC_SUBST_LIST(ASFLAGS)
 AC_SUBST(AS_DASH_C_FLAG)
 AC_SUBST(RC)
 AC_SUBST(RCFLAGS)
 AC_SUBST(WINDRES)
 AC_SUBST(IMPLIB)
 AC_SUBST(FILTER)
 AC_SUBST_LIST(MOZ_DEBUG_LDFLAGS)
--- a/old-configure.in
+++ b/old-configure.in
@@ -4138,16 +4138,17 @@ dnl =
 dnl = Maintainer debug option (no --enable equivalent)
 dnl =
 dnl ========================================================
 
 AC_SUBST(AR)
 AC_SUBST(AR_FLAGS)
 AC_SUBST(AR_EXTRACT)
 AC_SUBST(AS)
+AC_SUBST(NM)
 AC_SUBST_LIST(ASFLAGS)
 AC_SUBST(AS_DASH_C_FLAG)
 AC_SUBST(RC)
 AC_SUBST(RCFLAGS)
 AC_SUBST(WINDRES)
 AC_SUBST(IMPLIB)
 AC_SUBST(FILTER)
 AC_SUBST(MOZ_AUTH_EXTENSION)