From b32d266a8c29bfe1d6818c07a9523f0ef2dcf137 Mon Sep 17 00:00:00 2001 From: Stefan Lankes Date: Sun, 9 Oct 2016 08:55:10 +0200 Subject: [PATCH] remove dependency of the PCRE library --- .travis.yml | 2 +- README.md | 2 +- hermit/tools/Makefile | 2 +- hermit/tools/proxy.c | 23 +++++++---------------- 4 files changed, 10 insertions(+), 19 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6ec31d3ea..c73437d10 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,7 @@ language: c compiler: gcc before_install: - sudo apt-get -qq update - - sudo apt-get install -y curl qemu-system-x86 nasm texinfo libpcre3-dev libmpfr-dev libmpc-dev libgmp-dev libisl-dev flex bison + - sudo apt-get install -y curl qemu-system-x86 nasm texinfo libmpfr-dev libmpc-dev libgmp-dev libisl-dev flex bison - git submodule update --init hermit/lwip hermit/usr/gcc hermit/usr/pte hermit/usr/libomp script: - ./configure diff --git a/README.md b/README.md index ced0239e1..b4b5e7b86 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ The build process works currently only on **x86-based Linux** systems. The follo On Debian-based systems the packets can be installed by executing: ``` - sudo apt-get install qemu-system-x86 nasm texinfo libpcre3-dev libmpfr-dev libmpc-dev libgmp-dev libisl-dev flex bison + sudo apt-get install qemu-system-x86 nasm texinfo libmpfr-dev libmpc-dev libgmp-dev libisl-dev flex bison ``` ## Building and testing HermitCore as multi-kernel within a virtual machine diff --git a/hermit/tools/Makefile b/hermit/tools/Makefile index f8102729d..a9fa8b31d 100644 --- a/hermit/tools/Makefile +++ b/hermit/tools/Makefile @@ -19,7 +19,7 @@ all: proxy proxy: proxy.o @echo [LD] $@ - $Q$(CC) $(CFLAGS) -o $@ $< -lpcre + $Q$(CC) $(CFLAGS) -o $@ $< clean: @echo Cleaning tools diff --git a/hermit/tools/proxy.c b/hermit/tools/proxy.c index 2a9887bb5..936a8e0e9 100644 --- a/hermit/tools/proxy.c +++ b/hermit/tools/proxy.c @@ -45,7 +45,6 @@ #include #include #include -#include #define MAX_PATH 255 #define MAX_ARGS 1024 @@ -106,36 +105,28 @@ static void exit_handler(int sig) static char* cpufreq(void) { - const char* pattern = "^cpu MHz\\s*:\\s*(\\d+)"; - const char* pcreErrorStr = NULL; - int creErrorOffset = 0; char line[2048]; const char* match = NULL; - int rc, results[10]; - - pcre* reCompiled = pcre_compile(pattern, PCRE_ANCHORED, &pcreErrorStr, &creErrorOffset, NULL); - - if(reCompiled == NULL) - return "0"; FILE* fp = fopen("/proc/cpuinfo", "r"); if (!fp) - return "0"; + return "-freq0"; while(fgets(line, 2048, fp)) { - if ((rc = pcre_exec(reCompiled, 0, line, 2048, 0, 0, results, 10)) < 0) + if ((match = strstr(line, "cpu MHz")) == NULL) continue; - pcre_get_substring(line, results, rc, 1, &(match)); + // scan strinf for the next number + for(; (*match < 0x30) || (*match > 0x39); match++) + ; + snprintf(cmdline, MAX_PATH, "-freq%s", match); fclose(fp); - pcre_free_substring(match); - pcre_free(reCompiled); return cmdline; } - return "0"; + return "-freq0"; } static int init_env(char *path)