aboutsummaryrefslogtreecommitdiff
path: root/tools/generate-version-script.py
blob: fab46b9343cd30a26bafc5f02fdcce46f38bd1a0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/env python3

# This tool is used to generate the version scripts for libc, libm, libdl,
# and libstdc++ for every architecture.

# usage: generate-version-script.py ARCH INPUT OUTPUT

import sys

def has_arch_tags(tags):
  for arch in ["arm", "arm64", "riscv64", "x86", "x86_64"]:
    if arch in tags:
      return True
  return False

def GenerateVersionScript(arch, in_filename, out_filename):
  with open(out_filename, "w") as fout:
    with open(in_filename, "r") as fin:
      for line in fin:
        index = line.find("#")
        if index != -1:
          tags = line[index+1:].split()
          if arch not in tags and has_arch_tags(tags):
            continue
        fout.write(line)

arch = sys.argv[1]
in_filename = sys.argv[2]
out_filename = sys.argv[3]
GenerateVersionScript(arch, in_filename, out_filename)