#!/usr/bin/env python # # # Generate linker script to only expose symbols of the public API # import sys import re if __name__ == '__main__': funcs = list() last_line = '' for line in sys.stdin: m = re.match(r'^(\S+.*\s+\**)?(rd_kafka_\S+)\s*\(', line) if m: sym = m.group(2) # Ignore static (unused) functions m2 = re.match(r'(RD_UNUSED|__attribute__\(\(unused\)\))', last_line) if not m2: funcs.append(sym) last_line = '' else: last_line = line print('# Automatically generated by lds-gen.py - DO NOT EDIT') print('{\n global:') if len(funcs) == 0: print(' *;') else: for f in sorted(funcs): print(' %s;' % f) print('local:\n *;') print('};')