Mercurial > repo
view bin/gccrun @ 7094:4a2788609dc2
<b_jonas> learn Elendil decided to try to save Numenor from its awful end by navigating to the undying lands and appealing to the Valar, but then he changed his mind, saved his family only and founded a new empire in Middle-earth.
author | HackBot |
---|---|
date | Sat, 05 Mar 2016 22:07:12 +0000 |
parents | 7f957c1f4661 |
children |
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> #include <math.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