]> git.ozlabs.org Git - ccan/blobdiff - tools/ccanlint/tests/module_builds.c
base64: fix for unsigned chars (e.g. ARM).
[ccan] / tools / ccanlint / tests / module_builds.c
index 52059af795846fafed7c09f11ddfe5d530b03ff4..c33971e60de35906eab8bebf40dbba1610cb8b97 100644 (file)
@@ -1,7 +1,7 @@
 #include <tools/ccanlint/ccanlint.h>
 #include <tools/tools.h>
-#include <ccan/talloc/talloc.h>
 #include <ccan/str/str.h>
+#include <ccan/take/take.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
@@ -15,7 +15,7 @@
 #include <ctype.h>
 #include "build.h"
 
-static const char *can_build(struct manifest *m)
+static const char *can_build(struct manifest *m UNNEEDED)
 {
        if (safe_mode)
                return "Safe mode enabled";
@@ -24,38 +24,25 @@ static const char *can_build(struct manifest *m)
 
 static char *obj_list(const struct manifest *m, enum compile_type ctype)
 {
-       char *list = talloc_strdup(m, "");
+       char *list = tal_strdup(m, "");
        struct ccan_file *i;
 
        /* Objects from all the C files. */
-       list_for_each(&m->c_files, i, list)
-               list = talloc_asprintf_append(list, "%s ",
-                                             i->compiled[ctype]);
-
+       list_for_each(&m->c_files, i, list) {
+               list = tal_strcat(m, take(list), i->compiled[ctype]);
+               list = tal_strcat(m, take(list), " ");
+       }
        return list;
 }
 
-char *build_module(struct manifest *m, bool keep,
+char *build_module(struct manifest *m,
                   enum compile_type ctype, char **errstr)
 {
-       char *name = link_objects(m, m->basename, false, obj_list(m, ctype),
-                                 errstr);
-       if (name) {
-               if (keep) {
-                       char *realname = talloc_asprintf(m, "%s.o", m->dir);
-                       assert(ctype == COMPILE_NORMAL);
-                       /* We leave this object file around, all built. */
-                       if (!move_file(name, realname))
-                               err(1, "Renaming %s to %s", name, realname);
-                       name = realname;
-               }
-       }
-       return name;
+       return link_objects(m, m->basename, obj_list(m, ctype), errstr);
 }
 
 static void do_build(struct manifest *m,
-                    bool keep,
-                    unsigned int *timeleft,
+                    unsigned int *timeleft UNNEEDED,
                     struct score *score)
 {
        char *errstr;
@@ -68,9 +55,9 @@ static void do_build(struct manifest *m,
        }
 
        m->compiled[COMPILE_NORMAL]
-               = build_module(m, keep, COMPILE_NORMAL, &errstr);
+               = build_module(m, COMPILE_NORMAL, &errstr);
        if (!m->compiled[COMPILE_NORMAL]) {
-               score_file_error(score, NULL, 0, "%s", errstr);
+               score_error(score, m->modname,"%s", errstr);
                return;
        }