1
0
Fork 0
mirror of https://github.com/tobast/libunwind-eh_elf.git synced 2024-12-29 14:23:42 +01:00
Commit graph

2656 commits

Author SHA1 Message Date
David Mosberger-Tang
ca69fee8bb Merge ../libunwind-v0.98
Conflicts:

	include/dwarf_i.h
	include/x86/jmpbuf.h
	include/x86_64/jmpbuf.h
	src/hppa/init.h
	src/mi/Gget_fpreg.c
	src/mi/Gset_fpreg.c
	src/mi/strerror.c
2006-07-25 21:41:43 -06:00
David Mosberger-Tang
af2503e223 Fix bug in libunwind-ptrace which can cause reading of random data.
(maps_next): After reading less than a full buffer of data, copy
remaining data to the top of the buffer so as to maintain the
invariant that all data between mi->buf and mi->buf_end is valid.
This avoids maps_next() parsing uninitialized data.
2006-07-25 21:35:30 -06:00
David Mosberger-Tang
cbd8648b33 Make libunwind compile with recent versions of GAS.
Don't test read-only access to F0 and F1 registers --- according to
the SCRA manual, those locations cannot even be expressed in SPILL
descriptors and newer versions of GAS (as well as IAS) won't accept
.spillreg directives targeting those registers.
2006-07-25 21:34:32 -06:00
David Mosberger-Tang
f176ad6fc6 Bring git v0.98.5 tree in sync with released v0.98.5.
Sadly, the conversion from Bitkeeper -> CVS -> git wasn't perfect.  Or
so it seems.
2006-07-25 21:32:28 -06:00
hp.com!davidm
bc09a82735 ia64: Allow write-access to UNW_IA64_BSP and UNW_IA64_SP.
Writing UNW_IA64_BSP and UNW_IA64_SP can wreak havoc if not done
properly but can also be extremely useful when done correctly.  For
example, the Linux kernel can use this to update a cursor with the
MIN_STATE info which is saved by firmware due to an MCA or INIT event.

BKrev: 428e03020AqYSMZEt1Q3cCPH0Bj2eA
2005-05-20 15:32:18 +00:00
hp.com!davidm
2211958a9c UNW_IA64_SP and UNW_IA64_BSP are no longer read-only.
(Logical change 1.303)
2005-05-20 15:32:18 +00:00
hp.com!davidm
b47b9aa232 UNW_IA64_BSP and UNW_IA64_SP are no longer read-only.
(Logical change 1.303)
2005-05-20 15:32:18 +00:00
hp.com!davidm
11f4871570 Regenerate.
(Logical change 1.303)
2005-05-20 15:32:18 +00:00
hp.com!davidm
36a0275014 Allow write-access to UNW_IA64_BSP and UNW_REG_SP.
(Logical change 1.303)
2005-05-20 15:32:18 +00:00
hp.com!davidm
7c986f6190 ia64: Fix typo in kernel-files.txt.
BKrev: 428e01ddAjr7CJzIA23i8dwJQ5ueug
2005-05-20 15:27:25 +00:00
hp.com!davidm
41db9a8a35 Adjust for renaming of ia64 -> tdep-ia64.
(Logical change 1.302)
2005-05-20 15:27:25 +00:00
hp.com!davidm
4591d090c5 ia64: Use update_nat() instead of equivalent open code in tdep_access_reg().
BKrev: 428dfb26foOQZSriLQ73ORqI0P8TQQ
2005-05-20 14:58:46 +00:00
hp.com!davidm
cf2a44ca49 Use update_nat() instead of equivalent open code.
(Logical change 1.301)
2005-05-20 14:58:46 +00:00
hp.com!davidm
2bc0aee843 ia64: Allow r1 to be saved in an ABI-specific frame.
This makes core-dumps contain the proper (user-level) value for r1
when using libunwind in the kernel.

BKrev: 428df94ebHSJQTkoDgFiQ_XgzkMxhg
2005-05-20 14:50:54 +00:00
hp.com!davidm
f5de64f9f7 If r1 has been saved in an ABI-specific frame
(such as an interrupt frame), access the saved
value.  Otherwise, pick it up from the unwind-info
for the matching IP.

(Logical change 1.300)
2005-05-20 14:50:54 +00:00
hp.com!davidm
5b1dfeca70 ia64: Remove some dead code.
BKrev: 428df06dTtluXFSTIb7fU0BDyt7ZMw
2005-05-20 14:13:01 +00:00
hp.com!davidm
399f120c96 Drop unused readonly variable.
(Logical change 1.299)
2005-05-20 14:13:01 +00:00
hp.com!davidm
2c08119b53 ia64: Drop early-out-on-zero-IP from unw_step()
The early-out causes problems in the kernel, which wants to unwind to the
end of the kernel-stack (i.e., until IP==0) and then access the user-level
state.

BKrev: 428de7a4kGcNmG2Tv5tDJMbQmqXO4w
2005-05-20 13:35:32 +00:00
hp.com!davidm
3fa950e818 Remove early-out test when IP is zero.
(Logical change 1.298)
2005-05-20 13:35:32 +00:00
hp.com!davidm
3b7eb49469 ia64: Introduce rbs_get_base() to simplify Linux kernel integration.
In the Linux kernel, we want to track the size of all register-backing stores
so we can protect against illegal memory accesses.  Enable this by introducing
an rbs_get_base() macro.

BKrev: 428de263-syBtG-G9-mlstg074gvtA
2005-05-20 13:13:07 +00:00
hp.com!davidm
19e3bf3ea6 (rbs_switch): Use rbs_get_base() to determine the size of the register
backing store.

(Logical change 1.297)
2005-05-20 13:13:07 +00:00
hp.com!davidm
7a8b0ba617 (rbs_get_base): New macro.
(Logical change 1.297)
2005-05-20 13:13:07 +00:00
hp.com!davidm
9724ac492c (common_init): Use rbs_get_base() to determine size of register-backing store.
(Logical change 1.297)
2005-05-20 13:13:07 +00:00
hp.com!davidm
8236491807 ia64: Add Linux kernel support to unw_init_local().
As a side-effect, this gets rid of an ugly hack where unw_init_local() used
to overwrite sc_rbs_base in the ucontext_t.

BKrev: 428ddc7flum3n06RgXZ5vnW9H6qEjA
2005-05-20 12:47:59 +00:00
hp.com!davidm
080f8423d9 Read sp and bsp via ia64_get() and then pass them to common_init().
(Logical change 1.296)
2005-05-20 12:47:59 +00:00
hp.com!davidm
50bbc1fe3d (set_as_arg): New function.
(get_initial_stack_pointers): Likewise.
(unw_init_local): Use new functions to make code more readable and add
	Linux kernel support.

(Logical change 1.296)
2005-05-20 12:47:59 +00:00
hp.com!davidm
84bd124a24 (inlined_uc_addr): Remove UNW_IA64_AR_BSP. We no longer need this ugly hack
since the initial BSP is now passed directly into common_init().

(Logical change 1.296)
2005-05-20 12:47:59 +00:00
hp.com!davidm
4992f1c936 (common_init): Take initial sp and bsp values as arguments instead of
reading them via ia64_get().

(Logical change 1.296)
2005-05-20 12:47:59 +00:00
hp.com!davidm
6ad2531a11 Remove Ginit.c. Kernel doesn't use it anymore.
(Logical change 1.295)
2005-05-20 11:28:16 +00:00
hp.com!davidm
96c8c511fe Move around a few more things to ease kernel-integration. No functional changes.
BKrev: 428dc9d01iJMLbH7c82d_DctwhahoQ
2005-05-20 11:28:16 +00:00
hp.com!davidm
97b483dcaa Drop include of "mempool.h", which causes problems in the kernel, due to
a conflicting <linux/mempool.h>.
(SOS_MEMORY_SIZE): Move to libunwind_i.h.

(Logical change 1.295)
2005-05-20 11:28:16 +00:00
hp.com!davidm
1b63be3f89 (parse_dynamic): Make it a dummy-function of _U_dyn_op isn't defined, i.e.,
if libunwind-dynamic.h isn't in use (as is the case for the kernel at
	the moment).

(Logical change 1.295)
2005-05-20 11:28:16 +00:00
hp.com!davidm
7894f0edc0 (ia64_strloc): Move to Grbs.c.
(Logical change 1.295)
2005-05-20 11:28:16 +00:00
hp.com!davidm
96407911ee (ia64_strloc): Move here from Ginit.c so it can be shared with the kernel.
(Logical change 1.295)
2005-05-20 11:28:16 +00:00
hp.com!davidm
d5ab898cdf (SOS_MEMORY_SIZE): Move to here from src/mi/mempool.c.
(Logical change 1.295)
2005-05-20 11:28:16 +00:00
hp.com!davidm
c762d7645f Shuffle around include files to make it easier to use libunwind in the Linux
kernel.
Fix x86 and x86-64 to build again.

BKrev: 428db2583bUUTrmj2-oB8ugdGh4INQ
2005-05-20 09:48:08 +00:00
hp.com!davidm
c4a2f46b6a Replace tdep.h symlink with tdep symlink.
(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
9d94c8f62b Rename: include/x86_64/jmpbuf.h -> include/tdep-x86_64/jmpbuf.h
}(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
e3ac62c5f1 Rename: include/x86_64/jmpbuf.h -> include/tdep-x86_64/jmpbuf.h
(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
3a2c945244 Rename: include/x86/jmpbuf.h -> include/tdep-x86/jmpbuf.h
}(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
f6d4c74beb Rename: include/x86/jmpbuf.h -> include/tdep-x86/jmpbuf.h
(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
e6cf7e84eb Rename: include/x86/dwarf-config.h -> include/tdep-x86/dwarf-config.h
}(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
d90772c868 Rename: include/x86/dwarf-config.h -> include/tdep-x86/dwarf-config.h
(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
56cea5b4a9 Rename: include/ia64/script.h -> include/tdep-ia64/script.h
}(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
12f0ce1a39 Rename: include/ia64/script.h -> include/tdep-ia64/script.h
(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
910087d5b5 Rename: include/ia64/jmpbuf.h -> include/tdep-ia64/jmpbuf.h
}(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
e86e18224d Rename: include/ia64/jmpbuf.h -> include/tdep-ia64/jmpbuf.h
(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
983d841e64 Rename: include/hppa/jmpbuf.h -> include/tdep-hppa/jmpbuf.h
}(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
f8a07dfb22 Rename: include/hppa/jmpbuf.h -> include/tdep-hppa/jmpbuf.h
(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
400a917a7a Rename: include/hppa/dwarf-config.h -> include/tdep-hppa/dwarf-config.h
}(Logical change 1.294)
2005-05-20 09:48:08 +00:00