about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2022-12-31 10:21:50 +0100
committerptitSeb <sebastien.chev@gmail.com>2022-12-31 10:21:50 +0100
commitbd4c74221285e438616a25ddd0736339957a069b (patch)
treebb1e9b15a72e1469dbdb6ed134df8cd6b8612a39 /src
parentc821fd938c26348165844653868b986ca37c1c2a (diff)
downloadbox64-bd4c74221285e438616a25ddd0736339957a069b.tar.gz
box64-bd4c74221285e438616a25ddd0736339957a069b.zip
Added empty wrapped _dl_find_object function (for #487, probably other too, but not sure it's enough)
Diffstat (limited to 'src')
-rw-r--r--src/wrapped/generated/functions_list.txt1
-rw-r--r--src/wrapped/generated/wrappedlibdltypes.h1
-rwxr-xr-xsrc/wrapped/wrappedlibdl.c15
-rwxr-xr-xsrc/wrapped/wrappedlibdl_private.h1
4 files changed, 18 insertions, 0 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt
index e5032981..87ec1b7f 100644
--- a/src/wrapped/generated/functions_list.txt
+++ b/src/wrapped/generated/functions_list.txt
@@ -3196,6 +3196,7 @@ wrappedlibdl:
 - pFv:
   - dlerror
 - iFpp:
+  - _dl_find_object
   - dladdr
 - pFpi:
   - dlopen
diff --git a/src/wrapped/generated/wrappedlibdltypes.h b/src/wrapped/generated/wrappedlibdltypes.h
index 0c448396..4d6d208e 100644
--- a/src/wrapped/generated/wrappedlibdltypes.h
+++ b/src/wrapped/generated/wrappedlibdltypes.h
@@ -24,6 +24,7 @@ typedef int64_t (*iFpppi_t)(void*, void*, void*, int64_t);
 #define SUPER() ADDED_FUNCTIONS() \
 	GO(dlclose, iFp_t) \
 	GO(dlerror, pFv_t) \
+	GO(_dl_find_object, iFpp_t) \
 	GO(dladdr, iFpp_t) \
 	GO(dlopen, pFpi_t) \
 	GO(dlsym, pFpp_t) \
diff --git a/src/wrapped/wrappedlibdl.c b/src/wrapped/wrappedlibdl.c
index a71ef4fc..62fce387 100755
--- a/src/wrapped/wrappedlibdl.c
+++ b/src/wrapped/wrappedlibdl.c
@@ -478,6 +478,21 @@ int my_dlinfo(x64emu_t* emu, void* handle, int request, void* info)
     return -1;
 }
 
+typedef struct my_dl_find_object_s {
+    uint64_t    dlfo_flags;
+    void*       dlfo_map_start;
+    void*       dlfo_map_end;
+    struct link_map *dlf_link_map;
+    void*       dlfo_eh_frame;
+    // other stuff...
+} my_dl_find_object_t;
+
+EXPORT int my__dl_find_object(x64emu_t* emu, void* addr, my_dl_find_object_t* result)
+{
+    printf_log(LOG_INFO, "Unimplemented _dl_find_object called\n");
+    return -1;
+}
+
 #define CUSTOM_INIT\
     if(!box64_isglibc234) setNeededLibs(lib, 1, "libc.so.6");
 
diff --git a/src/wrapped/wrappedlibdl_private.h b/src/wrapped/wrappedlibdl_private.h
index 4753af0b..f547ffb9 100755
--- a/src/wrapped/wrappedlibdl_private.h
+++ b/src/wrapped/wrappedlibdl_private.h
@@ -10,5 +10,6 @@ GOM(dlmopen, pFEppi)
 GOM(dlopen, pFEpi)
 GOM(dlsym, pFEpp)
 GOM(dlvsym, pFEppp)   // Weak
+GOM(_dl_find_object, iFEpp)
 
 #endif