Commit 8d9d288e authored by Andrew Jeffery's avatar Andrew Jeffery

configurator: Add OpenMP detection

parent 7c7ad8cc
......@@ -55,6 +55,7 @@ struct test {
const char *depends;
const char *link;
const char *fragment;
const char *flags;
const char *overrides; /* On success, force this to '1' */
bool done;
bool answer;
......@@ -310,6 +311,12 @@ static struct test tests[] = {
"static __attribute__((warn_unused_result)) int func(int i) {\n"
" return i + 1;\n"
"}" },
{ "HAVE_OPENMP", INSIDE_MAIN, NULL, NULL,
"int i;\n"
"#pragma omp parallel for\n"
"for(i = 0; i < 0; i++) {};\n"
"return 0;\n",
"-Werror -fopenmp" },
};
static char *grab_fd(int fd)
......@@ -415,7 +422,7 @@ static struct test *find_test(const char *name)
static bool run_test(const char *cmd, struct test *test)
{
char *output;
char *output, *newcmd;
FILE *outf;
int status;
......@@ -490,17 +497,30 @@ static bool run_test(const char *cmd, struct test *test)
if (verbose > 1)
if (system("cat " INPUT_FILE) == -1);
newcmd = strdup(cmd);
if (test->flags) {
newcmd = realloc(newcmd, strlen(newcmd) + strlen(" ")
+ strlen(test->flags) + 1);
strcat(newcmd, " ");
strcat(newcmd, test->flags);
if (verbose > 1)
printf("Extra flags line: %s", newcmd);
}
if (test->link) {
char *newcmd;
newcmd = malloc(strlen(cmd) + strlen(" ")
newcmd = realloc(newcmd, strlen(newcmd) + strlen(" ")
+ strlen(test->link) + 1);
sprintf(newcmd, "%s %s", cmd, test->link);
strcat(newcmd, " ");
strcat(newcmd, test->link);
if (verbose > 1)
printf("Extra link line: %s", newcmd);
cmd = newcmd;
}
output = run(cmd, &status);
output = run(newcmd, &status);
free(newcmd);
if (status != 0 || strstr(output, "warning")) {
if (verbose)
printf("Compile %s for %s, status %i: %s\n",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment