summary refs log tree commit diff
path: root/csu/libc-start.c
diff options
context:
space:
mode:
authorCarlos O'Donell <carlos@redhat.com>2014-04-11 12:43:58 -0400
committerCarlos O'Donell <carlos@redhat.com>2014-04-14 15:45:40 -0400
commitf737dfd071f12584316ef90f2c71e33c2dc9801e (patch)
tree8f08cbfde6974b06755df5d4392a356ae491be88 /csu/libc-start.c
parent0699f766b10c86912b75f35bef697106b70c1cf6 (diff)
downloadglibc-f737dfd071f12584316ef90f2c71e33c2dc9801e.tar.gz
glibc-f737dfd071f12584316ef90f2c71e33c2dc9801e.tar.xz
glibc-f737dfd071f12584316ef90f2c71e33c2dc9801e.zip
Support _r_debug for static binaries.
We initialize _r_debug for static binaries to allows debug
agents to treat static binaries a little more like dyanmic
ones. This simplifies the work a debug agent has to do to
access TLS in a static binary via libthread_db.

Tested on x86_64.

See:
https://sourceware.org/ml/libc-alpha/2014-04/msg00183.html

	[BZ #16831]
	* csu/libc-start.c (LIBC_START_MAIN) [!SHARED]: Call
	_dl_debug_initialize.
Diffstat (limited to 'csu/libc-start.c')
-rw-r--r--csu/libc-start.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/csu/libc-start.c b/csu/libc-start.c
index 3b7092b359..d571a1aca9 100644
--- a/csu/libc-start.c
+++ b/csu/libc-start.c
@@ -264,6 +264,9 @@ LIBC_START_MAIN (int (*main) (int, char **, char ** MAIN_AUXVEC_DECL),
     GLRO(dl_debug_printf) ("\ntransferring control: %s\n\n", argv[0]);
 #endif
 
+#ifndef SHARED
+  _dl_debug_initialize (0, LM_ID_BASE);
+#endif
 #ifdef HAVE_CLEANUP_JMP_BUF
   /* Memory for the cancellation buffer.  */
   struct pthread_unwind_buf unwind_buf;