annotate bin/gccrun @ 3302:f6382d5da935

<boily> pastequotes
author HackBot
date Tue, 16 Jul 2013 19:55:04 +0000
parents a52927edc8be
children 92909601a36d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2660
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
1 #!/bin/sh
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
2
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
3 if [ "$#" = 0 ]; then
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
4 echo "usage: $0 [-w wrapper] <C code...>" >&2
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
5 exit 1
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
6 fi
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
7
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
8 if [ "$1" = -w ]; then
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
9 wrapper="$2"
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
10 shift 2
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
11 fi
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
12
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
13 f=$(mktemp -d -t gccrun.XXXXXXXX) || exit 1
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
14 cat > "$f/command.c" << EOF
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
15 #define _GNU_SOURCE
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
16 #include <sys/types.h>
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
17 #include <sys/stat.h>
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
18 #include <sys/mman.h>
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
19 #include <sys/ptrace.h>
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
20 #include <sys/syscall.h>
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
21 #include <arpa/inet.h>
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
22 #include <errno.h>
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
23 #include <fcntl.h>
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
24 #include <signal.h>
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
25 #include <stdio.h>
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
26 #include <stdlib.h>
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
27 #include <string.h>
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
28 #include <unistd.h>
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
29
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
30 int
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
31 main(int argc, char *argv[], char *envp[])
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
32 {
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
33 $1;
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
34 return 0;
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
35 }
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
36 EOF
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
37 shift
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
38 if ! gcc -o "$f/command" "$f/command.c" $@; then
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
39 exit 1
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
40 fi
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
41 if [ -n "$wrapper" ]; then
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
42 $wrapper "$f/command"
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
43 else
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
44 "$f/command"
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
45 fi
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
46 r=$?
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
47 rm -r "$f"
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
48 exit $r