@@ -, +, @@ - Use uid_t not __uid_t. - Define _GNU_SOURCE for cpu_set_t and others. - Include string.h for strncmp(). - Detect musl's ldd error message. --- install/util.h 2014-10-24 13:19:58.000000000 +0200 +++ install/util.h 2014-12-28 07:58:51.723864634 +0100 @@ -20,6 +20,8 @@ along with systemd; If not, see . ***/ +#define _GNU_SOURCE + #include #include #include @@ -27,6 +29,7 @@ #include #include #include +#include #include #include #include --- install/dracut-install.c.orig 2014-10-24 13:19:58.000000000 +0200 +++ install/dracut-install.c.orig 2014-12-30 10:16:25.850635694 +0100 @@ -222,7 +222,7 @@ static int cp(const char *src, const cha if (ret == 0) { struct timeval tv[2]; if (fchown(dest_desc, sb.st_uid, sb.st_gid) != 0) - if(fchown(dest_desc, (__uid_t) - 1, sb.st_gid) != 0) + if(fchown(dest_desc, (uid_t) - 1, sb.st_gid) != 0) log_error("Failed to chown %s: %m", dst); tv[0].tv_sec = sb.st_atime; tv[0].tv_usec = 0; @@ -388,6 +388,11 @@ static int resolve_deps(const char *src) break; } + /* musl ldd */ + if (strstr(buf, "Not a valid dynamic program")) + break; + + /* glibc */ if (strstr(buf, "not a dynamic executable")) break;