- file->compiled = talloc_strdup(ctx, tempnam("/tmp", "ccanlint"));
- talloc_set_destructor(file->compiled, cleanup_testfile);
-
- return run_command(m, "cc " CFLAGS " %s -o %s %s %s %s",
- fail ? "-DFAIL" : "",
- file->compiled, file->name,
- obj_list(m, link_with_module), lib_list(m));
+ char *errmsg;
+
+ file->compiled = compile_and_link(ctx, file->name,
+ obj_list(m, link_with_module),
+ fail ? "-DFAIL" : "",
+ lib_list(m), &errmsg);
+ if (!file->compiled)
+ return errmsg;
+ talloc_steal(ctx, file->compiled);
+ return NULL;