about summary refs log tree commit diff stats
path: root/src/librarian
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-08-29 11:10:45 +0200
committerptitSeb <sebastien.chev@gmail.com>2024-08-29 11:10:45 +0200
commit4cdd46819fec91bdbdad4f7c50b665d43ec6f4a8 (patch)
treee432705fc61a434e2405b2a6fda9611cdd4ea714 /src/librarian
parent0450371e282bd5c4dbbceaeca590626304609036 (diff)
downloadbox64-4cdd46819fec91bdbdad4f7c50b665d43ec6f4a8.tar.gz
box64-4cdd46819fec91bdbdad4f7c50b665d43ec6f4a8.zip
[TRACE] Improved trace on symbol name
Diffstat (limited to 'src/librarian')
-rw-r--r--src/librarian/librarian.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/librarian/librarian.c b/src/librarian/librarian.c
index 259f7e0c..ddeb063b 100644
--- a/src/librarian/librarian.c
+++ b/src/librarian/librarian.c
@@ -722,6 +722,19 @@ int GetLocalSymbolStartEnd(lib_t *maplib, const char* name, uintptr_t* start, ui
     return 0;
 }
 
+int GetAnySymbolStartEnd(lib_t *maplib, const char* name, uintptr_t* start, uintptr_t* end, int version, const char* vername, int veropt)
+{
+    if(!maplib)
+        return 0;
+    for(int i=0; i<maplib->libsz; ++i) {
+        elfheader_t* h = GetElf(maplib->libraries[i]);
+        if(h && ElfGetSymbolStartEnd(h, start, end, name, NULL, NULL, 1, &veropt))
+            return 1;
+    }
+    return 0;
+
+}
+
 int GetSymTabStartEnd(lib_t* maplib, const char* name, uintptr_t* start, uintptr_t* end)
 {
     if(!maplib)
@@ -729,7 +742,8 @@ int GetSymTabStartEnd(lib_t* maplib, const char* name, uintptr_t* start, uintptr
     for(int i=0; i<maplib->libsz; ++i) {
         elfheader_t* h = GetElf(maplib->libraries[i]);
         if(box64_is32bits) {
-            /* TODO */
+            if(h && ElfGetSymTabStartEnd32(h, start, end, name))
+                return 1;
         } else {
             if(h && ElfGetSymTabStartEnd64(h, start, end, name))
                 return 1;