Mercurial > repo
view bin/gccrun @ 3028:773ae9c82f6a
<shachaf> addquote <mnoqy> the theory\'s probably not \x02bad\x0f, but calculus is one of those things that\'s so dang applicable that everyone only ever talks about how to apply it and compute with it and uuuuurgh(barf) <mnoqy> so i stay away from it
author | HackBot |
---|---|
date | Sun, 02 Jun 2013 04:43:34 +0000 |
parents | a52927edc8be |
children | 92909601a36d |
line wrap: on
line source
#!/bin/sh if [ "$#" = 0 ]; then echo "usage: $0 [-w wrapper] <C code...>" >&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 <sys/types.h> #include <sys/stat.h> #include <sys/mman.h> #include <sys/ptrace.h> #include <sys/syscall.h> #include <arpa/inet.h> #include <errno.h> #include <fcntl.h> #include <signal.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> int main(int argc, char *argv[], char *envp[]) { $1; return 0; } EOF shift 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