| Index: tools/tickprocessor.js
|
| diff --git a/tools/tickprocessor.js b/tools/tickprocessor.js
|
| index 72d367f1990aab42b80b46435b3e446f8bddd5fd..ed6b34b9faa0faf0d1ce8a7e9453ce29076285c0 100644
|
| --- a/tools/tickprocessor.js
|
| +++ b/tools/tickprocessor.js
|
| @@ -410,9 +410,10 @@ CppEntriesProvider.prototype.parseNextLine = function() {
|
| };
|
|
|
|
|
| -function UnixCppEntriesProvider() {
|
| +function UnixCppEntriesProvider(nmExec) {
|
| this.symbols = [];
|
| this.parsePos = 0;
|
| + this.nmExec = nmExec;
|
| };
|
| inherits(UnixCppEntriesProvider, CppEntriesProvider);
|
|
|
| @@ -424,8 +425,8 @@ UnixCppEntriesProvider.prototype.loadSymbols = function(libName) {
|
| this.parsePos = 0;
|
| try {
|
| this.symbols = [
|
| - os.system('nm', ['-C', '-n', libName], -1, -1),
|
| - os.system('nm', ['-C', '-n', '-D', libName], -1, -1)
|
| + os.system(this.nmExec, ['-C', '-n', libName], -1, -1),
|
| + os.system(this.nmExec, ['-C', '-n', '-D', libName], -1, -1)
|
| ];
|
| } catch (e) {
|
| // If the library cannot be found on this system let's not panic.
|
| @@ -523,7 +524,8 @@ function processArguments(args) {
|
| platform: 'unix',
|
| stateFilter: null,
|
| ignoreUnknown: false,
|
| - separateIc: false
|
| + separateIc: false,
|
| + nm: 'nm'
|
| };
|
| var argsDispatch = {
|
| '-j': ['stateFilter', TickProcessor.VmStates.JS,
|
| @@ -543,7 +545,9 @@ function processArguments(args) {
|
| '--unix': ['platform', 'unix',
|
| 'Specify that we are running on *nix platform'],
|
| '--windows': ['platform', 'windows',
|
| - 'Specify that we are running on Windows platform']
|
| + 'Specify that we are running on Windows platform'],
|
| + '--nm': ['nm', 'nm',
|
| + 'Specify the \'nm\' executable to use (e.g. --nm=/my_dir/nm)']
|
| };
|
| argsDispatch['--js'] = argsDispatch['-j'];
|
| argsDispatch['--gc'] = argsDispatch['-g'];
|
| @@ -575,9 +579,15 @@ function processArguments(args) {
|
| break;
|
| }
|
| args.shift();
|
| + var userValue = null;
|
| + var eqPos = arg.indexOf('=');
|
| + if (eqPos != -1) {
|
| + userValue = arg.substr(eqPos + 1);
|
| + arg = arg.substr(0, eqPos);
|
| + }
|
| if (arg in argsDispatch) {
|
| var dispatch = argsDispatch[arg];
|
| - result[dispatch[0]] = dispatch[1];
|
| + result[dispatch[0]] = userValue == null ? dispatch[1] : userValue;
|
| } else {
|
| printUsageAndExit();
|
| }
|
| @@ -592,7 +602,7 @@ function processArguments(args) {
|
|
|
| var params = processArguments(arguments);
|
| var tickProcessor = new TickProcessor(
|
| - params.platform == 'unix' ? new UnixCppEntriesProvider() :
|
| + params.platform == 'unix' ? new UnixCppEntriesProvider(params.nm) :
|
| new WindowsCppEntriesProvider(),
|
| params.separateIc,
|
| params.ignoreUnknown,
|
|
|