summaryrefslogtreecommitdiff
path: root/controller/fw/tools/linksize.py
diff options
context:
space:
mode:
Diffstat (limited to 'controller/fw/tools/linksize.py')
-rw-r--r--controller/fw/tools/linksize.py62
1 files changed, 0 insertions, 62 deletions
diff --git a/controller/fw/tools/linksize.py b/controller/fw/tools/linksize.py
deleted file mode 100644
index c41a951..0000000
--- a/controller/fw/tools/linksize.py
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/usr/bin/env python3
-
-def parse_linker_script(data):
- pass
-
-def link(groups):
- defined_symbols = {}
- undefined_symbols = set()
- for group, files in groups:
- while True:
- found_something = False
-
- for fn in files:
- symbols = load_symbols(fn)
- for symbol in symbols:
- if symbol in defined_symbols:
-
- if not group or not found_something:
- break
-
-
-if __name__ == '__main__':
-
- import argparse
- parser = argparse.ArgumentParser()
- parser.add_argument('-T', '--script', type=str, help='Linker script to use')
- parser.add_argument('-o', '--output', type=str, help='Output file to produce')
- args, rest = parser.parse_known_intermixed_args()
- print(rest)
-
- addprefix = lambda *xs: [ prefix + opt for opt in xs for prefix in ('', '-Wl,') ]
- START_GROUP = addprefix('-(', '--start-group')
- END_GROUP = addprefix('-)', '--end-group')
- GROUP_OPTS = [*START_GROUP, *END_GROUP]
- input_files = [ arg for arg in rest if not arg.startswith('-') or arg in GROUP_OPTS ]
-
- def input_file_iter(input_files):
- group = False
- files = []
- for arg in input_files:
- if arg in START_GROUP:
- assert not group
-
- if files:
- yield False, files # nested -Wl,--start-group
- group, files = True, []
-
- elif arg in END_GROUP:
- assert group # missing -Wl,--start-group
- if files:
- yield True, files
- group, files = False, []
-
- else:
- files.append(arg)
-
- assert not group # missing -Wl,--end-group
- if files:
- yield False, files
-
-
-