From 270d3a1aa4137dc15d7b7e5a0958cc8c0bef9a1a Mon Sep 17 00:00:00 2001 From: marha Date: Fri, 25 Oct 2013 08:48:17 +0200 Subject: fontconfig mesa git update 25 oct 2013 fontconfig commit 65872e9e46d17e4461c3a891ef23abe156005e04 mesa commit e8f6f244bb1963c4af81f431865355beef1b9cbb --- mesalib/src/mesa/drivers/dri/gen-symbol-redefs.py | 68 +++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 mesalib/src/mesa/drivers/dri/gen-symbol-redefs.py (limited to 'mesalib/src/mesa/drivers/dri/gen-symbol-redefs.py') diff --git a/mesalib/src/mesa/drivers/dri/gen-symbol-redefs.py b/mesalib/src/mesa/drivers/dri/gen-symbol-redefs.py new file mode 100644 index 000000000..ebe4aaa65 --- /dev/null +++ b/mesalib/src/mesa/drivers/dri/gen-symbol-redefs.py @@ -0,0 +1,68 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright © 2013 Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice (including the next +# paragraph) shall be included in all copies or substantial portions of the +# Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +# IN THE SOFTWARE. + +import sys +import argparse +import re +import subprocess + +# Example usages: +# ./gen-symbol-redefs.py i915/.libs/libi915_dri.a old_ i915 i830 +# ./gen-symbol-redefs.py r200/.libs/libr200_dri.a r200_ r200 + +argparser = argparse.ArgumentParser(description="Generates #defines to hide driver global symbols outside of a driver's namespace.") +argparser.add_argument("file", + metavar = 'file', + help='libdrivername.a file to read') +argparser.add_argument("newprefix", + metavar = 'newprefix', + help='New prefix to give non-driver global symbols') +argparser.add_argument('prefixes', + metavar='prefix', + nargs='*', + help='driver-specific prefixes') +args = argparser.parse_args() + +stdout = subprocess.check_output(['nm', args.file]) + +for line in stdout.splitlines(): + m = re.match("[0-9a-z]+ [BT] (.*)", line) + if not m: + continue + + symbol = m.group(1) + + has_good_prefix = re.match(args.newprefix, symbol) != None + for prefix in args.prefixes: + if re.match(prefix, symbol): + has_good_prefix = True + break + if has_good_prefix: + continue + + # This is the single public entrypoint. + if re.match("__driDriverGetExtensions", symbol): + continue + + print '#define {0:35} {1}{0}'.format(symbol, args.newprefix) -- cgit v1.2.3