Mercurial > repo
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