diff options
author | Ian Lance Taylor <iant@golang.org> | 2020-02-16 05:20:01 -0800 |
---|---|---|
committer | Ian Lance Taylor <iant@golang.org> | 2020-05-09 16:09:37 -0700 |
commit | dea40c941a4d443d1b748bafb8a74f02c360e810 (patch) | |
tree | a0f524ed86fa37c9d7e8bd8d6627ee92df721c8b /libbacktrace/Makefile.am | |
parent | 4b26b13871a672059d1bdebbc4d87a4429c5abd8 (diff) | |
download | gcc-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.am | 68 |
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 |