David E. O'Brien a6d80351b7 Re-initialize gp after a jsr.
When rtld runs the .fini section in a shared lib (C++), the code in
question from .../contrib/gdb/config/alpha/crtbegin.asm first calls
__do_globals_dtors_aux and then __do_frame_takedown.  Unfortunately, the
value of gp after a jsr is undefined and in this case had changed from before
the call, probably as a result of calling code in some other shared library.
The normal calling convention for alpha is to re-initialize gp using
'ldgp gp,0(ra)' after a jsr instruction but in this case no such
re-initialization is done. This leads to a bogus value being read for the
address of __do_frame_takedown and a quick segfault.

Submitted by:   dfr
Obtained from:  GCC 3.0
2001-08-17 22:54:26 +00:00
..
2001-07-12 07:35:06 +00:00
2001-03-21 21:17:54 +00:00
2001-08-17 22:54:26 +00:00
2001-08-15 08:20:31 +00:00
2001-07-28 12:08:15 +00:00
2001-04-03 04:32:48 +00:00
2001-08-13 19:43:14 +00:00
2001-04-18 15:54:10 +00:00
2001-07-23 23:15:44 +00:00