Merge "Skip adding value lines for accidental matches."
diff --git a/build/sdk.atree b/build/sdk.atree
index 0e04192..271f819 100644
--- a/build/sdk.atree
+++ b/build/sdk.atree
@@ -57,7 +57,6 @@
 prebuilts/sdk/sdk-annotations/annotations.zip   platform-tools/api/annotations.zip
 
 # systrace
-external/chromium-trace/catapult/catapult_base/                           platform-tools/systrace/catapult/catapult_base/
 external/chromium-trace/catapult/common/                                  platform-tools/systrace/catapult/common/
 external/chromium-trace/catapult/dependency_manager/                      platform-tools/systrace/catapult/dependency_manager/
 external/chromium-trace/catapult/devil/                                   platform-tools/systrace/catapult/devil/
diff --git a/ndk/fixup_version_script.py b/ndk/annotate_version_script.py
similarity index 83%
rename from ndk/fixup_version_script.py
rename to ndk/annotate_version_script.py
index 87f1084..09077ff 100755
--- a/ndk/fixup_version_script.py
+++ b/ndk/annotate_version_script.py
@@ -16,6 +16,7 @@
 #
 """Annotates an existing version script with data for the NDK."""
 import argparse
+import collections
 import json
 import logging
 import os
@@ -151,11 +152,29 @@
             version_script.write(line)
 
 
+def create_version_script(version_script, json_db):
+    """Creates a new version script based on an NDK library definition."""
+    json_db = collections.OrderedDict(sorted(json_db.items()))
+
+    version_script.write('LIB {\n')
+    version_script.write('  global:\n')
+    for symbol in json_db.keys():
+        line = annotate_symbol('    {};\n'.format(symbol), json_db)
+        version_script.write(line)
+    version_script.write('  local:\n')
+    version_script.write('    *;\n')
+    version_script.write('};')
+
+
 def parse_args():
     """Returns parsed command line arguments."""
     parser = argparse.ArgumentParser()
 
     parser.add_argument(
+        '--create', action='store_true',
+        help='Create a new version script instead of annotating.')
+
+    parser.add_argument(
         'data_file', metavar='DATA_FILE', type=os.path.realpath,
         help='Path to JSON DB generated by build_symbol_db.py.')
 
@@ -181,11 +200,15 @@
     with open(args.data_file) as json_db_file:
         json_db = json.load(json_db_file)
 
-    with open(args.version_script, 'r') as version_script:
-        file_data = version_script.readlines()
-    verify_version_script(file_data, json_db)
-    with open(args.version_script, 'w') as version_script:
-        annotate_version_script(version_script, json_db, file_data)
+    if args.create:
+        with open(args.version_script, 'w') as version_script:
+            create_version_script(version_script, json_db)
+    else:
+        with open(args.version_script, 'r') as version_script:
+            file_data = version_script.readlines()
+        verify_version_script(file_data, json_db)
+        with open(args.version_script, 'w') as version_script:
+            annotate_version_script(version_script, json_db, file_data)
 
 
 if __name__ == '__main__':
diff --git a/ndk/pylintrc b/ndk/pylintrc
new file mode 100644
index 0000000..3e44870
--- /dev/null
+++ b/ndk/pylintrc
@@ -0,0 +1,5 @@
+[MESSAGES CONTROL]
+disable=fixme,design,locally-disabled,too-many-lines
+
+[VARIABLES]
+dummy-variables-rgx=_|dummy