Merge pull request #71819 from Riteo/certified-musl-moment

Make PIE relocation detection glibc-only
This commit is contained in:
Rémi Verschelde 2023-01-21 20:52:40 +01:00
commit 271920cc54
No known key found for this signature in database
GPG Key ID: C3336907360768E1
1 changed files with 6 additions and 0 deletions

View File

@ -81,7 +81,13 @@ static void handle_crash(int sig) {
print_error(vformat("Dumping the backtrace. %s", msg)); print_error(vformat("Dumping the backtrace. %s", msg));
char **strings = backtrace_symbols(bt_buffer, size); char **strings = backtrace_symbols(bt_buffer, size);
// PIE executable relocation, zero for non-PIE executables // PIE executable relocation, zero for non-PIE executables
#ifdef __GLIBC__
// This is a glibc only thing apparently.
uintptr_t relocation = _r_debug.r_map->l_addr; uintptr_t relocation = _r_debug.r_map->l_addr;
#else
// Non glibc systems apparently don't give PIE relocation info.
uintptr_t relocation = 0;
#endif //__GLIBC__
if (strings) { if (strings) {
List<String> args; List<String> args;
for (size_t i = 0; i < size; i++) { for (size_t i = 0; i < size; i++) {