Snap for 7737214 from 3b9ae9a9990a08aad84b3bfd951d4cc328b4ba75 to tm-release

Change-Id: I4e3a5547268cb9826149540456b651759f1f3af2
diff --git a/freebsd-compat.h b/freebsd-compat.h
index 1fdbafe..7ab9d70 100644
--- a/freebsd-compat.h
+++ b/freebsd-compat.h
@@ -20,17 +20,17 @@
 #if __has_include(<sys/sysctl.h>)
 #include <sys/sysctl.h>
 #endif
-// Bionic, like the BSDs, has __unused. glibc doesn't.
-#if defined(__GLIBC__)
+// Bionic, like the BSDs, has __unused. glibc and musl don't.
+#if defined(__GLIBC__) || defined(ANDROID_HOST_MUSL)
 #define __unused __attribute__((__unused__))
 #endif
-// Neither macOS nor glibc has __packed.
-#if defined(__APPLE__) || defined(__GLIBC__)
+// Neither macOS, glibc nor musl has __packed.
+#if defined(__APPLE__) || defined(__GLIBC__) || defined(ANDROID_HOST_MUSL)
 #define __packed __attribute__((__packed__))
 #endif
 
-// The BSDs (including Android and macOS) have getprogname(), but glibc doesn't.
-#if defined(__GLIBC__)
+// The BSDs (including Android and macOS) have getprogname(), but glibc and musl don't.
+#if defined(__GLIBC__) || defined(ANDROID_HOST_MUSL)
 #include <errno.h>
 static inline char* getprogname() { return program_invocation_short_name; }
 #endif