summaryrefslogtreecommitdiff
path: root/libbacktrace/Makefile.am
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2020-02-16 05:20:01 -0800
committerIan Lance Taylor <iant@golang.org>2020-05-09 16:09:37 -0700
commitdea40c941a4d443d1b748bafb8a74f02c360e810 (patch)
treea0f524ed86fa37c9d7e8bd8d6627ee92df721c8b /libbacktrace/Makefile.am
parent4b26b13871a672059d1bdebbc4d87a4429c5abd8 (diff)
downloadgcc-dea40c941a4d443d1b748bafb8a74f02c360e810.tar.gz
libbacktrace: add Mach-O support
libbacktrace/ PR libbacktrace/88745 * macho.c: New file. * filetype.awk: Recognize Mach-O files. * Makefile.am (FORMAT_FILES): Add macho.c. (check_DATA): New variable. Set to .dSYM if HAVE_DSYMUTIL. (%.dSYM): New pattern target. (test_macho_SOURCES, test_macho_CFLAGS): New targets. (test_macho_LDADD): New target. (BUILDTESTS): Add test_macho. (macho.lo): Add dependencies. * configure.ac: Recognize macho file type. Check for mach-o/dyld.h. Don't try to run objcopy if we don't find it. Look for dsymutil and define a HAVE_DSYMUTIL conditional. * Makefile.in: Regenerate. * configure: Regenerate. * config.h.in: Regenerate.
Diffstat (limited to 'libbacktrace/Makefile.am')
-rw-r--r--libbacktrace/Makefile.am68
1 files changed, 65 insertions, 3 deletions
diff --git a/libbacktrace/Makefile.am b/libbacktrace/Makefile.am
index c73f6633a76..d3a9ba8843a 100644
--- a/libbacktrace/Makefile.am
+++ b/libbacktrace/Makefile.am
@@ -56,6 +56,7 @@ BACKTRACE_FILES = \
FORMAT_FILES = \
elf.c \
+ macho.c \
pecoff.c \
unknown.c \
xcoff.c
@@ -84,18 +85,28 @@ libbacktrace_la_DEPENDENCIES = $(libbacktrace_la_LIBADD)
# Testsuite.
-# Add test to this variable, if you want it to be build.
+# Add a test to this variable if you want it to be built.
check_PROGRAMS =
-# Add test to this variable, if you want it to be run.
+# Add a test to this variable if you want it to be run.
TESTS =
-# Add test to this variable, if you want it to be build and run.
+# Add a test to this variable if you want it to be built and run.
BUILDTESTS =
+# Add a file to this variable if you want it to be built for testing.
+check_DATA =
+
# Flags to use when compiling test programs.
libbacktrace_TEST_CFLAGS = $(EXTRA_FLAGS) $(WARN_FLAGS) -g
+if HAVE_DSYMUTIL
+
+%.dSYM: %
+ $(DSYMUTIL) $<
+
+endif HAVE_DSYMUTIL
+
if NATIVE
check_LTLIBRARIES = libbacktrace_alloc.la
@@ -163,6 +174,12 @@ test_elf_64_LDADD = libbacktrace_noformat.la elf_64.lo
BUILDTESTS += test_elf_64
+test_macho_SOURCES = test_format.c testlib.c
+test_macho_CFLAGS = $(libbacktrace_TEST_CFLAGS)
+test_macho_LDADD = libbacktrace_noformat.la macho.lo
+
+BUILDTESTS += test_macho
+
test_xcoff_32_SOURCES = test_format.c testlib.c
test_xcoff_32_CFLAGS = $(libbacktrace_TEST_CFLAGS)
test_xcoff_32_LDADD = libbacktrace_noformat.la xcoff_32.lo
@@ -220,6 +237,10 @@ allocfail.sh: allocfail
TESTS += allocfail.sh
+if HAVE_DSYMUTIL
+check_DATA += allocfail.dSYM
+endif HAVE_DSYMUTIL
+
if HAVE_ELF
if HAVE_OBJCOPY_DEBUGLINK
@@ -252,6 +273,10 @@ btest_LDADD = libbacktrace.la
BUILDTESTS += btest
+if HAVE_DSYMUTIL
+check_DATA += btest.dSYM
+endif HAVE_DSYMUTIL
+
if HAVE_ELF
btest_lto_SOURCES = btest.c testlib.c
@@ -268,6 +293,10 @@ btest_alloc_LDADD = libbacktrace_alloc.la
BUILDTESTS += btest_alloc
+if HAVE_DSYMUTIL
+check_DATA += btest_alloc.dSYM
+endif HAVE_DSYMUTIL
+
if HAVE_DWZ
%_dwz: %
@@ -294,12 +323,20 @@ stest_LDADD = libbacktrace.la
BUILDTESTS += stest
+if HAVE_DSYMUTIL
+check_DATA += stest.dSYM
+endif HAVE_DSYMUTIL
+
stest_alloc_SOURCES = $(stest_SOURCES)
stest_alloc_CFLAGS = $(libbacktrace_TEST_CFLAGS)
stest_alloc_LDADD = libbacktrace_alloc.la
BUILDTESTS += stest_alloc
+if HAVE_DSYMUTIL
+check_DATA += stest_alloc.dSYM
+endif HAVE_DSYMUTIL
+
if HAVE_ELF
ztest_SOURCES = ztest.c testlib.c
@@ -329,10 +366,18 @@ edtest_LDADD = libbacktrace.la
BUILDTESTS += edtest
+if HAVE_DSYMUTIL
+check_DATA += edtest.dSYM
+endif HAVE_DSYMUTIL
+
edtest_alloc_SOURCES = $(edtest_SOURCES)
edtest_alloc_CFLAGS = $(libbacktrace_TEST_CFLAGS)
edtest_alloc_LDADD = libbacktrace_alloc.la
+if HAVE_DSYMUTIL
+check_DATA += edtest_alloc.dSYM
+endif HAVE_DSYMUTIL
+
BUILDTESTS += edtest_alloc
edtest2_build.c: gen_edtest2_build; @true
@@ -349,12 +394,20 @@ ttest_SOURCES = ttest.c testlib.c
ttest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -pthread
ttest_LDADD = libbacktrace.la
+if HAVE_DSYMUTIL
+check_DATA += ttest.dSYM
+endif HAVE_DSYMUTIL
+
BUILDTESTS += ttest_alloc
ttest_alloc_SOURCES = $(ttest_SOURCES)
ttest_alloc_CFLAGS = $(ttest_CFLAGS)
ttest_alloc_LDADD = libbacktrace_alloc.la
+if HAVE_DSYMUTIL
+check_DATA += ttest_alloc.dSYM
+endif HAVE_DSYMUTIL
+
endif HAVE_PTHREAD
if HAVE_OBJCOPY_DEBUGLINK
@@ -409,12 +462,20 @@ dwarf5_LDADD = libbacktrace.la
BUILDTESTS += dwarf5
+if HAVE_DSYMUTIL
+check_DATA += dwarf5.dSYM
+endif HAVE_DSYMUTIL
+
dwarf5_alloc_SOURCES = $(dwarf5_SOURCES)
dwarf5_alloc_CFLAGS = $(dwarf5_CFLAGS)
dwarf5_alloc_LDADD = libbacktrace_alloc.la
BUILDTESTS += dwarf5_alloc
+if HAVE_DSYMUTIL
+check_DATA += dwarf5_alloc.dSYM
+endif HAVE_DSYMUTIL
+
endif
endif NATIVE
@@ -448,6 +509,7 @@ dwarf.lo: config.h $(INCDIR)/dwarf2.h $(INCDIR)/dwarf2.def \
$(INCDIR)/filenames.h backtrace.h internal.h
elf.lo: config.h backtrace.h internal.h
fileline.lo: config.h backtrace.h internal.h
+macho.lo: config.h backtrace.h internal.h
mmap.lo: config.h backtrace.h internal.h
mmapio.lo: config.h backtrace.h internal.h
nounwind.lo: config.h internal.h