1
0
Fork 0
mirror of https://github.com/tobast/libunwind-eh_elf.git synced 2024-11-26 17:17:39 +01:00
Commit graph

1118 commits

Author SHA1 Message Date
hp.com!davidm
04dd29b6eb (UNUSED): New macro.
(UNW_DEBUG): If DEBUG is not defined, set it to 0.
(inline): Take advantage of UNUSED macro.
(HAVE_CMPXCHG): Don't define it if we're on HP-UX with GCC v3.2 to
	work around a compiler-bug.

(Logical change 1.130)
2003-11-27 06:52:54 +00:00
hp.com!davidm
7eaa3cea76 (TARGET_ELF64): Delete.
(TARGET_ELF32): Likewise.
(_UPT_get_proc_name): Use ELF_CLASS instead of TARGET_ELFxx.

(Logical change 1.130)
2003-11-27 06:52:54 +00:00
hp.com!davidm
5e446b24d7 (ITERATIONS): New macro.
(maxlevel): New global variable.
(measure_unwind): Return init/step times via arg pointers.
(f1): Pass through init/step pointers.
(doit): New function.
(main): Use doit() instead of open code.

(Logical change 1.130)
2003-11-27 06:52:54 +00:00
hp.com!davidm
85d354c9d1 Work around libtool bug so compilationwith Intel compiler works again.
BKrev: 3fc5991dg2wv4IxyYc5QLOVccS6wbg
2003-11-27 06:26:37 +00:00
hp.com!davidm
6b9526e8e0 Fix typo in _UPT_get_dyn_info_list_addr() from yesterday that broke
remote dynamic unwind info lookup.

BKrev: 3fc595eeTAXHeXCDuZ1UTKzqgl7jJg
2003-11-27 06:13:02 +00:00
hp.com!davidm
85bf403eab (_UPT_get_dyn_info_list_addr): Fix typo.
(Logical change 1.128)
2003-11-27 06:13:02 +00:00
hp.com!davidm
b1d369ad0a Regenerate.
(Logical change 1.127)
2003-11-26 18:59:24 +00:00
hp.com!davidm
8741873156 Modernize configure.in.
BKrev: 3fc4f80cj12f979MDBVeoZwt_haAAQ
2003-11-26 18:59:24 +00:00
hp.com!davidm
487beb8938 Modernize AC_INIT/AC_INIT_AUTOMAKE calls.
(AC_CONFIG_SRCDIR): New call.

(Logical change 1.127)
2003-11-26 18:59:24 +00:00
hp.com!davidm
a4ab51f266 Upon request from the gdb-maintainers, add support for keeping the
unwind-table in remote memory.  This can be faster if the unwind-table
is large and only a few entries from the table need to be read.  Such
remote tables are handled via a new unwind-table format called
UNW_INFO_FORMAT_TABLE (see libunwind-dynamic.h).  The API remains
backwards-compatible with the exception of the ia64-specific
_Uia64_find_dyn_list() function.

BKrev: 3fc3d8cd4VXFifyDtAfkKgGAR7NcnA
2003-11-25 22:33:49 +00:00
hp.com!davidm
72d091c1d6 (unwi_put_dynamic_unwind_info): Handle UNW_INFO_FORMAT_REMOTE_TABLE.
(Logical change 1.126)
2003-11-25 22:33:49 +00:00
hp.com!davidm
fb7578ac55 (unwi_get_proc_name): Handle UNW_INFO_FORMAT_REMOTE_TABLE.
(Logical change 1.126)
2003-11-25 22:33:49 +00:00
hp.com!davidm
02d88bcf13 (unwi_extract_dynamic_info): Handle UNW_INFO_FORMAT_REMOTE_TABLE.
(Logical change 1.126)
2003-11-25 22:33:49 +00:00
hp.com!davidm
dd8806c82d (unw_dyn_info_format_t): Add UNW_INFO_FORMAT_REMOTE_TABLE.
(unw_dyn_remote_table_info_t): New type.
(unw_dyn_info): Add "rti" member.

(Logical change 1.126)
2003-11-25 22:33:49 +00:00
hp.com!davidm
7cec620ea8 (remote_read): New macro.
(remote_lookup): New function.
(_Uia64_search_unwind_table): Handle UNW_INFO_FORMAT_REMOTE_TABLE.
(_Uia64_find_dyn_list): Take unw_dyn_info_t pointer argument instead of its
	members and handle UNW_INFO_FORMAT_REMOTE_TABLE.

(Logical change 1.126)
2003-11-25 22:33:49 +00:00
hp.com!davidm
13147e5e9c (free_dyn_info): Handle UNW_INFO_FORMAT_REMOTE_TABLE.
(intern_dyn_info): Likewise.

(Logical change 1.126)
2003-11-25 22:33:49 +00:00
hp.com!davidm
0976af5f9f (create_state_record_for): Handle UNW_INFO_FORMAT_REMOTE_TABLE.
(Logical change 1.126)
2003-11-25 22:33:49 +00:00
hp.com!davidm
48723262f7 (_Uia64_find_dyn_list): Pass unw_dyn_info_t pointer instead of its members.
(Logical change 1.126)
2003-11-25 22:33:49 +00:00
hp.com!davidm
04a99eaa5c (_UPT_get_dyn_info_list_addr): Pass unw_dyn_info_t pointer instead of its
members.

(Logical change 1.126)
2003-11-25 22:33:49 +00:00
hp.com!davidm
32894ce85a Fix the non-atomic_ops-version of cmpxchg_ptr().
BKrev: 3fc3b7e1Zo2K5ohi8QDhmWPnKb5iFQ
2003-11-25 20:13:21 +00:00
hp.com!davidm
e01fb3b27e (cmpxchg_ptr): Correct sense of comparison.
(Logical change 1.125)
2003-11-25 20:13:21 +00:00
hp.com!davidm
14e8ee4385 ia64: If ATOMIC_OPS_H is defined, use a simple flag rather than a
pthread_mutex lock to mediate access to the script-cache.
	This has the advantage of avoiding the relatively expensive
	sigprocmask()/pthread_mutex_lock()/pthread_mutex_unlock()/sigprocmask()
	sequence when caching is enabled.  Also, with thread-local caching,
	libunwind should scale perfectly to large number of CPUs/threads.

BKrev: 3fc299f5M7RqNOmP68nsDCIWdSS1lg
2003-11-24 23:53:25 +00:00
hp.com!davidm
e433ec3820 (unw_create_addr_space): Drop call to ia64_script_cache_init(). It's
not needed because we default to "no caching" and if the application
	turns on caching via unw_set_caching_policy(), the cache will get
	initialized at that time.

(Logical change 1.124)
2003-11-24 23:53:25 +00:00
hp.com!davidm
6ed5d0264f (ia64_script_cache_init): Delete.
(Logical change 1.124)
2003-11-24 23:53:25 +00:00
hp.com!davidm
d61f300b7b (ia64_script_cache): If HAVE_ATOMIC_OPS_H is true, declare "busy" member
in lieu of "lock" member.

(Logical change 1.124)
2003-11-24 23:53:25 +00:00
hp.com!davidm
629d7d3263 (ia64_per_thread_cache): Initialize busy/lock member.
(get_script_cache): Return NULL if caching is disabled.  If
	HAVE_ATOMIC_OPS_H is defined, set the busy flag and if
	the script cache is busy already, return NULL.
(put_script_cache): Don't allow it to be called for UNW_CACHE_NONE case.
	If HAVE_ATOMIC_OPS_H is defined, clear the "busy" flag via
	AO_CLEAR.
(ia64_get_cached_proc_info): If we're unable to acquire the cache,
	return -UNW_ENOINFO.
(script_init): New function.
(script_new): Replace open code with call to script_init().
(uncached_find_save_locs): New function.
(ia64_find_save_locs): Move code for uncached case to
	uncached_find_save_locs().  If get_script_cache() is unable to
	lock the script-cache, fall back to uncached_find_save_locs().
(ia64_script_cache_init): Delete.

(Logical change 1.124)
2003-11-24 23:53:25 +00:00
hp.com!davidm
e939f42941 (ia64_local_addr_space_init): Instead of calling ia64_script_cache_init(),
force a flush via unw_flush_cache().

(Logical change 1.124)
2003-11-24 23:53:25 +00:00
hp.com!davidm
c3fa0b6fa8 Regenerate.
(Logical change 1.123)
2003-11-24 21:37:22 +00:00
hp.com!davidm
89d2adc59a Drop include of ia64intrin.h.
(Logical change 1.123)
2003-11-24 21:37:22 +00:00
hp.com!davidm
a0b454581a Drop include of <ia64intrin.h>.
(unw_flush_cache): Replace __sync_fetch_and_add() with fetch_and_add1().

(Logical change 1.123)
2003-11-24 21:37:22 +00:00
hp.com!davidm
9a2388db17 Add support for the atomic-ops interface.
BKrev: 3fc27a12bs0NCbEFc99-DfZIKl61tA
2003-11-24 21:37:22 +00:00
hp.com!davidm
5e832c337f Add CHECK_ATOMIC_OPS test.
(Logical change 1.123)
2003-11-24 21:37:22 +00:00
hp.com!davidm
8e36032bc5 (unw_addr_space): If HAVE_ATOMIC_OPS_H is defined, declare cache_generation
of type AO_T.  This is a temporary work-around until atomic_ops.h
	supports atomic ops on 32-bit variables.

(Logical change 1.123)
2003-11-24 21:37:22 +00:00
hp.com!davidm
92b48f5fe8 (sos_alloc): cmpxchg_ptr() now returns a boolean value (TRUE on success).
(Logical change 1.123)
2003-11-24 21:37:22 +00:00
hp.com!davidm
90e8393da3 (inline): Add #undef of "inline" before (re-)defining it.
Add support for atomic_ops.h.
	Add fetch_and_add1() and if it is supported, define
	HAVE_FETCH_AND_ADD1.

(Logical change 1.123)
2003-11-24 21:37:22 +00:00
hp.com!davidm
94f198b288 (handler): Adjust printf format to avoid compiler warning.
(Logical change 1.123)
2003-11-24 21:37:22 +00:00
hp.com!davidm
64fa4c080a (CHECK_ATOMIC_OPS): New test.
(Logical change 1.123)
2003-11-24 21:37:22 +00:00
hp.com!davidm
3f32d4b09f ia64: Don't acquire the script-cache lock when caching is disabled.
BKrev: 3fc24f7fZ4j5hs7_FGo85zJKgYbBCQ
2003-11-24 18:35:43 +00:00
hp.com!davidm
ffb9c88e0a (ia64_find_save_locs): Separate out the no-cache case so we don't
acquire the script-cache lock needlessly.

(Logical change 1.122)
2003-11-24 18:35:43 +00:00
hp.com!davidm
8a5d7aad9b ia64: Fix an initialization-race that kept NPTL test-case tst-cancel10 from
working properly.

BKrev: 3fc24f08_2n5sDugh5y-3SaRA4-JkQ
2003-11-24 18:33:44 +00:00
hp.com!davidm
3f35f343c3 (needs_initialization): Declare it as volatile so we get proper memory
ordering when accessing it.  Also, shrink size to 1 byte and move
	it closer to other frequently-used fields.

(Logical change 1.121)
2003-11-24 18:33:44 +00:00
hp.com!davidm
22ca263109 (ia64_init): To prevent a race, unw.needs_initialization must be cleared
_after_ everything is initialized.

(Logical change 1.121)
2003-11-24 18:33:44 +00:00
hp.com!davidm
955c9d72de Drop a bogus range-check from _UPT_find_proc_info.c.
BKrev: 3fbf024cAF5HwLyYvJe9ryYzraErAw
2003-11-22 06:29:32 +00:00
hp.com!davidm
ca11999d9d (UPTi_find_unwind_table): Drop bogus range-check.
(Logical change 1.120)
2003-11-22 06:29:32 +00:00
hp.com!davidm
1d1e8f3ba7 ia64: Fix list of register-names used for debugging.
BKrev: 3fbf013cWBAW18Cb6_zIWA-yzUa1OA
2003-11-22 06:25:00 +00:00
hp.com!davidm
40e929815c (unw.pre_name): Add missing register names.
(Logical change 1.119)
2003-11-22 06:25:00 +00:00
hp.com!davidm
21a8c644e7 ia64: Make per-thread caching work.
BKrev: 3fbf0066zF7IGnE1AphIo29Zv59ZqA
2003-11-22 06:21:26 +00:00
hp.com!davidm
8b3248c32e (unw_set_caching_policy): If caching-policy didn't change, return
early.  Always flush cache after changing the policy.
	This is to ensure that the per-thread cache gets initialized
	and no stale info remains.

(Logical change 1.118)
2003-11-22 06:21:26 +00:00
hp.com!davidm
2245be9d9b (get_script_cache): Need to disable signal-delivery even for per-thread
caching.
(put_script_cache): Need to re-enable signal-delivery even for
	per-thread caching.

(Logical change 1.118)
2003-11-22 06:21:26 +00:00
hp.com!davidm
984170936a ia64: Fix the handling of r0. Previously, bad thing would happen
when accessing r0 and there was a signal frame on the stack.

BKrev: 3fbeff34laFDN81Kp37SbTkjOPIGYQ
2003-11-22 06:16:20 +00:00