link unwind into mzscheme, though it's not used, yet (another step toward x86_64 backtraces)
svn: r12620
This commit is contained in:
parent
961d459a7d
commit
84f52ab704
|
@ -1348,7 +1348,7 @@ FOREIGN_USED_OBJSLIB = $(FOREIGN_OBJSLIB)
|
|||
FOREIGN_NOT_USED_LIB =
|
||||
FOREIGN_NOT_USED_OBJSLIB =
|
||||
|
||||
EXTRA_MZ_OBJS = ../../mzscheme/src/gmp.@LTO@ $(@FOREIGN_IF_USED@_OBJSLIB)
|
||||
EXTRA_MZ_OBJS = ../../mzscheme/src/gmp.@LTO@ ../../mzscheme/src/unwind.@LTO@ $(@FOREIGN_IF_USED@_OBJSLIB)
|
||||
|
||||
LIBMREDLIBS_a =
|
||||
LIBMREDLIBS_la = $(LDFLAGS) $(LDLIBS) $(@WXVARIANT@_LIBS)
|
||||
|
|
|
@ -351,8 +351,8 @@ FOREIGN_USED_OBJSLIB = $(FOREIGN_OBJSLIB)
|
|||
FOREIGN_NOT_USED_LIB =
|
||||
FOREIGN_NOT_USED_OBJSLIB =
|
||||
|
||||
EXTRA_OBJS_T = ../src/gmp.@LTO@ $(@FOREIGN_IF_USED@_LIB)
|
||||
EXTRA_OBJS_L = ../src/gmp.@LTO@ $(@FOREIGN_IF_USED@_OBJSLIB)
|
||||
EXTRA_OBJS_T = ../src/gmp.@LTO@ ../src/unwind.@LTO@ $(@FOREIGN_IF_USED@_LIB)
|
||||
EXTRA_OBJS_L = ../src/gmp.@LTO@ ../src/unwind.@LTO@ $(@FOREIGN_IF_USED@_OBJSLIB)
|
||||
|
||||
../libmzscheme3m.@LIBSFX@: $(OBJS) $(EXTRA_OBJS_T) jit.@LTO@ gc2.@LTO@
|
||||
$(AR) $(ARFLAGS) ../libmzscheme3m.@LIBSFX@ $(OBJS) $(EXTRA_OBJS_L) jit.@LTO@ gc2.@LTO@
|
||||
|
|
|
@ -51,6 +51,7 @@ OBJS = salloc.@LTO@ \
|
|||
syntax.@LTO@ \
|
||||
thread.@LTO@ \
|
||||
type.@LTO@ \
|
||||
unwind.@LTO@ \
|
||||
vector.@LTO@ @EXTRA_GMP_OBJ@
|
||||
|
||||
SRCS = $(srcdir)/salloc.c \
|
||||
|
@ -92,6 +93,7 @@ SRCS = $(srcdir)/salloc.c \
|
|||
$(srcdir)/syntax.c \
|
||||
$(srcdir)/thread.c \
|
||||
$(srcdir)/type.c \
|
||||
$(srcdir)/unwind/libunwind.c \
|
||||
$(srcdir)/vector.c
|
||||
|
||||
wrong:
|
||||
|
@ -222,6 +224,8 @@ thread.@LTO@: $(srcdir)/thread.c
|
|||
$(CC) $(CFLAGS) -c $(srcdir)/thread.c -o thread.@LTO@
|
||||
type.@LTO@: $(srcdir)/type.c
|
||||
$(CC) $(CFLAGS) -c $(srcdir)/type.c -o type.@LTO@
|
||||
unwind.@LTO@: $(srcdir)/unwind/libunwind.c $(srcdir)/unwind/libunwind.h $(srcdir)/unwind/libunwind_i.h
|
||||
$(CC) $(CFLAGS) -c $(srcdir)/unwind/libunwind.c -o unwind.@LTO@
|
||||
vector.@LTO@: $(srcdir)/vector.c
|
||||
$(CC) $(CFLAGS) -c $(srcdir)/vector.c -o vector.@LTO@
|
||||
|
||||
|
|
|
@ -23,6 +23,10 @@ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||
|
||||
#include "../../sconfig.h"
|
||||
|
||||
#ifdef USE_DWARF_LIBUNWIND
|
||||
|
||||
#include <stddef.h>
|
||||
#include "libunwind_i.h"
|
||||
|
||||
|
@ -2467,3 +2471,5 @@ unw_word_t unw_get_ip(unw_cursor_t *c)
|
|||
{
|
||||
return tdep_get_ip(((struct cursor *)c));
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
@ -87,6 +87,9 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
|||
# define unlikely(x) (x)
|
||||
#endif
|
||||
|
||||
#undef HIDDEN
|
||||
#define HIDDEN static
|
||||
|
||||
#define ARRAY_SIZE(a) (sizeof (a) / sizeof ((a)[0]))
|
||||
|
||||
/* Make it easy to write thread-safe code which may or may not be
|
||||
|
@ -618,37 +621,37 @@ struct dwarf_rs_cache
|
|||
#define dwarf_read_encoded_pointer UNW_OBJ (dwarf_read_encoded_pointer)
|
||||
#define dwarf_step UNW_OBJ (dwarf_step)
|
||||
|
||||
extern int dwarf_init (void);
|
||||
extern int dwarf_find_proc_info (unw_addr_space_t as, unw_word_t ip,
|
||||
HIDDEN int dwarf_init (void);
|
||||
HIDDEN int dwarf_find_proc_info (unw_addr_space_t as, unw_word_t ip,
|
||||
unw_proc_info_t *pi,
|
||||
int need_unwind_info, void *arg);
|
||||
extern int dwarf_search_unwind_table (unw_addr_space_t as,
|
||||
HIDDEN int dwarf_search_unwind_table (unw_addr_space_t as,
|
||||
unw_word_t ip,
|
||||
unw_dyn_info_t *di,
|
||||
unw_proc_info_t *pi,
|
||||
int need_unwind_info, void *arg);
|
||||
extern void dwarf_put_unwind_info (unw_addr_space_t as,
|
||||
HIDDEN void dwarf_put_unwind_info (unw_addr_space_t as,
|
||||
unw_proc_info_t *pi, void *arg);
|
||||
extern int dwarf_eval_expr (struct dwarf_cursor *c, unw_word_t *addr,
|
||||
HIDDEN int dwarf_eval_expr (struct dwarf_cursor *c, unw_word_t *addr,
|
||||
unw_word_t len, unw_word_t *valp,
|
||||
int *is_register);
|
||||
extern int dwarf_extract_proc_info_from_fde (unw_addr_space_t as,
|
||||
HIDDEN int dwarf_extract_proc_info_from_fde (unw_addr_space_t as,
|
||||
unw_accessors_t *a,
|
||||
unw_word_t *fde_addr,
|
||||
unw_proc_info_t *pi,
|
||||
int need_unwind_info,
|
||||
void *arg);
|
||||
extern int dwarf_find_save_locs (struct dwarf_cursor *c);
|
||||
extern int dwarf_create_state_record (struct dwarf_cursor *c,
|
||||
HIDDEN int dwarf_find_save_locs (struct dwarf_cursor *c);
|
||||
HIDDEN int dwarf_create_state_record (struct dwarf_cursor *c,
|
||||
dwarf_state_record_t *sr);
|
||||
extern int dwarf_make_proc_info (struct dwarf_cursor *c);
|
||||
extern int dwarf_read_encoded_pointer (unw_addr_space_t as,
|
||||
HIDDEN int dwarf_make_proc_info (struct dwarf_cursor *c);
|
||||
HIDDEN int dwarf_read_encoded_pointer (unw_addr_space_t as,
|
||||
unw_accessors_t *a,
|
||||
unw_word_t *addr,
|
||||
unsigned char encoding,
|
||||
const unw_proc_info_t *pi,
|
||||
unw_word_t *valp, void *arg);
|
||||
extern int dwarf_step (struct dwarf_cursor *c);
|
||||
HIDDEN int dwarf_step (struct dwarf_cursor *c);
|
||||
|
||||
/*XXXXXXXXXXXXXXXXXXXXXXXXX End dwarf.h XXXXXXXXXXXXXXXXXXXXXXXXXX*/
|
||||
|
||||
|
@ -768,7 +771,7 @@ extern int tdep_access_fpreg (struct cursor *c, unw_regnum_t reg,
|
|||
|
||||
#define dwarf_to_unw_regnum_map UNW_OBJ (dwarf_to_unw_regnum_map)
|
||||
|
||||
int dwarf_to_unw_regnum(int reg);
|
||||
HIDDEN int dwarf_to_unw_regnum(int reg);
|
||||
|
||||
/* In the local-only case, we can let the compiler directly access
|
||||
memory and don't need to worry about differing byte-order. */
|
||||
|
|
Loading…
Reference in New Issue
Block a user