Mercurial > hgrepos > Python2 > PyMuPDF
view mupdf-source/thirdparty/gumbo-parser/genperf.py @ 33:c4daa0c83d64
Apply also -fstack-clash-protection and -fstack-protector-strong for all generated binaries.
Only done if EXTRA_CHECKS is not empty and not 0.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Sun, 21 Sep 2025 17:55:13 +0200 |
| parents | b50eed0cc0ef |
| children |
line wrap: on
line source
import sys, re gperf_output = sys.stdin.read() hash_func = re.search( "static unsigned int\s+hash\s+\((.*?)\)\s{(.*?)\n}", gperf_output, re.DOTALL) if not hash_func: raise "Failed to detect hash function in GPerf output" wordlist = re.search( "wordlist\[\]\s+=\s+{(.*?)}", gperf_output, re.DOTALL) if not wordlist: raise "Failed to detect word list in GPerf output" def process_wordlist(text): wordlist = [w.strip().replace('"', '') for w in text.split(',')] taglist = [ "\tGUMBO_TAG_" + (w.upper().replace('-', '_') if w else 'LAST') for w in wordlist] return taglist print "static unsigned int tag_hash(%s)\n{%s\n}" % ( hash_func.group(1), hash_func.group(2)) print "" print "static const unsigned char kGumboTagMap[] = {\n%s\n};" % ( ',\n'.join(process_wordlist(wordlist.group(1))))
