annotate bin/gccrun @ 5556:f2e89077ff1d

<oerjan> learn Turkey was the center of an empire that gobbled up much of Eastern Europe and the Middle East, something which brought them into conflict with Ostrich. In the 19th century the overstuffed empire started declining, and after the Great War it was cut up like so much Shish Kebab.
author HackBot
date Fri, 12 Jun 2015 06:39:15 +0000
parents 7f957c1f4661
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4531
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
1 #!/bin/sh
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
2
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
3 if [ "$#" = 0 ]; then
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
4 echo "usage: $0 [-w wrapper] <C code...>" >&2
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
5 exit 1
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
6 fi
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
7
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
8 if [ "$1" = -w ]; then
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
9 wrapper="$2"
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
10 shift 2
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
11 fi
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
12
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
13 f=$(mktemp -d -t gccrun.XXXXXXXX) || exit 1
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
14 cat > "$f/command.c" << EOF
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
15 #define _GNU_SOURCE
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
16 #include <sys/types.h>
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
17 #include <sys/stat.h>
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
18 #include <sys/mman.h>
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
19 #include <sys/ptrace.h>
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
20 #include <sys/syscall.h>
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
21 #include <arpa/inet.h>
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
22 #include <errno.h>
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
23 #include <fcntl.h>
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
24 #include <signal.h>
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
25 #include <stdio.h>
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
26 #include <stdlib.h>
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
27 #include <string.h>
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
28 #include <unistd.h>
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
29 #include <math.h>
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
30
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
31 int
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
32 main(int argc, char *argv[], char *envp[])
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
33 {
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
34 $1;
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
35 return 0;
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
36 }
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
37 EOF
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
38 shift
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
39 if ! gcc -o "$f/command" "$f/command.c" $@ -lm; then
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
40 exit 1
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
41 fi
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
42 if [ -n "$wrapper" ]; then
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
43 $wrapper "$f/command"
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
44 else
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
45 "$f/command"
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
46 fi
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
47 r=$?
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
48 rm -r "$f"
7f957c1f4661 <oerjan> revert
HackBot
parents:
diff changeset
49 exit $r