X-Git-Url: https://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=tools%2Fccanlint%2Ftests%2Fcheck_build.c;h=eb968e11e36d65052ce3d647e88093da16a33c8e;hp=03e3233c422c0b334677ade4ab3220cf845988dd;hb=382e1e2900997b5cc5f28c350c6fcb54d4859ecc;hpb=61088f5c752c555172e2ab6cf93a7967f79f3f2c;ds=sidebyside diff --git a/tools/ccanlint/tests/check_build.c b/tools/ccanlint/tests/check_build.c index 03e3233c..eb968e11 100644 --- a/tools/ccanlint/tests/check_build.c +++ b/tools/ccanlint/tests/check_build.c @@ -21,12 +21,6 @@ static const char *can_build(struct manifest *m) return NULL; } -static int cleanup_testfile(char *testfile) -{ - unlink(testfile); - return 0; -} - static char *obj_list(const struct manifest *m) { char *list = talloc_strdup(m, ""); @@ -42,24 +36,21 @@ static char *obj_list(const struct manifest *m) static char *lib_list(const struct manifest *m) { unsigned int i, num; - char **libs = get_libs(m, ".", ".", &num); + char **libs = get_libs(m, ".", ".", &num, &m->info_file->compiled); char *ret = talloc_strdup(m, ""); for (i = 0; i < num; i++) - ret = talloc_asprintf_append(ret, "-l %s ", libs[i]); + ret = talloc_asprintf_append(ret, "-l%s ", libs[i]); return ret; } static void *check_use_build(struct manifest *m) { char *contents; - char *tmpfile, *outfile; + char *tmpfile, *err; int fd; - tmpfile = talloc_strdup(m, tempnam("/tmp", "ccanlint")); - talloc_set_destructor(tmpfile, cleanup_testfile); - outfile = talloc_strdup(m, tempnam("/tmp", "ccanlint")); - talloc_set_destructor(outfile, cleanup_testfile); + tmpfile = temp_file(m, ".c"); fd = open(tmpfile, O_WRONLY | O_CREAT | O_EXCL, 0600); if (fd < 0) @@ -79,8 +70,9 @@ static void *check_use_build(struct manifest *m) } close(fd); - return run_command(m, "cc " CFLAGS " -o %s -x c %s -x none %s %s", - outfile, tmpfile, obj_list(m), lib_list(m)); + if (!compile_and_link(m, tmpfile, obj_list(m), "", lib_list(m), &err)) + return err; + return NULL; } static const char *describe_use_build(struct manifest *m, void *check_result)