Files
gentoo/dev-util/flatpak-builder/files/flatpak-builder-1.2.2-musl.patch
Alfred Persson Forsberg 43e759c25a dev-util/flatpak-builder: fixed building for musl
Closes: https://github.com/gentoo/gentoo/pull/24991
Closes: https://bugs.gentoo.org/834671
Signed-off-by: Alfred Persson Forsberg <cat@catcream.org>
Signed-off-by: Zac Medico <zmedico@gentoo.org>
2022-04-11 12:18:58 -07:00

70 lines
1.9 KiB
Diff

diff --git a/subprojects/debugedit/tools/debugedit.c b/subprojects/debugedit/tools/debugedit.c
index 668777a..b3ba5cb 100644
--- a/subprojects/debugedit/tools/debugedit.c
+++ b/subprojects/debugedit/tools/debugedit.c
@@ -25,7 +25,11 @@
#include <byteswap.h>
#include <endian.h>
#include <errno.h>
+#ifdef __GLIBC__
#include <error.h>
+#else
+#include "error.h"
+#endif
#include <limits.h>
#include <string.h>
#include <stdlib.h>
diff --git a/subprojects/debugedit/tools/error.h b/subprojects/debugedit/tools/error.h
new file mode 100644
index 0000000..c330dc3
--- /dev/null
+++ b/subprojects/debugedit/tools/error.h
@@ -0,0 +1,26 @@
+#ifndef _ERROR_H
+#define _ERROR_H
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <errno.h>
+
+static unsigned int error_message_count = 0;
+
+static inline void error(int status, int errnum, const char* format, ...)
+{
+ va_list ap;
+ fprintf(stderr, "%s: ", program_invocation_name);
+ va_start(ap, format);
+ vfprintf(stderr, format, ap);
+ va_end(ap);
+ if (errnum)
+ fprintf(stderr, ": %s", strerror(errnum));
+ fprintf(stderr, "\n");
+ error_message_count++;
+ if (status)
+ exit(status);
+}
+
+#endif
diff --git a/subprojects/libglnx/glnx-macros.h b/subprojects/libglnx/glnx-macros.h
index 6d8aca9..e3e4e33 100644
--- a/subprojects/libglnx/glnx-macros.h
+++ b/subprojects/libglnx/glnx-macros.h
@@ -28,6 +28,16 @@
G_BEGIN_DECLS
+/* taken from glibc unistd.h and fixes musl */
+#ifndef TEMP_FAILURE_RETRY
+#define TEMP_FAILURE_RETRY(expression) \
+ (__extension__ \
+ ({ long int __result; \
+ do __result = (long int) (expression); \
+ while (__result == -1L && errno == EINTR); \
+ __result; }))
+#endif
+
/* All of these are for C only. */
#ifndef __GI_SCANNER__