2012-10-06 06:27:59 +02:00
|
|
|
SOVERSION=8:1:0 # See comments at end of file.
|
2003-02-08 11:10:59 +01:00
|
|
|
SETJMP_SO_VERSION=0:0:0
|
2012-06-29 11:28:29 +02:00
|
|
|
COREDUMP_SO_VERSION=0:0:0
|
2004-04-20 18:53:44 +02:00
|
|
|
#
|
2005-05-03 11:13:17 +02:00
|
|
|
# Don't link with start-files since we don't use any constructors/destructors:
|
2004-04-20 18:53:44 +02:00
|
|
|
#
|
Add basic support for the QNX operating system
This change adds some special cases to allow libunwind to compile
for QNX.
* QNX's copy of <elf.h> and <link.h> reside in sys/ instead. To deal
with this, an AC_CHECK_HEADERS() was added to check for the files
in both locations.
* Similarly, QNX does not have <endian.h>. In cases where the file is
not found, logic was added to refer to QNX-specific macros to determine
endianness.
* The QCC compiler, which is a wrapper around GCC, cannot handle some
standard GCC options. Therefore, logic was added to check for QCC,
and when it is found, to suppress the use of -lgcc, and to express the
option -nostartfiles as -Wc,-nostartfiles instead, which is correctly
passed on to the underlying GCC.
* Finally, the support file os-qnx.c was added, patterned after the existing
os-*.c files. Only local image lookup is currently supported (see the
comments for more information), but this is sufficient for QNX, since
ptrace is not supported there anyway, and that is the only case where the
function is required to do remote image lookup.
Change-Id: Ie7934f94a7317bdde59335f2acd4c3a97c0384c1
2013-04-15 16:53:29 +02:00
|
|
|
COMMON_SO_LDFLAGS = $(LDFLAGS_NOSTARTFILES)
|
2002-04-25 08:47:29 +02:00
|
|
|
|
2010-11-09 02:16:37 +01:00
|
|
|
lib_LIBRARIES =
|
|
|
|
lib_LTLIBRARIES =
|
|
|
|
if !REMOTE_ONLY
|
2013-04-15 16:44:48 +02:00
|
|
|
lib_LTLIBRARIES += libunwind.la
|
|
|
|
if BUILD_PTRACE
|
|
|
|
lib_LTLIBRARIES += libunwind-ptrace.la
|
|
|
|
endif
|
2012-09-15 02:11:50 +02:00
|
|
|
if BUILD_COREDUMP
|
|
|
|
lib_LTLIBRARIES += libunwind-coredump.la
|
|
|
|
endif
|
2004-01-03 11:50:24 +01:00
|
|
|
endif
|
|
|
|
|
2010-11-09 02:16:39 +01:00
|
|
|
noinst_HEADERS =
|
2010-11-09 02:16:38 +01:00
|
|
|
noinst_LTLIBRARIES =
|
|
|
|
|
2012-09-15 20:09:32 +02:00
|
|
|
pkgconfigdir = $(libdir)/pkgconfig
|
|
|
|
pkgconfig_DATA = libunwind-generic.pc
|
|
|
|
|
|
|
|
if !REMOTE_ONLY
|
2013-04-19 01:32:53 +02:00
|
|
|
pkgconfig_DATA += unwind/libunwind.pc
|
2013-04-15 16:44:48 +02:00
|
|
|
endif
|
|
|
|
|
|
|
|
if BUILD_PTRACE
|
|
|
|
pkgconfig_DATA += ptrace/libunwind-ptrace.pc
|
2012-09-15 20:09:32 +02:00
|
|
|
endif
|
|
|
|
|
2013-04-19 01:32:53 +02:00
|
|
|
if BUILD_SETJMP
|
|
|
|
pkgconfig_DATA += setjmp/libunwind-setjmp.pc
|
|
|
|
endif
|
|
|
|
|
2012-09-15 20:09:32 +02:00
|
|
|
if BUILD_COREDUMP
|
|
|
|
pkgconfig_DATA += coredump/libunwind-coredump.pc
|
|
|
|
endif
|
|
|
|
|
2004-01-03 11:50:24 +01:00
|
|
|
### libunwind-ptrace:
|
2012-08-18 21:37:00 +02:00
|
|
|
libunwind_ptrace_la_SOURCES = \
|
2005-05-03 11:13:17 +02:00
|
|
|
ptrace/_UPT_elf.c \
|
2004-01-30 01:01:24 +01:00
|
|
|
ptrace/_UPT_accessors.c ptrace/_UPT_access_fpreg.c \
|
|
|
|
ptrace/_UPT_access_mem.c ptrace/_UPT_access_reg.c \
|
|
|
|
ptrace/_UPT_create.c ptrace/_UPT_destroy.c \
|
|
|
|
ptrace/_UPT_find_proc_info.c ptrace/_UPT_get_dyn_info_list_addr.c \
|
|
|
|
ptrace/_UPT_put_unwind_info.c ptrace/_UPT_get_proc_name.c \
|
|
|
|
ptrace/_UPT_reg_offset.c ptrace/_UPT_resume.c
|
2010-11-09 02:16:39 +01:00
|
|
|
noinst_HEADERS += ptrace/_UPT_internal.h
|
2004-01-03 11:50:24 +01:00
|
|
|
|
2012-03-13 02:46:57 +01:00
|
|
|
### libunwind-coredump:
|
2012-06-29 11:28:29 +02:00
|
|
|
libunwind_coredump_la_SOURCES = \
|
2012-03-13 02:46:57 +01:00
|
|
|
coredump/_UCD_accessors.c \
|
|
|
|
coredump/_UCD_create.c \
|
|
|
|
coredump/_UCD_destroy.c \
|
|
|
|
coredump/_UCD_access_mem.c \
|
|
|
|
coredump/_UCD_elf_map_image.c \
|
|
|
|
coredump/_UCD_find_proc_info.c \
|
|
|
|
coredump/_UCD_get_proc_name.c \
|
|
|
|
\
|
|
|
|
coredump/_UPT_elf.c \
|
|
|
|
coredump/_UPT_access_fpreg.c \
|
|
|
|
coredump/_UPT_get_dyn_info_list_addr.c \
|
|
|
|
coredump/_UPT_put_unwind_info.c \
|
|
|
|
coredump/_UPT_resume.c
|
2012-06-29 11:28:29 +02:00
|
|
|
libunwind_coredump_la_LDFLAGS = $(COMMON_SO_LDFLAGS) \
|
|
|
|
-version-info $(COREDUMP_SO_VERSION)
|
2014-02-16 03:09:42 +01:00
|
|
|
libunwind_coredump_la_LIBADD = $(LIBLZMA)
|
2014-01-20 12:42:23 +01:00
|
|
|
noinst_HEADERS += coredump/_UCD_internal.h coredump/_UCD_lib.h
|
2012-03-13 02:46:57 +01:00
|
|
|
|
2004-01-03 11:50:24 +01:00
|
|
|
### libunwind-setjmp:
|
2004-04-20 18:53:44 +02:00
|
|
|
libunwind_setjmp_la_LDFLAGS = $(COMMON_SO_LDFLAGS) \
|
|
|
|
-version-info $(SETJMP_SO_VERSION)
|
2011-03-02 17:40:08 +01:00
|
|
|
|
|
|
|
if USE_ELF32
|
|
|
|
LIBUNWIND_ELF = libunwind-elf32.la
|
|
|
|
endif
|
|
|
|
if USE_ELF64
|
|
|
|
LIBUNWIND_ELF = libunwind-elf64.la
|
|
|
|
endif
|
|
|
|
if USE_ELFXX
|
|
|
|
LIBUNWIND_ELF = libunwind-elfxx.la
|
|
|
|
endif
|
|
|
|
|
|
|
|
libunwind_setjmp_la_LIBADD = $(LIBUNWIND_ELF) \
|
|
|
|
libunwind-$(arch).la \
|
|
|
|
libunwind.la -lc
|
2010-11-09 02:16:39 +01:00
|
|
|
libunwind_setjmp_la_SOURCES = setjmp/longjmp.c \
|
2005-05-03 11:13:17 +02:00
|
|
|
setjmp/siglongjmp.c
|
2010-11-09 02:16:39 +01:00
|
|
|
noinst_HEADERS += setjmp/setjmp_i.h
|
2004-01-03 11:50:24 +01:00
|
|
|
|
|
|
|
### libunwind:
|
2010-11-09 02:16:38 +01:00
|
|
|
libunwind_la_LIBADD =
|
2004-01-03 11:50:24 +01:00
|
|
|
|
2004-01-14 07:21:52 +01:00
|
|
|
# List of arch-independent files needed by both local-only and generic
|
|
|
|
# libraries:
|
2011-02-02 05:35:59 +01:00
|
|
|
libunwind_la_SOURCES_common = \
|
|
|
|
$(libunwind_la_SOURCES_os) \
|
2004-08-18 17:16:46 +02:00
|
|
|
mi/init.c mi/flush_cache.c mi/mempool.c mi/strerror.c
|
2004-01-03 11:50:24 +01:00
|
|
|
|
|
|
|
# List of arch-independent files needed by generic library (libunwind-$ARCH):
|
2011-02-02 05:35:59 +01:00
|
|
|
libunwind_la_SOURCES_generic = \
|
2004-01-30 01:01:24 +01:00
|
|
|
mi/Gdyn-extract.c mi/Gdyn-remote.c mi/Gfind_dynamic_proc_info.c \
|
|
|
|
mi/Gget_accessors.c \
|
|
|
|
mi/Gget_proc_info_by_ip.c mi/Gget_proc_name.c \
|
|
|
|
mi/Gput_dynamic_unwind_info.c mi/Gdestroy_addr_space.c \
|
|
|
|
mi/Gget_reg.c mi/Gset_reg.c \
|
|
|
|
mi/Gget_fpreg.c mi/Gset_fpreg.c \
|
|
|
|
mi/Gset_caching_policy.c
|
2004-01-03 11:50:24 +01:00
|
|
|
|
2008-06-16 22:28:36 +02:00
|
|
|
if SUPPORT_CXX_EXCEPTIONS
|
2011-02-02 05:35:59 +01:00
|
|
|
libunwind_la_SOURCES_local_unwind = \
|
2008-02-05 01:16:37 +01:00
|
|
|
unwind/Backtrace.c unwind/DeleteException.c \
|
|
|
|
unwind/FindEnclosingFunction.c unwind/ForcedUnwind.c \
|
|
|
|
unwind/GetBSP.c unwind/GetCFA.c unwind/GetDataRelBase.c \
|
|
|
|
unwind/GetGR.c unwind/GetIP.c unwind/GetLanguageSpecificData.c \
|
|
|
|
unwind/GetRegionStart.c unwind/GetTextRelBase.c \
|
|
|
|
unwind/RaiseException.c unwind/Resume.c \
|
2009-04-24 20:10:08 +02:00
|
|
|
unwind/Resume_or_Rethrow.c unwind/SetGR.c unwind/SetIP.c \
|
|
|
|
unwind/GetIPInfo.c
|
2009-04-03 00:49:37 +02:00
|
|
|
|
2009-03-16 05:14:27 +01:00
|
|
|
# _ReadULEB()/_ReadSLEB() are needed for Intel C++ 8.0 compatibility
|
2011-02-02 05:35:59 +01:00
|
|
|
libunwind_la_SOURCES_os_linux_local = mi/_ReadULEB.c mi/_ReadSLEB.c
|
2008-06-16 22:28:36 +02:00
|
|
|
endif
|
2008-02-05 01:16:37 +01:00
|
|
|
|
2004-01-03 11:50:24 +01:00
|
|
|
# List of arch-independent files needed by local-only library (libunwind):
|
2011-02-02 05:35:59 +01:00
|
|
|
libunwind_la_SOURCES_local_nounwind = \
|
|
|
|
$(libunwind_la_SOURCES_os_local) \
|
2004-03-30 03:56:19 +02:00
|
|
|
mi/backtrace.c \
|
2004-01-30 01:01:24 +01:00
|
|
|
mi/dyn-cancel.c mi/dyn-info-list.c mi/dyn-register.c \
|
|
|
|
mi/Ldyn-extract.c mi/Lfind_dynamic_proc_info.c \
|
|
|
|
mi/Lget_accessors.c \
|
|
|
|
mi/Lget_proc_info_by_ip.c mi/Lget_proc_name.c \
|
|
|
|
mi/Lput_dynamic_unwind_info.c mi/Ldestroy_addr_space.c \
|
|
|
|
mi/Lget_reg.c mi/Lset_reg.c \
|
|
|
|
mi/Lget_fpreg.c mi/Lset_fpreg.c \
|
2008-02-05 01:16:37 +01:00
|
|
|
mi/Lset_caching_policy.c
|
2011-02-02 05:35:59 +01:00
|
|
|
|
|
|
|
libunwind_la_SOURCES_local = \
|
|
|
|
$(libunwind_la_SOURCES_local_nounwind) \
|
|
|
|
$(libunwind_la_SOURCES_local_unwind)
|
2003-12-04 08:44:21 +01:00
|
|
|
|
2010-11-09 02:16:39 +01:00
|
|
|
noinst_HEADERS += os-linux.h
|
2011-02-02 05:35:59 +01:00
|
|
|
libunwind_la_SOURCES_os_linux = os-linux.c
|
|
|
|
|
|
|
|
libunwind_la_SOURCES_os_hpux = os-hpux.c
|
|
|
|
|
|
|
|
libunwind_la_SOURCES_os_freebsd = os-freebsd.c
|
2010-03-06 16:47:52 +01:00
|
|
|
|
Add basic support for the QNX operating system
This change adds some special cases to allow libunwind to compile
for QNX.
* QNX's copy of <elf.h> and <link.h> reside in sys/ instead. To deal
with this, an AC_CHECK_HEADERS() was added to check for the files
in both locations.
* Similarly, QNX does not have <endian.h>. In cases where the file is
not found, logic was added to refer to QNX-specific macros to determine
endianness.
* The QCC compiler, which is a wrapper around GCC, cannot handle some
standard GCC options. Therefore, logic was added to check for QCC,
and when it is found, to suppress the use of -lgcc, and to express the
option -nostartfiles as -Wc,-nostartfiles instead, which is correctly
passed on to the underlying GCC.
* Finally, the support file os-qnx.c was added, patterned after the existing
os-*.c files. Only local image lookup is currently supported (see the
comments for more information), but this is sufficient for QNX, since
ptrace is not supported there anyway, and that is the only case where the
function is required to do remote image lookup.
Change-Id: Ie7934f94a7317bdde59335f2acd4c3a97c0384c1
2013-04-15 16:53:29 +02:00
|
|
|
libunwind_la_SOURCES_os_qnx = os-qnx.c
|
|
|
|
|
2010-11-09 02:16:38 +01:00
|
|
|
libunwind_dwarf_common_la_SOURCES = dwarf/global.c
|
|
|
|
|
|
|
|
libunwind_dwarf_local_la_SOURCES = \
|
|
|
|
dwarf/Lexpr.c dwarf/Lfde.c dwarf/Lparser.c dwarf/Lpe.c dwarf/Lstep.c \
|
2012-03-13 02:45:40 +01:00
|
|
|
dwarf/Lfind_proc_info-lsb.c \
|
|
|
|
dwarf/Lfind_unwind_table.c
|
2010-11-09 02:16:38 +01:00
|
|
|
libunwind_dwarf_local_la_LIBADD = libunwind-dwarf-common.la
|
2004-01-22 09:36:15 +01:00
|
|
|
|
2010-11-09 02:16:38 +01:00
|
|
|
libunwind_dwarf_generic_la_SOURCES = \
|
|
|
|
dwarf/Gexpr.c dwarf/Gfde.c dwarf/Gparser.c dwarf/Gpe.c dwarf/Gstep.c \
|
2012-03-13 02:45:40 +01:00
|
|
|
dwarf/Gfind_proc_info-lsb.c \
|
|
|
|
dwarf/Gfind_unwind_table.c
|
2010-11-09 02:16:38 +01:00
|
|
|
libunwind_dwarf_generic_la_LIBADD = libunwind-dwarf-common.la
|
2003-12-20 12:50:00 +01:00
|
|
|
|
2010-11-09 02:16:38 +01:00
|
|
|
if USE_DWARF
|
|
|
|
noinst_LTLIBRARIES += libunwind-dwarf-common.la libunwind-dwarf-generic.la
|
|
|
|
if !REMOTE_ONLY
|
|
|
|
noinst_LTLIBRARIES += libunwind-dwarf-local.la
|
|
|
|
endif
|
|
|
|
libunwind_la_LIBADD += libunwind-dwarf-local.la
|
|
|
|
endif
|
2002-12-19 08:16:50 +01:00
|
|
|
|
2010-11-09 02:16:39 +01:00
|
|
|
noinst_HEADERS += elf32.h elf64.h elfxx.h
|
|
|
|
|
2010-11-09 02:16:40 +01:00
|
|
|
libunwind_elf32_la_SOURCES = elf32.c
|
|
|
|
libunwind_elf64_la_SOURCES = elf64.c
|
|
|
|
libunwind_elfxx_la_SOURCES = elfxx.c
|
2014-02-16 03:09:42 +01:00
|
|
|
libunwind_elf32_la_LIBADD = $(LIBLZMA)
|
|
|
|
libunwind_elf64_la_LIBADD = $(LIBLZMA)
|
|
|
|
libunwind_elfxx_la_LIBADD = $(LIBLZMA)
|
2010-11-09 02:16:40 +01:00
|
|
|
|
2011-03-02 17:40:08 +01:00
|
|
|
noinst_LTLIBRARIES += $(LIBUNWIND_ELF)
|
|
|
|
libunwind_la_LIBADD += $(LIBUNWIND_ELF)
|
2010-11-09 02:16:40 +01:00
|
|
|
|
2013-05-11 17:18:23 +02:00
|
|
|
# The list of files that go into libunwind and libunwind-aarch64:
|
|
|
|
noinst_HEADERS += aarch64/init.h aarch64/offsets.h aarch64/unwind_i.h
|
|
|
|
libunwind_la_SOURCES_aarch64_common = $(libunwind_la_SOURCES_common) \
|
|
|
|
aarch64/is_fpreg.c aarch64/regname.c
|
|
|
|
|
|
|
|
# The list of files that go into libunwind:
|
|
|
|
libunwind_la_SOURCES_aarch64 = $(libunwind_la_SOURCES_aarch64_common) \
|
|
|
|
$(libunwind_la_SOURCES_local) \
|
|
|
|
aarch64/Lcreate_addr_space.c aarch64/Lget_proc_info.c \
|
|
|
|
aarch64/Lget_save_loc.c aarch64/Lglobal.c aarch64/Linit.c \
|
|
|
|
aarch64/Linit_local.c aarch64/Linit_remote.c \
|
|
|
|
aarch64/Lis_signal_frame.c aarch64/Lregs.c aarch64/Lresume.c \
|
2014-07-30 13:34:31 +02:00
|
|
|
aarch64/Lstash_frame.c aarch64/Lstep.c aarch64/Ltrace.c \
|
|
|
|
aarch64/getcontext.S
|
2013-05-11 17:18:23 +02:00
|
|
|
|
|
|
|
libunwind_aarch64_la_SOURCES_aarch64 = $(libunwind_la_SOURCES_aarch64_common) \
|
|
|
|
$(libunwind_la_SOURCES_generic) \
|
|
|
|
aarch64/Gcreate_addr_space.c aarch64/Gget_proc_info.c \
|
|
|
|
aarch64/Gget_save_loc.c aarch64/Gglobal.c aarch64/Ginit.c \
|
|
|
|
aarch64/Ginit_local.c aarch64/Ginit_remote.c \
|
|
|
|
aarch64/Gis_signal_frame.c aarch64/Gregs.c aarch64/Gresume.c \
|
2014-07-30 13:34:31 +02:00
|
|
|
aarch64/Gstash_frame.c aarch64/Gstep.c aarch64/Gtrace.c
|
2013-05-11 17:18:23 +02:00
|
|
|
|
2011-02-02 05:35:59 +01:00
|
|
|
# The list of files that go into libunwind and libunwind-arm:
|
2010-11-09 02:16:39 +01:00
|
|
|
noinst_HEADERS += arm/init.h arm/offsets.h arm/unwind_i.h
|
2011-02-02 05:35:59 +01:00
|
|
|
libunwind_la_SOURCES_arm_common = $(libunwind_la_SOURCES_common) \
|
2012-09-19 14:53:29 +02:00
|
|
|
arm/is_fpreg.c arm/regname.c
|
2008-02-05 01:16:37 +01:00
|
|
|
|
2011-02-02 05:35:59 +01:00
|
|
|
# The list of files that go into libunwind:
|
|
|
|
libunwind_la_SOURCES_arm = $(libunwind_la_SOURCES_arm_common) \
|
|
|
|
$(libunwind_la_SOURCES_local) \
|
2008-02-05 01:16:37 +01:00
|
|
|
arm/getcontext.S \
|
|
|
|
arm/Lcreate_addr_space.c arm/Lget_proc_info.c arm/Lget_save_loc.c \
|
|
|
|
arm/Lglobal.c arm/Linit.c arm/Linit_local.c arm/Linit_remote.c \
|
2011-04-01 18:41:16 +02:00
|
|
|
arm/Lis_signal_frame.c arm/Lregs.c arm/Lresume.c arm/Lstep.c \
|
2014-06-27 14:11:41 +02:00
|
|
|
arm/Lex_tables.c arm/Lstash_frame.c arm/Ltrace.c
|
2008-02-05 01:16:37 +01:00
|
|
|
|
2011-02-02 05:35:59 +01:00
|
|
|
libunwind_arm_la_SOURCES_arm = $(libunwind_la_SOURCES_arm_common) \
|
|
|
|
$(libunwind_la_SOURCES_generic) \
|
2008-02-05 01:16:37 +01:00
|
|
|
arm/Gcreate_addr_space.c arm/Gget_proc_info.c arm/Gget_save_loc.c \
|
|
|
|
arm/Gglobal.c arm/Ginit.c arm/Ginit_local.c arm/Ginit_remote.c \
|
2011-04-01 18:41:16 +02:00
|
|
|
arm/Gis_signal_frame.c arm/Gregs.c arm/Gresume.c arm/Gstep.c \
|
2014-06-27 14:11:41 +02:00
|
|
|
arm/Gex_tables.c arm/Gstash_frame.c arm/Gtrace.c
|
2008-02-05 01:16:37 +01:00
|
|
|
|
2011-02-02 05:35:59 +01:00
|
|
|
# The list of files that go both into libunwind and libunwind-ia64:
|
2010-11-09 02:16:39 +01:00
|
|
|
noinst_HEADERS += ia64/init.h ia64/offsets.h ia64/regs.h \
|
|
|
|
ia64/ucontext_i.h ia64/unwind_decoder.h ia64/unwind_i.h
|
2011-02-02 05:35:59 +01:00
|
|
|
libunwind_la_SOURCES_ia64_common = $(libunwind_la_SOURCES_common) \
|
|
|
|
ia64/regname.c
|
2004-01-03 11:50:24 +01:00
|
|
|
|
2011-02-02 05:35:59 +01:00
|
|
|
# The list of files that go into libunwind:
|
|
|
|
libunwind_la_SOURCES_ia64 = $(libunwind_la_SOURCES_ia64_common) \
|
|
|
|
$(libunwind_la_SOURCES_local) \
|
|
|
|
\
|
2004-08-17 17:34:28 +02:00
|
|
|
ia64/dyn_info_list.S ia64/getcontext.S \
|
|
|
|
\
|
|
|
|
ia64/Lcreate_addr_space.c ia64/Lget_proc_info.c ia64/Lget_save_loc.c \
|
|
|
|
ia64/Lglobal.c ia64/Linit.c ia64/Linit_local.c ia64/Linit_remote.c \
|
|
|
|
ia64/Linstall_cursor.S ia64/Lis_signal_frame.c ia64/Lparser.c \
|
|
|
|
ia64/Lrbs.c ia64/Lregs.c ia64/Lresume.c ia64/Lscript.c ia64/Lstep.c \
|
2012-05-22 11:51:06 +02:00
|
|
|
ia64/Ltables.c ia64/Lfind_unwind_table.c
|
2004-01-03 11:50:24 +01:00
|
|
|
|
2011-02-02 05:35:59 +01:00
|
|
|
# The list of files that go into libunwind-ia64:
|
|
|
|
libunwind_ia64_la_SOURCES_ia64 = $(libunwind_la_SOURCES_ia64_common) \
|
|
|
|
$(libunwind_la_SOURCES_generic) \
|
2004-08-17 17:34:28 +02:00
|
|
|
ia64/Gcreate_addr_space.c ia64/Gget_proc_info.c ia64/Gget_save_loc.c \
|
|
|
|
ia64/Gglobal.c ia64/Ginit.c ia64/Ginit_local.c ia64/Ginit_remote.c \
|
|
|
|
ia64/Ginstall_cursor.S ia64/Gis_signal_frame.c ia64/Gparser.c \
|
|
|
|
ia64/Grbs.c ia64/Gregs.c ia64/Gresume.c ia64/Gscript.c ia64/Gstep.c \
|
2012-05-22 11:51:06 +02:00
|
|
|
ia64/Gtables.c ia64/Gfind_unwind_table.c
|
2004-08-17 17:34:28 +02:00
|
|
|
|
2011-02-02 05:35:59 +01:00
|
|
|
# The list of files that go both into libunwind and libunwind-hppa:
|
2010-11-09 02:16:39 +01:00
|
|
|
noinst_HEADERS += hppa/init.h hppa/offsets.h hppa/unwind_i.h
|
2011-02-02 05:35:59 +01:00
|
|
|
libunwind_la_SOURCES_hppa_common = $(libunwind_la_SOURCES_common) \
|
|
|
|
hppa/regname.c
|
2005-05-03 11:13:17 +02:00
|
|
|
|
2011-02-02 05:35:59 +01:00
|
|
|
# The list of files that go into libunwind:
|
|
|
|
libunwind_la_SOURCES_hppa = $(libunwind_la_SOURCES_hppa_common) \
|
|
|
|
$(libunwind_la_SOURCES_local) \
|
2005-05-03 11:13:17 +02:00
|
|
|
hppa/getcontext.S hppa/setcontext.S \
|
|
|
|
hppa/Lcreate_addr_space.c hppa/Lget_save_loc.c hppa/Lglobal.c \
|
|
|
|
hppa/Linit.c hppa/Linit_local.c hppa/Linit_remote.c \
|
|
|
|
hppa/Lis_signal_frame.c hppa/Lget_proc_info.c hppa/Lregs.c \
|
|
|
|
hppa/Lresume.c hppa/Lstep.c
|
|
|
|
|
2011-02-02 05:35:59 +01:00
|
|
|
# The list of files that go into libunwind-hppa:
|
|
|
|
libunwind_hppa_la_SOURCES_hppa = $(libunwind_la_SOURCES_hppa_common) \
|
|
|
|
$(libunwind_la_SOURCES_generic) \
|
2005-05-03 11:13:17 +02:00
|
|
|
hppa/Gcreate_addr_space.c hppa/Gget_save_loc.c hppa/Gglobal.c \
|
|
|
|
hppa/Ginit.c hppa/Ginit_local.c hppa/Ginit_remote.c \
|
|
|
|
hppa/Gis_signal_frame.c hppa/Gget_proc_info.c hppa/Gregs.c \
|
|
|
|
hppa/Gresume.c hppa/Gstep.c
|
2003-01-14 08:11:56 +01:00
|
|
|
|
2011-02-02 05:35:59 +01:00
|
|
|
# The list of files that go info libunwind and libunwind-mips:
|
2010-11-09 02:16:39 +01:00
|
|
|
noinst_HEADERS += mips/init.h mips/offsets.h
|
2011-02-02 05:35:59 +01:00
|
|
|
libunwind_la_SOURCES_mips_common = $(libunwind_la_SOURCES_common) \
|
|
|
|
mips/is_fpreg.c mips/regname.c
|
2008-02-05 01:16:37 +01:00
|
|
|
|
2011-02-02 05:35:59 +01:00
|
|
|
# The list of files that go into libunwind:
|
|
|
|
libunwind_la_SOURCES_mips = $(libunwind_la_SOURCES_mips_common) \
|
|
|
|
$(libunwind_la_SOURCES_local) \
|
|
|
|
mips/getcontext.S \
|
2008-02-05 01:16:37 +01:00
|
|
|
mips/Lcreate_addr_space.c mips/Lget_proc_info.c mips/Lget_save_loc.c \
|
|
|
|
mips/Lglobal.c mips/Linit.c mips/Linit_local.c mips/Linit_remote.c \
|
|
|
|
mips/Lis_signal_frame.c mips/Lregs.c mips/Lresume.c mips/Lstep.c
|
|
|
|
|
2011-02-02 05:35:59 +01:00
|
|
|
libunwind_mips_la_SOURCES_mips = $(libunwind_la_SOURCES_mips_common) \
|
|
|
|
$(libunwind_la_SOURCES_generic) \
|
2008-02-05 01:16:37 +01:00
|
|
|
mips/Gcreate_addr_space.c mips/Gget_proc_info.c mips/Gget_save_loc.c \
|
2011-02-02 05:35:59 +01:00
|
|
|
mips/Gglobal.c mips/Ginit.c mips/Ginit_local.c mips/Ginit_remote.c \
|
2008-02-05 01:16:37 +01:00
|
|
|
mips/Gis_signal_frame.c mips/Gregs.c mips/Gresume.c mips/Gstep.c
|
|
|
|
|
2014-09-02 23:35:41 +02:00
|
|
|
# The list of files that go info libunwind and libunwind-tilegx:
|
|
|
|
noinst_HEADERS += tilegx/init.h tilegx/offsets.h
|
|
|
|
libunwind_la_SOURCES_tilegx_common = $(libunwind_la_SOURCES_common) \
|
|
|
|
tilegx/is_fpreg.c tilegx/regname.c
|
|
|
|
|
|
|
|
# The list of files that go into libunwind:
|
|
|
|
libunwind_la_SOURCES_tilegx = $(libunwind_la_SOURCES_tilegx_common) \
|
|
|
|
$(libunwind_la_SOURCES_local) \
|
|
|
|
tilegx/getcontext.S \
|
|
|
|
tilegx/Lcreate_addr_space.c tilegx/Lget_proc_info.c tilegx/Lget_save_loc.c \
|
|
|
|
tilegx/Lglobal.c tilegx/Linit.c tilegx/Linit_local.c tilegx/Linit_remote.c \
|
|
|
|
tilegx/Lis_signal_frame.c tilegx/Lregs.c tilegx/Lresume.c tilegx/Lstep.c
|
|
|
|
|
|
|
|
libunwind_tilegx_la_SOURCES_tilegx = $(libunwind_la_SOURCES_tilegx_common) \
|
|
|
|
$(libunwind_la_SOURCES_generic) \
|
|
|
|
tilegx/Gcreate_addr_space.c tilegx/Gget_proc_info.c tilegx/Gget_save_loc.c \
|
|
|
|
tilegx/Gglobal.c tilegx/Ginit.c tilegx/Ginit_local.c tilegx/Ginit_remote.c \
|
|
|
|
tilegx/Gis_signal_frame.c tilegx/Gregs.c tilegx/Gresume.c tilegx/Gstep.c
|
|
|
|
|
|
|
|
|
2011-02-02 05:35:59 +01:00
|
|
|
# The list of files that go both into libunwind and libunwind-x86:
|
2010-11-09 02:16:39 +01:00
|
|
|
noinst_HEADERS += x86/init.h x86/offsets.h x86/unwind_i.h
|
2011-02-02 05:35:59 +01:00
|
|
|
libunwind_la_SOURCES_x86_common = $(libunwind_la_SOURCES_common) \
|
|
|
|
x86/is_fpreg.c x86/regname.c
|
2004-01-03 11:50:24 +01:00
|
|
|
|
2011-02-02 05:35:59 +01:00
|
|
|
# The list of files that go into libunwind:
|
|
|
|
libunwind_la_SOURCES_x86 = $(libunwind_la_SOURCES_x86_common) \
|
|
|
|
$(libunwind_la_SOURCES_x86_os_local) \
|
|
|
|
$(libunwind_la_SOURCES_local) \
|
2004-08-17 17:34:28 +02:00
|
|
|
x86/Lcreate_addr_space.c x86/Lget_save_loc.c x86/Lglobal.c \
|
|
|
|
x86/Linit.c x86/Linit_local.c x86/Linit_remote.c \
|
2010-04-05 01:17:32 +02:00
|
|
|
x86/Lget_proc_info.c x86/Lregs.c \
|
2010-04-13 13:11:39 +02:00
|
|
|
x86/Lresume.c x86/Lstep.c
|
2003-01-14 08:11:56 +01:00
|
|
|
|
2011-02-02 05:35:59 +01:00
|
|
|
# The list of files that go into libunwind-x86:
|
|
|
|
libunwind_x86_la_SOURCES_x86 = $(libunwind_la_SOURCES_x86_common) \
|
|
|
|
$(libunwind_la_SOURCES_x86_os) \
|
|
|
|
$(libunwind_la_SOURCES_generic) \
|
2004-08-17 17:34:28 +02:00
|
|
|
x86/Gcreate_addr_space.c x86/Gget_save_loc.c x86/Gglobal.c \
|
|
|
|
x86/Ginit.c x86/Ginit_local.c x86/Ginit_remote.c \
|
2010-04-05 01:17:32 +02:00
|
|
|
x86/Gget_proc_info.c x86/Gregs.c \
|
2004-08-17 17:34:28 +02:00
|
|
|
x86/Gresume.c x86/Gstep.c
|
2004-01-03 11:50:24 +01:00
|
|
|
|
2011-02-02 05:35:59 +01:00
|
|
|
# The list of files that go both into libunwind and libunwind-x86_64:
|
2010-11-09 02:16:39 +01:00
|
|
|
noinst_HEADERS += x86_64/offsets.h \
|
|
|
|
x86_64/init.h x86_64/unwind_i.h x86_64/ucontext_i.h
|
2011-02-02 05:35:59 +01:00
|
|
|
libunwind_la_SOURCES_x86_64_common = $(libunwind_la_SOURCES_common) \
|
|
|
|
x86_64/is_fpreg.c x86_64/regname.c
|
|
|
|
|
|
|
|
# The list of files that go into libunwind:
|
|
|
|
libunwind_la_SOURCES_x86_64 = $(libunwind_la_SOURCES_x86_64_common) \
|
|
|
|
$(libunwind_la_SOURCES_x86_64_os_local) \
|
|
|
|
$(libunwind_la_SOURCES_local) \
|
|
|
|
x86_64/setcontext.S \
|
2004-08-19 15:39:10 +02:00
|
|
|
x86_64/Lcreate_addr_space.c x86_64/Lget_save_loc.c x86_64/Lglobal.c \
|
|
|
|
x86_64/Linit.c x86_64/Linit_local.c x86_64/Linit_remote.c \
|
2011-03-19 10:00:48 +01:00
|
|
|
x86_64/Lget_proc_info.c x86_64/Lregs.c x86_64/Lresume.c \
|
|
|
|
x86_64/Lstash_frame.c x86_64/Lstep.c x86_64/Ltrace.c x86_64/getcontext.S
|
2004-08-19 15:39:10 +02:00
|
|
|
|
2011-02-02 05:35:59 +01:00
|
|
|
# The list of files that go into libunwind-x86_64:
|
|
|
|
libunwind_x86_64_la_SOURCES_x86_64 = $(libunwind_la_SOURCES_x86_64_common) \
|
|
|
|
$(libunwind_la_SOURCES_x86_64_os) \
|
|
|
|
$(libunwind_la_SOURCES_generic) \
|
2004-08-19 15:39:10 +02:00
|
|
|
x86_64/Gcreate_addr_space.c x86_64/Gget_save_loc.c x86_64/Gglobal.c \
|
|
|
|
x86_64/Ginit.c x86_64/Ginit_local.c x86_64/Ginit_remote.c \
|
2011-03-19 10:00:48 +01:00
|
|
|
x86_64/Gget_proc_info.c x86_64/Gregs.c x86_64/Gresume.c \
|
|
|
|
x86_64/Gstash_frame.c x86_64/Gstep.c x86_64/Gtrace.c
|
2004-08-19 15:39:10 +02:00
|
|
|
|
2011-02-02 05:35:59 +01:00
|
|
|
# The list of local files that go to Power 64 and 32:
|
2013-12-17 15:01:34 +01:00
|
|
|
libunwind_la_SOURCES_ppc = \
|
2007-09-13 05:52:25 +02:00
|
|
|
ppc/Lget_proc_info.c ppc/Lget_save_loc.c ppc/Linit_local.c \
|
|
|
|
ppc/Linit_remote.c ppc/Lis_signal_frame.c
|
|
|
|
|
2011-02-02 05:35:59 +01:00
|
|
|
# The list of generic files that go to Power 64 and 32:
|
2013-12-17 15:01:34 +01:00
|
|
|
libunwind_ppc_la_SOURCES_ppc_generic = \
|
2007-09-13 05:52:25 +02:00
|
|
|
ppc/Gget_proc_info.c ppc/Gget_save_loc.c ppc/Ginit_local.c \
|
|
|
|
ppc/Ginit_remote.c ppc/Gis_signal_frame.c
|
|
|
|
|
2011-02-02 05:35:59 +01:00
|
|
|
# The list of files that go both into libunwind and libunwind-ppc32:
|
2010-11-09 02:16:39 +01:00
|
|
|
noinst_HEADERS += ppc32/init.h ppc32/unwind_i.h ppc32/ucontext_i.h
|
2011-02-02 05:35:59 +01:00
|
|
|
libunwind_la_SOURCES_ppc32_common = $(libunwind_la_SOURCES_common) \
|
2010-11-09 02:16:40 +01:00
|
|
|
ppc32/is_fpreg.c ppc32/regname.c ppc32/get_func_addr.c
|
2007-09-13 05:52:25 +02:00
|
|
|
|
2011-02-02 05:35:59 +01:00
|
|
|
# The list of files that go into libunwind:
|
|
|
|
libunwind_la_SOURCES_ppc32 = $(libunwind_la_SOURCES_ppc32_common) \
|
|
|
|
$(libunwind_la_SOURCES_local) \
|
|
|
|
$(libunwind_la_SOURCES_ppc) \
|
2013-12-17 15:01:34 +01:00
|
|
|
ppc32/Lcreate_addr_space.c \
|
2011-02-02 05:35:59 +01:00
|
|
|
ppc32/Lglobal.c ppc32/Linit.c \
|
2007-09-13 05:52:25 +02:00
|
|
|
ppc32/Lregs.c ppc32/Lresume.c ppc32/Lstep.c
|
|
|
|
|
2011-02-02 05:35:59 +01:00
|
|
|
# The list of files that go into libunwind-ppc32:
|
|
|
|
libunwind_ppc32_la_SOURCES_ppc32 = $(libunwind_la_SOURCES_ppc32_common) \
|
|
|
|
$(libunwind_la_SOURCES_generic) \
|
|
|
|
$(libunwind_ppc_la_SOURCES_ppc_generic) \
|
2013-12-17 15:01:34 +01:00
|
|
|
ppc32/Gcreate_addr_space.c \
|
2011-02-02 05:35:59 +01:00
|
|
|
ppc32/Gglobal.c ppc32/Ginit.c \
|
2007-09-13 05:52:25 +02:00
|
|
|
ppc32/Gregs.c ppc32/Gresume.c ppc32/Gstep.c
|
|
|
|
|
2011-02-02 05:35:59 +01:00
|
|
|
# The list of files that go both into libunwind and libunwind-ppc64:
|
2010-11-09 02:16:39 +01:00
|
|
|
noinst_HEADERS += ppc64/init.h ppc64/unwind_i.h ppc64/ucontext_i.h
|
2011-02-02 05:35:59 +01:00
|
|
|
libunwind_la_SOURCES_ppc64_common = $(libunwind_la_SOURCES_common) \
|
2010-11-09 02:16:40 +01:00
|
|
|
ppc64/is_fpreg.c ppc64/regname.c ppc64/get_func_addr.c
|
2007-08-02 17:59:43 +02:00
|
|
|
|
2011-02-02 05:35:59 +01:00
|
|
|
# The list of files that go into libunwind:
|
|
|
|
libunwind_la_SOURCES_ppc64 = $(libunwind_la_SOURCES_ppc64_common) \
|
|
|
|
$(libunwind_la_SOURCES_local) \
|
|
|
|
$(libunwind_la_SOURCES_ppc) \
|
2013-12-17 15:01:34 +01:00
|
|
|
ppc64/Lcreate_addr_space.c \
|
2011-02-02 05:35:59 +01:00
|
|
|
ppc64/Lglobal.c ppc64/Linit.c \
|
2007-09-13 05:52:25 +02:00
|
|
|
ppc64/Lregs.c ppc64/Lresume.c ppc64/Lstep.c
|
2007-08-02 17:59:43 +02:00
|
|
|
|
2011-02-02 05:35:59 +01:00
|
|
|
# The list of files that go into libunwind-ppc64:
|
|
|
|
libunwind_ppc64_la_SOURCES_ppc64 = $(libunwind_la_SOURCES_ppc64_common) \
|
|
|
|
$(libunwind_la_SOURCES_generic) \
|
|
|
|
$(libunwind_ppc_la_SOURCES_ppc_generic) \
|
2013-12-17 15:01:34 +01:00
|
|
|
ppc64/Gcreate_addr_space.c \
|
2011-02-02 05:35:59 +01:00
|
|
|
ppc64/Gglobal.c ppc64/Ginit.c \
|
2007-09-13 05:52:25 +02:00
|
|
|
ppc64/Gregs.c ppc64/Gresume.c ppc64/Gstep.c
|
2007-08-02 17:59:43 +02:00
|
|
|
|
2012-08-16 12:10:29 +02:00
|
|
|
# The list of files that go into libunwind and libunwind-sh:
|
|
|
|
noinst_HEADERS += sh/init.h sh/offsets.h sh/unwind_i.h
|
|
|
|
libunwind_la_SOURCES_sh_common = $(libunwind_la_SOURCES_common) \
|
|
|
|
sh/is_fpreg.c sh/regname.c
|
|
|
|
|
|
|
|
# The list of files that go into libunwind:
|
|
|
|
libunwind_la_SOURCES_sh = $(libunwind_la_SOURCES_sh_common) \
|
|
|
|
$(libunwind_la_SOURCES_local) \
|
|
|
|
sh/Lcreate_addr_space.c sh/Lget_proc_info.c sh/Lget_save_loc.c \
|
|
|
|
sh/Lglobal.c sh/Linit.c sh/Linit_local.c sh/Linit_remote.c \
|
|
|
|
sh/Lis_signal_frame.c sh/Lregs.c sh/Lresume.c sh/Lstep.c
|
|
|
|
|
|
|
|
libunwind_sh_la_SOURCES_sh = $(libunwind_la_SOURCES_sh_common) \
|
|
|
|
$(libunwind_la_SOURCES_generic) \
|
|
|
|
sh/Gcreate_addr_space.c sh/Gget_proc_info.c sh/Gget_save_loc.c \
|
|
|
|
sh/Gglobal.c sh/Ginit.c sh/Ginit_local.c sh/Ginit_remote.c \
|
|
|
|
sh/Gis_signal_frame.c sh/Gregs.c sh/Gresume.c sh/Gstep.c
|
|
|
|
|
2003-03-19 20:25:18 +01:00
|
|
|
if REMOTE_ONLY
|
|
|
|
install-exec-hook:
|
|
|
|
# Nothing to do here....
|
|
|
|
else
|
|
|
|
#
|
|
|
|
# This is not ideal, but I know of no other way to install an
|
2011-06-16 02:07:10 +02:00
|
|
|
# alias for a library. For the shared version, we have to do
|
|
|
|
# a file check before creating the link, because it isn't going
|
|
|
|
# to be there if the user configured with --disable-shared.
|
2003-03-19 20:25:18 +01:00
|
|
|
#
|
|
|
|
install-exec-hook:
|
2013-04-19 22:18:27 +02:00
|
|
|
cd $(DESTDIR)$(libdir) && $(LN_S) -f libunwind-$(arch).a libunwind-generic.a
|
2012-01-23 08:59:54 +01:00
|
|
|
if test -f $(DESTDIR)$(libdir)/libunwind-$(arch).so; then \
|
2013-04-19 22:18:27 +02:00
|
|
|
cd $(DESTDIR)$(libdir) && $(LN_S) -f libunwind-$(arch).so \
|
|
|
|
libunwind-generic.so; \
|
2011-06-16 02:07:10 +02:00
|
|
|
fi
|
2003-03-19 20:25:18 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
if OS_LINUX
|
2011-02-02 05:35:59 +01:00
|
|
|
libunwind_la_SOURCES_os = $(libunwind_la_SOURCES_os_linux)
|
|
|
|
libunwind_la_SOURCES_os_local = $(libunwind_la_SOURCES_os_linux_local)
|
|
|
|
libunwind_la_SOURCES_x86_os = x86/Gos-linux.c
|
|
|
|
libunwind_x86_la_SOURCES_os = x86/getcontext-linux.S
|
|
|
|
libunwind_la_SOURCES_x86_os_local = x86/Los-linux.c
|
|
|
|
libunwind_la_SOURCES_x86_64_os = x86_64/Gos-linux.c
|
|
|
|
libunwind_la_SOURCES_x86_64_os_local = x86_64/Los-linux.c
|
2012-06-29 11:28:29 +02:00
|
|
|
libunwind_coredump_la_SOURCES += coredump/_UCD_access_reg_linux.c
|
2003-03-19 20:25:18 +01:00
|
|
|
endif
|
2011-02-02 05:35:59 +01:00
|
|
|
|
|
|
|
if OS_HPUX
|
|
|
|
libunwind_la_SOURCES_os = $(libunwind_la_SOURCES_os_hpux)
|
|
|
|
libunwind_la_SOURCES_os_local = $(libunwind_la_SOURCES_os_hpux_local)
|
2003-04-03 09:59:15 +02:00
|
|
|
endif
|
|
|
|
|
2010-03-05 23:41:37 +01:00
|
|
|
if OS_FREEBSD
|
2011-02-02 05:35:59 +01:00
|
|
|
libunwind_la_SOURCES_os = $(libunwind_la_SOURCES_os_freebsd)
|
|
|
|
libunwind_la_SOURCES_os_local = $(libunwind_la_SOURCES_os_freebsd_local)
|
|
|
|
libunwind_la_SOURCES_x86_os = x86/Gos-freebsd.c
|
|
|
|
libunwind_x86_la_SOURCES_os = x86/getcontext-freebsd.S
|
|
|
|
libunwind_la_SOURCES_x86_os_local = x86/Los-freebsd.c
|
|
|
|
libunwind_la_SOURCES_x86_64_os = x86_64/Gos-freebsd.c
|
|
|
|
libunwind_la_SOURCES_x86_64_os_local = x86_64/Los-freebsd.c
|
2012-06-29 11:28:29 +02:00
|
|
|
libunwind_coredump_la_SOURCES += coredump/_UCD_access_reg_freebsd.c
|
2010-03-05 23:41:37 +01:00
|
|
|
endif
|
|
|
|
|
Add basic support for the QNX operating system
This change adds some special cases to allow libunwind to compile
for QNX.
* QNX's copy of <elf.h> and <link.h> reside in sys/ instead. To deal
with this, an AC_CHECK_HEADERS() was added to check for the files
in both locations.
* Similarly, QNX does not have <endian.h>. In cases where the file is
not found, logic was added to refer to QNX-specific macros to determine
endianness.
* The QCC compiler, which is a wrapper around GCC, cannot handle some
standard GCC options. Therefore, logic was added to check for QCC,
and when it is found, to suppress the use of -lgcc, and to express the
option -nostartfiles as -Wc,-nostartfiles instead, which is correctly
passed on to the underlying GCC.
* Finally, the support file os-qnx.c was added, patterned after the existing
os-*.c files. Only local image lookup is currently supported (see the
comments for more information), but this is sufficient for QNX, since
ptrace is not supported there anyway, and that is the only case where the
function is required to do remote image lookup.
Change-Id: Ie7934f94a7317bdde59335f2acd4c3a97c0384c1
2013-04-15 16:53:29 +02:00
|
|
|
if OS_QNX
|
|
|
|
libunwind_la_SOURCES_os = $(libunwind_la_SOURCES_os_qnx)
|
|
|
|
libunwind_la_SOURCES_os_local = $(libunwind_la_SOURCES_os_qnx_local)
|
|
|
|
endif
|
|
|
|
|
2013-05-11 17:18:23 +02:00
|
|
|
if ARCH_AARCH64
|
|
|
|
lib_LTLIBRARIES += libunwind-aarch64.la
|
|
|
|
libunwind_la_SOURCES = $(libunwind_la_SOURCES_aarch64)
|
|
|
|
libunwind_aarch64_la_SOURCES = $(libunwind_aarch64_la_SOURCES_aarch64)
|
|
|
|
libunwind_aarch64_la_LDFLAGS = $(COMMON_SO_LDFLAGS) -version-info $(SOVERSION)
|
|
|
|
libunwind_aarch64_la_LIBADD = libunwind-dwarf-generic.la
|
|
|
|
libunwind_aarch64_la_LIBADD += libunwind-elf64.la
|
|
|
|
if !REMOTE_ONLY
|
|
|
|
libunwind_aarch64_la_LIBADD += libunwind.la -lc
|
|
|
|
endif
|
|
|
|
libunwind_setjmp_la_SOURCES += aarch64/siglongjmp.S
|
|
|
|
else
|
2008-02-05 01:16:37 +01:00
|
|
|
if ARCH_ARM
|
2010-11-09 02:16:37 +01:00
|
|
|
lib_LTLIBRARIES += libunwind-arm.la
|
2011-02-02 05:35:59 +01:00
|
|
|
libunwind_la_SOURCES = $(libunwind_la_SOURCES_arm)
|
|
|
|
libunwind_arm_la_SOURCES = $(libunwind_arm_la_SOURCES_arm)
|
2008-02-05 01:16:37 +01:00
|
|
|
libunwind_arm_la_LDFLAGS = $(COMMON_SO_LDFLAGS) -version-info $(SOVERSION)
|
2011-02-02 05:35:59 +01:00
|
|
|
libunwind_arm_la_LIBADD = libunwind-dwarf-generic.la
|
2010-11-09 02:16:40 +01:00
|
|
|
libunwind_arm_la_LIBADD += libunwind-elf32.la
|
2008-02-05 01:16:37 +01:00
|
|
|
if !REMOTE_ONLY
|
2010-11-09 02:16:38 +01:00
|
|
|
libunwind_arm_la_LIBADD += libunwind.la -lc
|
2008-02-05 01:16:37 +01:00
|
|
|
endif
|
2010-11-09 02:16:36 +01:00
|
|
|
libunwind_setjmp_la_SOURCES += arm/siglongjmp.S
|
2008-02-05 01:16:37 +01:00
|
|
|
else
|
2002-04-06 01:37:55 +02:00
|
|
|
if ARCH_IA64
|
2003-04-23 21:22:42 +02:00
|
|
|
BUILT_SOURCES = Gcursor_i.h Lcursor_i.h
|
2012-09-03 08:44:45 +02:00
|
|
|
mk_Gcursor_i.s: $(srcdir)/ia64/mk_Gcursor_i.c
|
|
|
|
$(COMPILE) -S "$(srcdir)/ia64/mk_Gcursor_i.c" -o mk_Gcursor_i.s
|
|
|
|
mk_Lcursor_i.s: $(srcdir)/ia64/mk_Lcursor_i.c
|
|
|
|
$(COMPILE) -S "$(srcdir)/ia64/mk_Lcursor_i.c" -o mk_Lcursor_i.s
|
2012-07-31 14:01:02 +02:00
|
|
|
Gcursor_i.h: mk_Gcursor_i.s
|
2012-09-03 08:44:45 +02:00
|
|
|
"$(srcdir)/ia64/mk_cursor_i" mk_Gcursor_i.s > Gcursor_i.h
|
2012-07-31 14:01:02 +02:00
|
|
|
Lcursor_i.h: mk_Lcursor_i.s
|
2012-09-03 08:44:45 +02:00
|
|
|
"$(srcdir)/ia64/mk_cursor_i" mk_Lcursor_i.s > Lcursor_i.h
|
2010-11-09 02:16:37 +01:00
|
|
|
|
|
|
|
lib_LTLIBRARIES += libunwind-ia64.la
|
2011-02-02 05:35:59 +01:00
|
|
|
libunwind_la_SOURCES = $(libunwind_la_SOURCES_ia64)
|
|
|
|
libunwind_ia64_la_SOURCES = $(libunwind_ia64_la_SOURCES_ia64)
|
2004-04-20 18:53:44 +02:00
|
|
|
libunwind_ia64_la_LDFLAGS = $(COMMON_SO_LDFLAGS) -version-info $(SOVERSION)
|
2011-02-02 05:35:59 +01:00
|
|
|
libunwind_ia64_la_LIBADD = libunwind-elf64.la
|
2004-01-22 09:36:15 +01:00
|
|
|
if !REMOTE_ONLY
|
2010-11-09 02:16:40 +01:00
|
|
|
libunwind_ia64_la_LIBADD += libunwind.la -lc
|
2004-01-22 09:36:15 +01:00
|
|
|
endif
|
2010-11-09 02:16:36 +01:00
|
|
|
libunwind_setjmp_la_SOURCES += ia64/setjmp.S ia64/sigsetjmp.S \
|
|
|
|
ia64/longjmp.S ia64/siglongjmp.S
|
2002-04-06 01:37:55 +02:00
|
|
|
else
|
2003-01-14 08:11:56 +01:00
|
|
|
if ARCH_HPPA
|
2010-11-09 02:16:37 +01:00
|
|
|
lib_LTLIBRARIES += libunwind-hppa.la
|
2011-02-02 05:35:59 +01:00
|
|
|
libunwind_la_SOURCES = $(libunwind_la_SOURCES_hppa)
|
|
|
|
libunwind_hppa_la_SOURCES = $(libunwind_hppa_la_SOURCES_hppa)
|
2004-04-20 18:53:44 +02:00
|
|
|
libunwind_hppa_la_LDFLAGS = $(COMMON_SO_LDFLAGS) -version-info $(SOVERSION)
|
2011-02-02 05:35:59 +01:00
|
|
|
libunwind_hppa_la_LIBADD = libunwind-dwarf-generic.la
|
2010-11-09 02:16:40 +01:00
|
|
|
libunwind_hppa_la_LIBADD += libunwind-elf32.la
|
2004-01-22 09:36:15 +01:00
|
|
|
if !REMOTE_ONLY
|
2010-11-09 02:16:38 +01:00
|
|
|
libunwind_hppa_la_LIBADD += libunwind.la -lc
|
2004-01-22 09:36:15 +01:00
|
|
|
endif
|
2010-11-09 02:16:36 +01:00
|
|
|
libunwind_setjmp_la_SOURCES += hppa/siglongjmp.S
|
2003-01-14 08:11:56 +01:00
|
|
|
else
|
2008-02-05 01:16:37 +01:00
|
|
|
if ARCH_MIPS
|
2010-11-09 02:16:37 +01:00
|
|
|
lib_LTLIBRARIES += libunwind-mips.la
|
2011-02-02 05:35:59 +01:00
|
|
|
libunwind_la_SOURCES = $(libunwind_la_SOURCES_mips)
|
|
|
|
libunwind_mips_la_SOURCES = $(libunwind_mips_la_SOURCES_mips)
|
2008-02-05 01:16:37 +01:00
|
|
|
libunwind_mips_la_LDFLAGS = $(COMMON_SO_LDFLAGS) -version-info $(SOVERSION)
|
2011-02-02 05:35:59 +01:00
|
|
|
libunwind_mips_la_LIBADD = libunwind-dwarf-generic.la
|
2010-11-09 02:16:40 +01:00
|
|
|
libunwind_mips_la_LIBADD += libunwind-elfxx.la
|
2008-02-05 01:16:37 +01:00
|
|
|
if !REMOTE_ONLY
|
2010-11-09 02:16:38 +01:00
|
|
|
libunwind_mips_la_LIBADD += libunwind.la -lc
|
2008-02-05 01:16:37 +01:00
|
|
|
endif
|
2010-11-09 02:16:36 +01:00
|
|
|
libunwind_setjmp_la_SOURCES += mips/siglongjmp.S
|
2008-02-05 01:16:37 +01:00
|
|
|
else
|
2014-09-02 23:35:41 +02:00
|
|
|
if ARCH_TILEGX
|
|
|
|
lib_LTLIBRARIES += libunwind-tilegx.la
|
|
|
|
libunwind_la_SOURCES = $(libunwind_la_SOURCES_tilegx)
|
|
|
|
libunwind_tilegx_la_SOURCES = $(libunwind_tilegx_la_SOURCES_tilegx)
|
|
|
|
libunwind_tilegx_la_LDFLAGS = $(COMMON_SO_LDFLAGS) -version-info $(SOVERSION)
|
|
|
|
libunwind_tilegx_la_LIBADD = libunwind-dwarf-generic.la
|
|
|
|
libunwind_tilegx_la_LIBADD += libunwind-elfxx.la
|
|
|
|
if !REMOTE_ONLY
|
|
|
|
libunwind_tilegx_la_LIBADD += libunwind.la -lc
|
|
|
|
endif
|
|
|
|
libunwind_setjmp_la_SOURCES += tilegx/siglongjmp.S
|
|
|
|
else
|
2002-12-19 08:16:50 +01:00
|
|
|
if ARCH_X86
|
2010-11-09 02:16:37 +01:00
|
|
|
lib_LTLIBRARIES += libunwind-x86.la
|
2011-02-02 05:35:59 +01:00
|
|
|
libunwind_la_SOURCES = $(libunwind_la_SOURCES_x86) $(libunwind_x86_la_SOURCES_os)
|
|
|
|
libunwind_x86_la_SOURCES = $(libunwind_x86_la_SOURCES_x86)
|
2004-04-20 18:53:44 +02:00
|
|
|
libunwind_x86_la_LDFLAGS = $(COMMON_SO_LDFLAGS) -version-info $(SOVERSION)
|
2011-02-02 05:35:59 +01:00
|
|
|
libunwind_x86_la_LIBADD = libunwind-dwarf-generic.la
|
2010-11-09 02:16:40 +01:00
|
|
|
libunwind_x86_la_LIBADD += libunwind-elf32.la
|
2004-01-22 09:36:15 +01:00
|
|
|
if !REMOTE_ONLY
|
2010-11-09 02:16:38 +01:00
|
|
|
libunwind_x86_la_LIBADD += libunwind.la -lc
|
2004-01-22 09:36:15 +01:00
|
|
|
endif
|
2010-11-09 02:16:36 +01:00
|
|
|
libunwind_setjmp_la_SOURCES += x86/longjmp.S x86/siglongjmp.S
|
2004-08-19 15:39:10 +02:00
|
|
|
else
|
|
|
|
if ARCH_X86_64
|
2010-11-09 02:16:37 +01:00
|
|
|
lib_LTLIBRARIES += libunwind-x86_64.la
|
2011-02-02 05:35:59 +01:00
|
|
|
libunwind_la_SOURCES = $(libunwind_la_SOURCES_x86_64)
|
|
|
|
libunwind_x86_64_la_SOURCES = $(libunwind_x86_64_la_SOURCES_x86_64)
|
2004-08-19 15:39:10 +02:00
|
|
|
libunwind_x86_64_la_LDFLAGS = $(COMMON_SO_LDFLAGS) -version-info $(SOVERSION)
|
2011-02-02 05:35:59 +01:00
|
|
|
libunwind_x86_64_la_LIBADD = libunwind-dwarf-generic.la
|
2010-11-09 02:16:40 +01:00
|
|
|
libunwind_x86_64_la_LIBADD += libunwind-elf64.la
|
2004-08-19 15:39:10 +02:00
|
|
|
if !REMOTE_ONLY
|
2010-11-09 02:16:38 +01:00
|
|
|
libunwind_x86_64_la_LIBADD += libunwind.la -lc
|
2004-08-19 15:39:10 +02:00
|
|
|
endif
|
2010-11-09 02:16:36 +01:00
|
|
|
libunwind_setjmp_la_SOURCES += x86_64/longjmp.S x86_64/siglongjmp.S
|
2007-09-13 05:52:25 +02:00
|
|
|
else
|
|
|
|
if ARCH_PPC32
|
2010-11-09 02:16:37 +01:00
|
|
|
lib_LTLIBRARIES += libunwind-ppc32.la
|
2011-02-02 05:35:59 +01:00
|
|
|
libunwind_la_SOURCES = $(libunwind_la_SOURCES_ppc32)
|
|
|
|
libunwind_ppc32_la_SOURCES = $(libunwind_ppc32_la_SOURCES_ppc32)
|
2007-09-13 05:52:25 +02:00
|
|
|
libunwind_ppc32_la_LDFLAGS = $(COMMON_SO_LDFLAGS) -version-info $(SOVERSION)
|
2011-02-02 05:35:59 +01:00
|
|
|
libunwind_ppc32_la_LIBADD = libunwind-dwarf-generic.la
|
2010-11-09 02:16:40 +01:00
|
|
|
libunwind_ppc32_la_LIBADD += libunwind-elf32.la
|
2007-09-13 05:52:25 +02:00
|
|
|
if !REMOTE_ONLY
|
2010-11-09 02:16:38 +01:00
|
|
|
libunwind_ppc32_la_LIBADD += libunwind.la -lc
|
2007-09-13 05:52:25 +02:00
|
|
|
endif
|
2010-11-09 02:16:36 +01:00
|
|
|
libunwind_setjmp_la_SOURCES += ppc/longjmp.S ppc/siglongjmp.S
|
2007-08-02 17:59:43 +02:00
|
|
|
else
|
|
|
|
if ARCH_PPC64
|
2010-11-09 02:16:37 +01:00
|
|
|
lib_LTLIBRARIES += libunwind-ppc64.la
|
2011-02-02 05:35:59 +01:00
|
|
|
libunwind_la_SOURCES = $(libunwind_la_SOURCES_ppc64)
|
|
|
|
libunwind_ppc64_la_SOURCES = $(libunwind_ppc64_la_SOURCES_ppc64)
|
2007-08-02 17:59:43 +02:00
|
|
|
libunwind_ppc64_la_LDFLAGS = $(COMMON_SO_LDFLAGS) -version-info $(SOVERSION)
|
2011-02-02 05:35:59 +01:00
|
|
|
libunwind_ppc64_la_LIBADD = libunwind-dwarf-generic.la
|
2010-11-09 02:16:40 +01:00
|
|
|
libunwind_ppc64_la_LIBADD += libunwind-elf64.la
|
2007-08-02 17:59:43 +02:00
|
|
|
if !REMOTE_ONLY
|
2010-11-09 02:16:38 +01:00
|
|
|
libunwind_ppc64_la_LIBADD += libunwind.la -lc
|
2007-08-02 17:59:43 +02:00
|
|
|
endif
|
2010-11-09 02:16:36 +01:00
|
|
|
libunwind_setjmp_la_SOURCES += ppc/longjmp.S ppc/siglongjmp.S
|
2012-08-16 12:10:29 +02:00
|
|
|
else
|
|
|
|
if ARCH_SH
|
|
|
|
lib_LTLIBRARIES += libunwind-sh.la
|
|
|
|
libunwind_la_SOURCES = $(libunwind_la_SOURCES_sh)
|
|
|
|
libunwind_sh_la_SOURCES = $(libunwind_sh_la_SOURCES_sh)
|
|
|
|
libunwind_sh_la_LDFLAGS = $(COMMON_SO_LDFLAGS) -version-info $(SOVERSION)
|
|
|
|
libunwind_sh_la_LIBADD = libunwind-dwarf-generic.la
|
|
|
|
libunwind_sh_la_LIBADD += libunwind-elf32.la
|
|
|
|
if !REMOTE_ONLY
|
|
|
|
libunwind_sh_la_LIBADD += libunwind.la -lc
|
|
|
|
endif
|
|
|
|
libunwind_setjmp_la_SOURCES += sh/siglongjmp.S
|
2007-08-02 17:59:43 +02:00
|
|
|
|
2012-08-16 12:10:29 +02:00
|
|
|
endif # ARCH_SH
|
2007-08-02 17:59:43 +02:00
|
|
|
endif # ARCH_PPC64
|
2007-09-13 05:52:25 +02:00
|
|
|
endif # ARCH_PPC32
|
2004-08-19 15:39:10 +02:00
|
|
|
endif # ARCH_X86_64
|
2003-01-14 08:11:56 +01:00
|
|
|
endif # ARCH_X86
|
2014-09-02 23:35:41 +02:00
|
|
|
endif # ARCH_TILEGX
|
2008-02-05 01:16:37 +01:00
|
|
|
endif # ARCH_MIPS
|
2003-01-14 08:11:56 +01:00
|
|
|
endif # ARCH_HPPA
|
|
|
|
endif # ARCH_IA64
|
2008-02-05 01:16:37 +01:00
|
|
|
endif # ARCH_ARM
|
2013-05-11 17:18:23 +02:00
|
|
|
endif # ARCH_AARCH64
|
2002-04-19 07:35:46 +02:00
|
|
|
|
2011-09-05 19:46:14 +02:00
|
|
|
# libunwind-setjmp depends on libunwind-$(arch). Therefore must be added
|
|
|
|
# at the end.
|
2013-04-19 01:32:53 +02:00
|
|
|
if BUILD_SETJMP
|
2011-09-05 19:46:14 +02:00
|
|
|
lib_LTLIBRARIES += libunwind-setjmp.la
|
|
|
|
endif
|
|
|
|
|
2005-05-03 11:13:17 +02:00
|
|
|
#
|
|
|
|
# Don't link with standard libraries, because those may mention
|
|
|
|
# libunwind already.
|
|
|
|
#
|
|
|
|
libunwind_la_LDFLAGS = $(COMMON_SO_LDFLAGS) -XCClinker -nostdlib \
|
|
|
|
$(LDFLAGS_STATIC_LIBCXA) -version-info $(SOVERSION)
|
2010-11-09 02:16:38 +01:00
|
|
|
libunwind_la_LIBADD += -lc $(LIBCRTS)
|
2013-09-05 12:44:41 +02:00
|
|
|
libunwind_la_LIBADD += $(LIBLZMA)
|
2004-01-03 11:50:24 +01:00
|
|
|
|
2005-05-20 11:48:08 +02:00
|
|
|
AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/include/tdep-$(arch) -I.
|
2003-02-08 11:10:59 +01:00
|
|
|
AM_CCASFLAGS = $(AM_CPPFLAGS)
|
2010-11-09 02:16:39 +01:00
|
|
|
noinst_HEADERS += unwind/unwind-internal.h
|
2002-04-06 01:37:55 +02:00
|
|
|
|
2013-05-11 17:18:23 +02:00
|
|
|
EXTRA_DIST = $(libunwind_la_SOURCES_aarch64) \
|
|
|
|
$(libunwind_la_SOURCES_arm) \
|
2011-02-02 05:35:59 +01:00
|
|
|
$(libunwind_la_SOURCES_hppa) \
|
|
|
|
$(libunwind_la_SOURCES_ia64) \
|
|
|
|
$(libunwind_la_SOURCES_mips) \
|
2012-08-16 12:10:29 +02:00
|
|
|
$(libunwind_la_SOURCES_sh) \
|
2011-02-02 05:35:59 +01:00
|
|
|
$(libunwind_la_SOURCES_x86) \
|
2011-03-22 20:29:40 +01:00
|
|
|
$(libunwind_la_SOURCES_os_freebsd) \
|
2011-02-02 05:35:59 +01:00
|
|
|
$(libunwind_la_SOURCES_os_linux) \
|
|
|
|
$(libunwind_la_SOURCES_os_hpux) \
|
Add basic support for the QNX operating system
This change adds some special cases to allow libunwind to compile
for QNX.
* QNX's copy of <elf.h> and <link.h> reside in sys/ instead. To deal
with this, an AC_CHECK_HEADERS() was added to check for the files
in both locations.
* Similarly, QNX does not have <endian.h>. In cases where the file is
not found, logic was added to refer to QNX-specific macros to determine
endianness.
* The QCC compiler, which is a wrapper around GCC, cannot handle some
standard GCC options. Therefore, logic was added to check for QCC,
and when it is found, to suppress the use of -lgcc, and to express the
option -nostartfiles as -Wc,-nostartfiles instead, which is correctly
passed on to the underlying GCC.
* Finally, the support file os-qnx.c was added, patterned after the existing
os-*.c files. Only local image lookup is currently supported (see the
comments for more information), but this is sufficient for QNX, since
ptrace is not supported there anyway, and that is the only case where the
function is required to do remote image lookup.
Change-Id: Ie7934f94a7317bdde59335f2acd4c3a97c0384c1
2013-04-15 16:53:29 +02:00
|
|
|
$(libunwind_la_SOURCES_os_qnx) \
|
2011-02-02 05:35:59 +01:00
|
|
|
$(libunwind_la_SOURCES_common) \
|
|
|
|
$(libunwind_la_SOURCES_local) \
|
|
|
|
$(libunwind_la_SOURCES_generic) \
|
2013-05-11 17:18:23 +02:00
|
|
|
$(libunwind_aarch64_la_SOURCES_aarch64) \
|
2011-02-02 05:35:59 +01:00
|
|
|
$(libunwind_arm_la_SOURCES_arm) \
|
|
|
|
$(libunwind_hppa_la_SOURCES_hppa) \
|
|
|
|
$(libunwind_ia64_la_SOURCES_ia64) \
|
|
|
|
$(libunwind_mips_la_SOURCES_mips) \
|
2012-08-16 12:10:29 +02:00
|
|
|
$(libunwind_sh_la_SOURCES_sh) \
|
2011-02-02 05:35:59 +01:00
|
|
|
$(libunwind_x86_la_SOURCES_x86) \
|
|
|
|
$(libunwind_x86_64_la_SOURCES_x86_64)
|
|
|
|
|
2010-10-29 01:25:51 +02:00
|
|
|
MAINTAINERCLEANFILES = Makefile.in
|
2003-03-19 20:25:18 +01:00
|
|
|
|
2002-02-28 17:24:48 +01:00
|
|
|
# The -version-info flag accepts an argument of the form
|
|
|
|
# `current[:revision[:age]]'. So, passing `-version-info 3:12:1' sets
|
|
|
|
# current to 3, revision to 12, and age to 1.
|
|
|
|
|
|
|
|
# If either revision or age are omitted, they default to 0. Also note
|
|
|
|
# that age must be less than or equal to the current interface number.
|
|
|
|
|
|
|
|
# Here are a set of rules to help you update your library version
|
|
|
|
# information:
|
|
|
|
|
|
|
|
# 1. Start with version information of `0:0:0' for each libtool
|
|
|
|
# library.
|
|
|
|
|
|
|
|
# 2. Update the version information only immediately before a public
|
|
|
|
# release of your software. More frequent updates are unnecessary,
|
|
|
|
# and only guarantee that the current interface number gets larger
|
|
|
|
# faster.
|
|
|
|
|
|
|
|
# 3. If the library source code has changed at all since the last
|
|
|
|
# update, then increment revision (`c:r:a' becomes `c:r+1:a').
|
|
|
|
|
|
|
|
# 4. If any interfaces have been added, removed, or changed since the
|
|
|
|
# last update, increment current, and set revision to 0.
|
|
|
|
|
|
|
|
# 5. If any interfaces have been added since the last public release,
|
|
|
|
# then increment age.
|
|
|
|
|
|
|
|
# 6. If any interfaces have been removed since the last public
|
|
|
|
# release, then set age to 0.
|