mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-07-15 20:25:17 +03:00
see: https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/36722 https://www.openwall.com/lists/musl/2021/07/16/1 https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/22958
52 lines
1.7 KiB
Diff
52 lines
1.7 KiB
Diff
diff --git a/renderdoc/3rdparty/plthook/plthook_elf.c b/renderdoc/3rdparty/plthook/plthook_elf.c
|
|
index 612f689d6..907e7f63e 100644
|
|
--- a/renderdoc/3rdparty/plthook/plthook_elf.c
|
|
+++ b/renderdoc/3rdparty/plthook/plthook_elf.c
|
|
@@ -233,7 +233,11 @@ int plthook_open_by_address(plthook_t **plthook_out, void *address)
|
|
struct link_map *lmap = NULL;
|
|
|
|
*plthook_out = NULL;
|
|
+#ifdef __GLIBC__
|
|
if (dladdr1(address, &info, (void**)&lmap, RTLD_DL_LINKMAP) == 0) {
|
|
+#else
|
|
+ if (dladdr(address, &info) == 0) {
|
|
+#endif
|
|
set_errmsg("dladdr error");
|
|
return PLTHOOK_FILE_NOT_FOUND;
|
|
}
|
|
@@ -243,7 +247,7 @@ int plthook_open_by_address(plthook_t **plthook_out, void *address)
|
|
|
|
static int plthook_open_executable(plthook_t **plthook_out)
|
|
{
|
|
-#if defined __linux__
|
|
+#if defined __linux__ && defined __GLIBC__
|
|
return plthook_open_real(plthook_out, _r_debug.r_map);
|
|
#elif defined __sun
|
|
const char *auxv_file = "/proc/self/auxv";
|
|
diff --git a/renderdoc/os/os_specific.h b/renderdoc/os/os_specific.h
|
|
index cc9a6b09e..844597450 100644
|
|
--- a/renderdoc/os/os_specific.h
|
|
+++ b/renderdoc/os/os_specific.h
|
|
@@ -31,6 +31,7 @@
|
|
|
|
#pragma once
|
|
|
|
+#include <time.h>
|
|
#include <stdarg.h>
|
|
#include <stddef.h>
|
|
#include <stdint.h>
|
|
diff --git a/renderdoc/os/posix/linux/linux_hook.cpp b/renderdoc/os/posix/linux/linux_hook.cpp
|
|
index 4989e2865..0acb3ac0b 100644
|
|
--- a/renderdoc/os/posix/linux/linux_hook.cpp
|
|
+++ b/renderdoc/os/posix/linux/linux_hook.cpp
|
|
@@ -36,6 +36,10 @@
|
|
#include "plthook/plthook.h"
|
|
#include "strings/string_utils.h"
|
|
|
|
+#ifndef __GLIBC__
|
|
+#define RTLD_DEEPBIND 0
|
|
+#endif
|
|
+
|
|
Threading::CriticalSection libLock;
|
|
|
|
RDOC_EXTERN_CONFIG(bool, Linux_Debug_PtraceLogging);
|