Portability fixes:
- 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 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;