Blame lds-gen.py

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