diff options
Diffstat (limited to 'src/librarian')
| -rw-r--r-- | src/librarian/librarian.c | 16 |
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; |