Mercurial > repo
view bin/gccrun @ 3403:5eef5c8ac5ca
<Jafet> (head -n 14 bin/gccrun; echo \'#include <math.h>\'; tail -n +15 bin/gccrun) > /tmp/gccrun && mv /tmp/gccrun bin/gccrun
author | HackBot |
---|---|
date | Fri, 09 Aug 2013 14:29:04 +0000 |
parents | f0803faf7164 |
children | f2cd1846ed06 |
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 #include <math.h> #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" $@ -lm; then exit 1 fi if [ -n "$wrapper" ]; then $wrapper "$f/command" else "$f/command" fi r=$? rm -r "$f" exit $r