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 #include #include +#ifdef __GLIBC__ #include +#else +#include "error.h" +#endif #include #include #include 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 +#include +#include +#include +#include + +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__