Clone of official tools

Revision:
36:96847d42f010
Parent:
35:da9c89f8be7d
Child:
37:f8cfeb185c30
--- a/dev/syms.py	Wed Feb 15 13:53:18 2017 -0600
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-"""
-mbed SDK
-Copyright (c) 2011-2013 ARM Limited
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-
-Utility to find which libraries could define a given symbol
-"""
-from argparse import ArgumentParser
-from os.path import join, splitext
-from os import walk
-from subprocess import Popen, PIPE
-
-
-OBJ_EXT = ['.o', '.a', '.ar']
-
-
-def find_sym_in_lib(sym, obj_path):
-    contain_symbol = False
-
-    out = Popen(["nm", "-C", obj_path], stdout=PIPE, stderr=PIPE).communicate()[0]
-    for line in out.splitlines():
-            tokens = line.split()
-            n = len(tokens)
-            if n == 2:
-                sym_type = tokens[0]
-                sym_name = tokens[1]
-            elif n == 3:
-                sym_type = tokens[1]
-                sym_name = tokens[2]
-            else:
-                continue
-
-            if sym_type == "U":
-                # This object is using this symbol, not defining it
-                continue
-
-            if sym_name == sym:
-                contain_symbol = True
-
-    return contain_symbol
-
-
-def find_sym_in_path(sym, dir_path):
-    for root, _, files in walk(dir_path):
-        for file in files:
-
-            _, ext = splitext(file)
-            if ext not in OBJ_EXT: continue
-
-            path = join(root, file)
-            if find_sym_in_lib(sym, path):
-                print path
-
-
-if __name__ == '__main__':
-    parser = ArgumentParser(description='Find Symbol')
-    parser.add_argument('-s', '--sym',  required=True,
-                        help='The symbol to be searched')
-    parser.add_argument('-p', '--path',  required=True,
-                        help='The path where to search')
-    args = parser.parse_args()
-
-    find_sym_in_path(args.sym, args.path)