ccanlint: module_links test must link with module.
authorRusty Russell <rusty@rustcorp.com.au>
Tue, 27 Mar 2012 05:01:27 +0000 (15:31 +1030)
committerRusty Russell <rusty@rustcorp.com.au>
Tue, 27 Mar 2012 05:01:27 +0000 (15:31 +1030)
Gcc doesn't include unused inline functions, even without -O, but Solaris CC
does, so fails to link block_pool where one inline function refers to a
non-inline function.

tools/ccanlint/tests/module_links.c

index 66f8954f4be381d982e8068cf3917b653682e1c8..2dda642978f75b8512e3c97b7c3564f12ea49e17 100644 (file)
@@ -23,13 +23,18 @@ static const char *can_build(struct manifest *m)
 
 static char *obj_list(const struct manifest *m)
 {
-       char *list = talloc_strdup(m, "");
+       char *list;
        struct manifest *i;
 
+       if (m->compiled[COMPILE_NORMAL])
+               list = talloc_strdup(m, m->compiled[COMPILE_NORMAL]);
+       else
+               list = talloc_strdup(m, "");
+
        /* Other CCAN deps. */
        list_for_each(&m->deps, i, list) {
                if (i->compiled[COMPILE_NORMAL])
-                       list = talloc_asprintf_append(list, "%s ",
+                       list = talloc_asprintf_append(list, " %s",
                                                      i->compiled
                                                      [COMPILE_NORMAL]);
        }