Index: gdb/contrib/gcc-with-excheck |
diff --git a/gdb/contrib/gcc-with-excheck b/gdb/contrib/gcc-with-excheck |
new file mode 100755 |
index 0000000000000000000000000000000000000000..da144ac9d3d628b4454818af28235b2022518ea6 |
--- /dev/null |
+++ b/gdb/contrib/gcc-with-excheck |
@@ -0,0 +1,58 @@ |
+#!/bin/sh |
+# Copyright 2011, 2013 Free Software Foundation, Inc. |
+# |
+# This is free software: you can redistribute it and/or modify it |
+# under the terms of the GNU General Public License as published by |
+# the Free Software Foundation, either version 3 of the License, or |
+# (at your option) any later version. |
+# |
+# This program is distributed in the hope that it will be useful, but |
+# WITHOUT ANY WARRANTY; without even the implied warranty of |
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
+# General Public License for more details. |
+# |
+# You should have received a copy of the GNU General Public License |
+# along with this program. If not, see |
+# <http://www.gnu.org/licenses/>. |
+ |
+# You must set PYTHON_PLUGIN in the environment. |
+# It should be the directory holding the "python.so" file. |
+# Usage: gcc-with-excheck [-Xx|-Xc] [--] ARGS |
+# -Xx means to invoke the exception checker. |
+# -Xc means to invoke the cleanup checker. |
+# -- means stop processing -X options. |
+# ARGS are passed to gcc. |
+ |
+GCC=${GCC:-gcc} |
+exdir=`dirname $0` |
+ |
+pargs= |
+while true; do |
+ case "$1" in |
+ -Xc) |
+ pargs="$pargs -fplugin-arg-python-script=$exdir/cleanup_check.py" |
+ ;; |
+ -Xx) |
+ pargs="$pargs -fplugin-arg-python-script=$exdir/excheck.py" |
+ ;; |
+ -X*) |
+ echo "unrecognized argument $1" 1>&2 |
+ exit 1 |
+ ;; |
+ --) |
+ shift |
+ break |
+ ;; |
+ *) |
+ break |
+ ;; |
+ esac |
+ shift |
+done |
+ |
+# Recent versions of the Python plugin build two .so files in |
+# different directories, so we have to set this. This will be fixed |
+# upstream at some point. |
+export LD_LIBRARY_PATH=$PYTHON_PLUGIN:$PYTHON_PLUGIN/gcc-c-api |
+ |
+gcc -fplugin=$PYTHON_PLUGIN/python.so $pargs "$@" |