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

1755 commits

Author SHA1 Message Date
mostang.com!davidm
58d140ec77 linux: Fix a performance bug in os-linux.h which causes
libunwind-ptrace to perform horribly slow if /proc/PID/maps
	contains many entries.

BKrev: 4085f0d6OOG9Vk-JUd_47gIfOWZo2w
2004-04-21 03:56:06 +00:00
mostang.com!davidm
5de4b351e7 (struct map_iterator): Add members "buf_size", "buf", and "buf_end".
(maps_init): Try to mmap() a one-page buffer and, if successful,
	initialize the new map_iterator members based on it.
(maps_next): If the one-page buffer is available, use it to read
	/proc/PID/maps.  This avoids expensive lseek() calls which,
	in the case of /proc lead to T(n) = O(n^2) behavior.

(Logical change 1.208)
2004-04-21 03:56:06 +00:00
mostang.com!davidm
6840f3c057 Allow libunwind to be built without any optimization.
This means that it will no longer be possible to validate at
link-time certain assertions.  Instead, there will be assertion
failures at library initialization-time when debugging is enabled
(--enable-debug).

BKrev: 4085b66419Dvy85nlRH9SBgwMxz62g
2004-04-20 23:46:44 +00:00
mostang.com!davidm
c1f430663c (tdep_init): Use an assertion instead of relying on compile-time
optimization to verify that unw_hash_index_t is wide
	enough.

(Logical change 1.207)
2004-04-20 23:46:44 +00:00
mostang.com!davidm
db24e76397 (mi_init): Use assertion instead of relying on compiler-optimization
to verify that unw_cursor_t is big enough to contain a
	cursor.

(Logical change 1.207)
2004-04-20 23:46:44 +00:00
hp.com!davidm
2212940f59 Regenerate.
(Logical change 1.206)
2004-04-20 23:13:49 +00:00
hp.com!davidm
01d61e66af Make sure libunwind-ptrace.h gets installed. Noticed by Stephane
Eranian.

BKrev: 4085aeads95DstN8oo3DPIA9_FNG5g
2004-04-20 23:13:49 +00:00
hp.com!davidm
e5863bcee7 (include_HEADERS_common): Mention libunwind-ptrace.h.
(Logical change 1.206)
2004-04-20 23:13:49 +00:00
hp.com!davidm
758078fb00 Update in preparation for 0.97 release.
(Logical change 1.205)
2004-04-20 16:53:44 +00:00
hp.com!davidm
2de1768e52 Regenerate.
(Logical change 1.205)
2004-04-20 16:53:44 +00:00
hp.com!davidm
a25f2e098c Merge bk://unwind@bkbits.net/libunwind
into wailua.hpl.hp.com:/home/davidm/src/unwind/libunwind

2004/04/20 09:53:04-07:00 hp.com!davidm
Improve compatibility with Intel v8.x compiler and the libunwind is
comes with.

BKrev: 408555980lwJMVxSNtaDV9gAnwbnRA
2004-04-20 16:53:44 +00:00
hp.com!davidm
36c7442db3 (Logical change 1.205) 2004-04-20 16:53:44 +00:00
hp.com!davidm
662957d585 Initial revision 2004-04-20 16:53:44 +00:00
hp.com!davidm
aa29b98f1d Check for dl_phdr_removals_counter.
Check whether compiler supports -static-libcxa option (needed when
building the shared objects with the Intel 8.x compiler).
(LDFLAGS_STATIC_LIBCXA): Substitute its value.

(Logical change 1.205)
2004-04-20 16:53:44 +00:00
hp.com!davidm
a9217ee2df Auto merged
2004/04/20 09:53:04-07:00 hp.com!davidm
Regenerate.

(Logical change 1.205)
2004-04-20 16:53:44 +00:00
hp.com!davidm
d512dc0daa Auto merged
2004/04/20 09:53:04-07:00 hp.com!davidm
(validate_cache): If HAVE_DL_PHDR_REMOVALS_COUNTER is defined, use
	dl_phdr_removals_counter() to validate the cache.  This is
	much more efficient than using dl_iterate_phdr(), since it
	avoids locking.

(Logical change 1.205)
2004-04-20 16:53:44 +00:00
hp.com!davidm
deb3c645a4 Auto merged
2004/04/20 09:53:04-07:00 hp.com!davidm
(forker_LDFLAGS): Mention -all-static.

(Logical change 1.205)
2004-04-20 16:53:44 +00:00
hp.com!davidm
36e094230c (intern_string): Cast buf-pointer to int8_t* to shut up Intel
compiler warning.

(Logical change 1.205)
2004-04-20 16:53:44 +00:00
hp.com!davidm
ed32b99716 (SOVERSION): Change from 2:0:1 to 3:0:2.
(COMMON_SO_LDFLAGS): New macro.
(libunwind_setjmp_la_LDFLAGS): Mention $(Common_SO_LDFLAGS).
(libunwind_ia64_la_LDFLAGS): Likewise.
(libunwind_hppa_la_LDFLAGS): Likewise.
(libunwind_x86_la_LDFLAGS): Likewise.
(libunwind_la_LDFLAGS): Likewise.
(libunwind_setjmp_la_LIBADD): Mention -lc.
(libunwind_ia64_la_LIBADD): Likewise.
(libunwind_hppa_la_LIBADD): Likewise.
(libunwind_x86_la_LIBADD): Likewise.
(libunwind_la_LIBADD): Likewise.
(libunwind_la_SOURCES_ia64): Mention mi/_ReadULEB.c and mi/_ReadSLEB.c.
	They are needed for Intel 8.0 libunwind.so compatibility. ;-(

(Logical change 1.205)
2004-04-20 16:53:44 +00:00
mostang.com!davidm
12191a02ac tests: Add test-async-sig.c to check for async-signal safety.
BKrev: 406bcea9dU2-V-_86YWfP_uDklkSxw
2004-04-01 08:11:21 +00:00
mostang.com!davidm
b9c2ed48de Regenerate.
(Logical change 1.204)
2004-04-01 08:11:21 +00:00
mostang.com!davidm
4471c1e8c3 (Logical change 1.204) 2004-04-01 08:11:21 +00:00
mostang.com!davidm
4cda328838 Initial revision 2004-04-01 08:11:21 +00:00
mostang.com!davidm
5de8024488 (check_PROGRAMS_cdep): Mention test-async-sig.
(test_async_sig_LDADD): New macro.

(Logical change 1.204)
2004-04-01 08:11:21 +00:00
mostang.com!davidm
24981bc5f9 Important bug-fix: dl_iterate_phdr() doesn't appear to be signal-safe.
To compensate, mask signal-delivery while it's running.

BKrev: 406bce38mhnWOUIL9WtYkHurmM2ajg
2004-04-01 08:09:28 +00:00
mostang.com!davidm
b8eefeac32 (validate_cache): Mask signal-delivery during dl_iterate_phdr().
(tdep_find_proc_info): Likewise.

(Logical change 1.203)
2004-04-01 08:09:28 +00:00
mostang.com!davidm
d3fad3af12 (dwarf_find_proc_info): Mask signal-delivery during dl_iterate_phdr().
(Logical change 1.203)
2004-04-01 08:09:28 +00:00
mostang.com!davidm
6d44be2c47 tests: Minor whitespace fixes for Gtest-concurrent.c.
BKrev: 406bb63aQDsDc6-AODSWlWin7fTdnw
2004-04-01 06:27:06 +00:00
mostang.com!davidm
471e4e5fa6 Minor whitespace fixes.
(Logical change 1.202)
2004-04-01 06:27:06 +00:00
mostang.com!davidm
b15a2bd5ef ia64: Based on patch by Todd L. Miller: extend semantics of
UNW_DYN_ALIAS to alias a sub-region of the aliased
	region.  The degenerate case of an empty subregion can
	then be used to alias with a particular IP.

BKrev: 406bb051XeM3TsszAsT3HGWlN0bBIA
2004-04-01 06:01:53 +00:00
mostang.com!davidm
93d627ef87 (desc_alias): New function.
(parse_dynamic): Handle UNW_DYN_ALIAS via desc_dynamic().

(Logical change 1.201)
2004-04-01 06:01:53 +00:00
mostang.com!davidm
835bb9110b Regenerate.
(Logical change 1.200)
2004-03-31 07:42:38 +00:00
mostang.com!davidm
38fe40cb1a Clarify that this routine is signal-safe only for the local
address-space.

(Logical change 1.200)
2004-03-31 07:42:38 +00:00
mostang.com!davidm
7e8488d45d Allow unw_get_proc_name() to be called from signal-handler (for
cursors in the local address-space).
Clarify that unw_get_proc_info(), unw_get_proc_info_by_ip(),
unw_init_remote(), unw_resume(), and unw_step() are async-signal
safe only from the local address-space (we can't make any guarantees
beyond that because of the dependency of the per-address-space
callback routines, which may have all kinds of restrictions).

BKrev: 406a766eg-xRWnoMgbI9aFyk1xBWXA
2004-03-31 07:42:38 +00:00
mostang.com!davidm
b511e18f63 Allow this routine to be called from a signal handler when unwinding
in the local address-space.

(Logical change 1.200)
2004-03-31 07:42:38 +00:00
mostang.com!davidm
77f159fe41 linux: Reimplement maps_init()/maps_next()/maps_close() such that
they are async-signal safe.  This in turn also makes
	unw_get_proc_name() async-signal safe (for the local address
	space).


BKrev: 406a755eLMN8_C9GHATuTYsY-pi8Lw
2004-03-31 07:38:06 +00:00
mostang.com!davidm
df77cf1ad7 (tdep_get_elf_image): Pass sizeof buffer to maps_next().
(Logical change 1.199)
2004-03-31 07:38:06 +00:00
mostang.com!davidm
64c702cea7 (ltoa): New inline function.
(skip_whitespace): Likewise.
(scan_hex): Likewise.
(scan_dec): Likewise.
(scan_char): Likewise.
(scan_string): Likewise.
(maps_init): Avoid stdio operations since they're not async-signal
	safe.
(maps_next): Likewise.
(maps_close): Likewise.

(Logical change 1.199)
2004-03-31 07:38:06 +00:00
mostang.com!davidm
fe9d715071 (get_proc_name): Minor whitespace fixes.
(Logical change 1.199)
2004-03-31 07:38:06 +00:00
mostang.com!davidm
18222990f2 (_UPT_get_dyn_info_list_addr): Pass size of path to maps_next().
(Logical change 1.199)
2004-03-31 07:38:06 +00:00
mostang.com!davidm
50c2be0ca3 Undo some temporary testing hacks.
(Logical change 1.198)
2004-03-31 07:29:27 +00:00
mostang.com!davidm
616931e74d Clean up some testing-hacks in Gperf-simple.c.
BKrev: 406a7357_ZoTjTPbK5Gk2mGDVsnNig
2004-03-31 07:29:27 +00:00
mostang.com!davidm
201f7d6671 Regenerate.
(Logical change 1.197)
2004-03-31 01:53:04 +00:00
mostang.com!davidm
e3eae74698 (gettime): Go back to gettimeofday(). clock_gettime() requires
librt which requires libpthread, which slows everything
	down.

(Logical change 1.197)
2004-03-31 01:53:04 +00:00
mostang.com!davidm
69052ef3ea (Lperf_simple_LDADD): Delete.
(Gperf_simple_LDADD): Likewise.

(Logical change 1.197)
2004-03-31 01:53:04 +00:00
mostang.com!davidm
59a11c9525 (Gperf-simple): Switch back from clock_gettime() to gettimeofday()
so we can avoid the (indirect) dependency on -lpthread,
	which slows everything down.

BKrev: 406a2480bpWS4g2Xic3BTD__9OLnTQ
2004-03-31 01:53:04 +00:00
mostang.com!davidm
3c4791af3d ia64: Document the asymmetry in compatibility between getcontext()
and unw_getcontext().

BKrev: 406a1641Npn2_hSJ6xj_0c5kK62x4Q
2004-03-31 00:52:17 +00:00
mostang.com!davidm
031c8bbae8 Regenerate.
(Logical change 1.196)
2004-03-31 00:52:17 +00:00
mostang.com!davidm
37e20822f4 Add new Platform-specific Notes section and document that getcontext()
can be used in lieu of unw_getcontext() but not vice versa.

(Logical change 1.196)
2004-03-31 00:52:17 +00:00
mostang.com!davidm
e0f02d4775 ia64: Remove perf-tuning code from unw_getcontext().
BKrev: 406a13d73SqBfhtdUcBHvwiaTNe7hg
2004-03-31 00:41:59 +00:00