| #!/bin/sh |
| # Copyright 2011-2016 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 "$@" |