mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-28 00:21:52 +03:00
(CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.
This commit is contained in:
@ -1,6 +1,5 @@
|
||||
/* Communicate dynamic linker state to the debugger at runtime.
|
||||
Copyright (C) 1996, 1998,2000,2002,2004,2005,2006
|
||||
Free Software Foundation, Inc.
|
||||
Copyright (C) 1996, 1998, 2000, 2002, 2004 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@ -20,18 +19,6 @@
|
||||
|
||||
#include <ldsodefs.h>
|
||||
|
||||
|
||||
/* These are the members in the public `struct link_map' type.
|
||||
Sanity check that the internal type and the public type match. */
|
||||
#define VERIFY_MEMBER(name) \
|
||||
(offsetof (struct link_map_public, name) == offsetof (struct link_map, name))
|
||||
extern const int verify_link_map_members[(VERIFY_MEMBER (l_addr)
|
||||
&& VERIFY_MEMBER (l_name)
|
||||
&& VERIFY_MEMBER (l_ld)
|
||||
&& VERIFY_MEMBER (l_next)
|
||||
&& VERIFY_MEMBER (l_prev))
|
||||
? 1 : -1];
|
||||
|
||||
/* This structure communicates dl state to the debugger. The debugger
|
||||
normally finds it via the DT_DEBUG entry in the dynamic section, but in
|
||||
a statically-linked program there is no dynamic section for the debugger
|
||||
@ -45,25 +32,20 @@ struct r_debug _r_debug;
|
||||
|
||||
struct r_debug *
|
||||
internal_function
|
||||
_dl_debug_initialize (ElfW(Addr) ldbase, Lmid_t ns)
|
||||
_dl_debug_initialize (ElfW(Addr) ldbase)
|
||||
{
|
||||
struct r_debug *r;
|
||||
|
||||
if (ns == LM_ID_BASE)
|
||||
r = &_r_debug;
|
||||
else
|
||||
r = &GL(dl_ns)[ns]._ns_debug;
|
||||
|
||||
if (r->r_map == NULL || ldbase != 0)
|
||||
if (_r_debug.r_brk == 0)
|
||||
{
|
||||
/* Tell the debugger where to find the map of loaded objects. */
|
||||
r->r_version = 1 /* R_DEBUG_VERSION XXX */;
|
||||
r->r_ldbase = ldbase ?: _r_debug.r_ldbase;
|
||||
r->r_map = (void *) GL(dl_ns)[ns]._ns_loaded;
|
||||
r->r_brk = (ElfW(Addr)) &_dl_debug_state;
|
||||
_r_debug.r_version = 1 /* R_DEBUG_VERSION XXX */;
|
||||
_r_debug.r_ldbase = ldbase;
|
||||
// XXX This is problematic. It means we cannot tell the debugger
|
||||
// XXX about namespaces other than the main one.
|
||||
_r_debug.r_map = GL(dl_ns)[LM_ID_BASE]._ns_loaded;
|
||||
_r_debug.r_brk = (ElfW(Addr)) &_dl_debug_state;
|
||||
}
|
||||
|
||||
return r;
|
||||
return &_r_debug;
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user