annotate bin/gccrun @ 3797:3ce83f927c0e

<Roujo> echo "echo I AM THE LORD OF DARKNESS. ALL BOW BEFORE ME!" > bin/\x16\x16echo
author HackBot
date Wed, 18 Sep 2013 18:17:20 +0000
parents f2cd1846ed06
children
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>
3405
f2cd1846ed06 <Jafet> echo $\'15m29\\n,w\' | ed bin/gccrun
HackBot
parents: 3403
diff changeset
29 #include <math.h>
2660
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
30
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
31 int
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
32 main(int argc, char *argv[], char *envp[])
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
33 {
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
34 $1;
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
35 return 0;
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
36 }
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
37 EOF
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
38 shift
3400
92909601a36d <Jafet> sed -e \'s/\\$\\@/\\$\\@ -lm/\' -i bin/gccrun
HackBot
parents: 2660
diff changeset
39 if ! gcc -o "$f/command" "$f/command.c" $@ -lm; then
2660
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
40 exit 1
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
41 fi
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
42 if [ -n "$wrapper" ]; then
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
43 $wrapper "$f/command"
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
44 else
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
45 "$f/command"
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
46 fi
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
47 r=$?
a52927edc8be <kmc> mv gccrun bin/ && chmod +x bin/gccrun
HackBot
parents:
diff changeset
48 rm -r "$f"
3405
f2cd1846ed06 <Jafet> echo $\'15m29\\n,w\' | ed bin/gccrun
HackBot
parents: 3403
diff changeset
49 exit $r