[COMMITTED] ada: Add PIE support to backtraces on Linux

Message ID 20221128120451.171477-1-poulhies@adacore.com
State Accepted
Headers
Series [COMMITTED] ada: Add PIE support to backtraces on Linux |

Checks

Context Check Description
snail/gcc-patch-check success Github commit url

Commit Message

Marc Poulhiès Nov. 28, 2022, 12:04 p.m. UTC
  From: Eric Botcazou <ebotcazou@adacore.com>

gcc/ada/

	* adaint.c [Linux]: Include <link.h>.
	(__gnat_get_executable_load_address) [Linux]: Enable.

Tested on x86_64-pc-linux-gnu, committed on master.

---
 gcc/ada/adaint.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
  

Patch

diff --git a/gcc/ada/adaint.c b/gcc/ada/adaint.c
index 199dbe0e405..d2604ca9b77 100644
--- a/gcc/ada/adaint.c
+++ b/gcc/ada/adaint.c
@@ -3524,6 +3524,8 @@  __gnat_cpu_set (int cpu, size_t count ATTRIBUTE_UNUSED, cpu_set_t *set)
 
 #if defined (__APPLE__)
 #include <mach-o/dyld.h>
+#elif defined (__linux__)
+#include <link.h>
 #endif
 
 const void *
@@ -3532,10 +3534,8 @@  __gnat_get_executable_load_address (void)
 #if defined (__APPLE__)
   return _dyld_get_image_header (0);
 
-#elif 0 && defined (__linux__)
-  /* Currently disabled as it needs at least -ldl.  */
+#elif defined (__linux__)
   struct link_map *map = _r_debug.r_map;
-
   return (const void *)map->l_addr;
 
 #elif defined (_WIN32)