X-Git-Url: https://snippets.scripts.mit.edu/gitweb.cgi/Scripts/git/.git/blobdiff_plain/60718ca35492a467c2bd4b29a6efcc76f0213fd9..bd204af875154cc4702debfd77b546cd11df48fc:/programming/gccrun diff --git a/programming/gccrun b/programming/gccrun new file mode 100755 index 0000000..55e6b68 --- /dev/null +++ b/programming/gccrun @@ -0,0 +1,45 @@ +#!/bin/sh + +if [ "$#" = 0 ]; then + echo "usage: $0 [-w wrapper] " >&2 + exit 1 +fi + +if [ "$1" = -w ]; then + wrapper="$2" + shift 2 +fi + +f=$(mktemp -d -t gccrun.XXXXXXXX) || exit 1 +cat > "$f/command.c" << EOF +#define _GNU_SOURCE +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +int +main(int argc, char *argv[], char *envp[]) +{ + $@; + return 0; +} +EOF +if ! gcc -o "$f/command" "$f/command.c"; then + exit 1 +fi +if [ -n "$wrapper" ]; then + "$wrapper" "$f/command" +else + "$f/command" +fi +r=$? +rm -r "$f" +exit $r