;;
ia64*-*-linux*)
tm_file="${tm_file} elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
- tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
+ tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux"
+ if test x$with_system_libunwind = xyes ; then
+ tmake_file="${tmake_file} t-libunwind"
+ fi
target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
;;
ia64*-*-hpux*)
ia64*-*-linux*)
# Don't use crtbeginT.o from *-*-linux* default.
extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o"
- tmake_file="$tmake_file ia64/t-ia64 ia64/t-ia64-elf t-crtfm t-softfp-tf ia64/t-softfp t-softfp ia64/t-softfp-compat ia64/t-eh-ia64 t-libunwind ia64/t-linux"
+ tmake_file="${tmake_file} ia64/t-ia64 ia64/t-ia64-elf t-crtfm t-softfp-tf ia64/t-softfp t-softfp ia64/t-softfp-compat ia64/t-eh-ia64"
if test x$with_system_libunwind != xyes ; then
tmake_file="${tmake_file} t-libunwind-elf ia64/t-linux-libunwind"
+ else
+ tmake_file="${tmake_file} ia64/t-linux t-libunwind"
fi
md_unwind_header=ia64/linux-unwind.h
;;
# Build libunwind for IA-64 GLIBC based system.
LIBUNWIND = $(srcdir)/config/ia64/fde-glibc.c \
$(srcdir)/config/ia64/unwind-ia64.c
+
+LIB2ADDEH += $(srcdir)/config/ia64/fde-glibc.c
+
+SHLIB_MAPFILES += $(srcdir)/config/ia64/libgcc-glibc.ver
void *
_Unwind_FindEnclosingFunction (void *pc)
{
+#ifndef inhibit_libc
struct unw_table_entry *entp, ent;
unw_word segment_base, gp;
return NULL;
else
return (void *)(segment_base + entp->start_offset);
+#else
+ return NULL;
+#endif
}
/* Get the value of the CFA as saved in CONTEXT. In GCC/Dwarf2 parlance,
for (r = fs->curr.reg; r < fs->curr.reg + UNW_NUM_REGS; ++r)
r->when = UNW_WHEN_NEVER;
context->lsda = 0;
-
+#ifndef inhibit_libc
entp = _Unwind_FindTableEntry ((void *) context->rp,
&segment_base, &context->gp, &ent);
+#else
+ entp = NULL;
+#endif
if (entp == NULL)
{
/* Couldn't find unwind info for this function. Try an