You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/sys-apps/sandbox/files/musl.patch

43 lines
1.5 KiB

--- a/libsandbox/trace.c
+++ b/libsandbox/trace.c
@@ -10,7 +10,16 @@
#include "sb_nr.h"
static long do_peekdata(long offset);
-static long _do_ptrace(enum __ptrace_request request, const char *srequest, void *addr, void *data);
+/* Note on _do_ptrace argument types:
+ glibc defines ptrace as:
+ long ptrace(enum __ptrace_request request, pid_t pid, void *addr, void *data);
+ musl defines ptrace as:
+ long ptrace(int, ...);
+
+ Let's clobber to 'int' lowest common denominator.
+ */
+typedef int sb_ptrace_req_t;
+static long _do_ptrace(sb_ptrace_req_t request, const char *srequest, void *addr, void *data);
#define do_ptrace(request, addr, data) _do_ptrace(request, #request, addr, data)
#define _trace_possible(data) true
@@ -44,7 +53,7 @@ static void trace_exit(int status)
_exit(status);
}
-static long _do_ptrace(enum __ptrace_request request, const char *srequest, void *addr, void *data)
+static long _do_ptrace(sb_ptrace_req_t request, const char *srequest, void *addr, void *data)
{
long ret;
try_again:
--- a/scripts/gen_symbol_header.awk
+++ b/scripts/gen_symbol_header.awk
@@ -117,6 +117,10 @@ END {
gsub(/@|\./, "_", sym_real_name);
}
+ # Avoid libc's symbol rename via #define. musl defines aliases as:
+ # #define mkstemp64 mkstemp
+ # #define mkstemps64 mkstemps
+ printf("#undef %s\n", sym_index);
printf("#define symname_%s \"%s\"\n", sym_real_name, sym_index);
# We handle non-versioned libc's by setting symver_*