diff bin/gccrun @ 4531:7f957c1f4661

<oerjan> revert
author HackBot
date Sun, 16 Mar 2014 01:52:15 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bin/gccrun	Sun Mar 16 01:52:15 2014 +0000
@@ -0,0 +1,49 @@
+#!/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