Skip to content
This repository was archived by the owner on Apr 2, 2024. It is now read-only.

Commit 4e548e7

Browse files
libbacktrace: add preliminary Mach-O support
1 parent 929d620 commit 4e548e7

7 files changed

+1561
-49
lines changed

Makefile.am

+65-3
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ BACKTRACE_FILES = \
5757

5858
FORMAT_FILES = \
5959
elf.c \
60+
macho.c \
6061
pecoff.c \
6162
unknown.c \
6263
xcoff.c
@@ -85,18 +86,28 @@ libbacktrace_la_DEPENDENCIES = $(libbacktrace_la_LIBADD)
8586

8687
# Testsuite.
8788

88-
# Add test to this variable, if you want it to be build.
89+
# Add a test to this variable if you want it to be built.
8990
check_PROGRAMS =
9091

91-
# Add test to this variable, if you want it to be run.
92+
# Add a test to this variable if you want it to be run.
9293
TESTS =
9394

94-
# Add test to this variable, if you want it to be build and run.
95+
# Add a test to this variable if you want it to be built and run.
9596
BUILDTESTS =
9697

98+
# Add a file to this variable if you want it to be built for testing.
99+
check_DATA =
100+
97101
# Flags to use when compiling test programs.
98102
libbacktrace_TEST_CFLAGS = $(EXTRA_FLAGS) $(WARN_FLAGS) -g
99103

104+
if HAVE_DSYMUTIL
105+
106+
%.dSYM: %
107+
$(DSYMUTIL) $<
108+
109+
endif HAVE_DSYMUTIL
110+
100111
if NATIVE
101112
check_LTLIBRARIES = libbacktrace_alloc.la
102113

@@ -164,6 +175,12 @@ test_elf_64_LDADD = libbacktrace_noformat.la elf_64.lo
164175

165176
BUILDTESTS += test_elf_64
166177

178+
test_macho_SOURCES = test_format.c testlib.c
179+
test_macho_CFLAGS = $(libbacktrace_TEST_CFLAGS)
180+
test_macho_LDADD = libbacktrace_noformat.la macho.lo
181+
182+
BUILDTESTS += test_macho
183+
167184
test_xcoff_32_SOURCES = test_format.c testlib.c
168185
test_xcoff_32_CFLAGS = $(libbacktrace_TEST_CFLAGS)
169186
test_xcoff_32_LDADD = libbacktrace_noformat.la xcoff_32.lo
@@ -221,6 +238,10 @@ allocfail.sh: allocfail
221238

222239
TESTS += allocfail.sh
223240

241+
if HAVE_DSYMUTIL
242+
check_DATA += allocfail.dSYM
243+
endif HAVE_DSYMUTIL
244+
224245
if HAVE_ELF
225246
if HAVE_OBJCOPY_DEBUGLINK
226247

@@ -253,6 +274,10 @@ btest_LDADD = libbacktrace.la
253274

254275
BUILDTESTS += btest
255276

277+
if HAVE_DSYMUTIL
278+
check_DATA += btest.dSYM
279+
endif HAVE_DSYMUTIL
280+
256281
if HAVE_ELF
257282

258283
btest_lto_SOURCES = btest.c testlib.c
@@ -269,6 +294,10 @@ btest_alloc_LDADD = libbacktrace_alloc.la
269294

270295
BUILDTESTS += btest_alloc
271296

297+
if HAVE_DSYMUTIL
298+
check_DATA += btest_alloc.dSYM
299+
endif HAVE_DSYMUTIL
300+
272301
if HAVE_DWZ
273302

274303
%_dwz: %
@@ -295,12 +324,20 @@ stest_LDADD = libbacktrace.la
295324

296325
BUILDTESTS += stest
297326

327+
if HAVE_DSYMUTIL
328+
check_DATA += stest.dSYM
329+
endif HAVE_DSYMUTIL
330+
298331
stest_alloc_SOURCES = $(stest_SOURCES)
299332
stest_alloc_CFLAGS = $(libbacktrace_TEST_CFLAGS)
300333
stest_alloc_LDADD = libbacktrace_alloc.la
301334

302335
BUILDTESTS += stest_alloc
303336

337+
if HAVE_DSYMUTIL
338+
check_DATA += stest_alloc.dSYM
339+
endif HAVE_DSYMUTIL
340+
304341
if HAVE_ELF
305342

306343
ztest_SOURCES = ztest.c testlib.c
@@ -330,10 +367,18 @@ edtest_LDADD = libbacktrace.la
330367

331368
BUILDTESTS += edtest
332369

370+
if HAVE_DSYMUTIL
371+
check_DATA += edtest.dSYM
372+
endif HAVE_DSYMUTIL
373+
333374
edtest_alloc_SOURCES = $(edtest_SOURCES)
334375
edtest_alloc_CFLAGS = $(libbacktrace_TEST_CFLAGS)
335376
edtest_alloc_LDADD = libbacktrace_alloc.la
336377

378+
if HAVE_DSYMUTIL
379+
check_DATA += edtest_alloc.dSYM
380+
endif HAVE_DSYMUTIL
381+
337382
BUILDTESTS += edtest_alloc
338383

339384
edtest2_build.c: gen_edtest2_build; @true
@@ -350,12 +395,20 @@ ttest_SOURCES = ttest.c testlib.c
350395
ttest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -pthread
351396
ttest_LDADD = libbacktrace.la
352397

398+
if HAVE_DSYMUTIL
399+
check_DATA += ttest.dSYM
400+
endif HAVE_DSYMUTIL
401+
353402
BUILDTESTS += ttest_alloc
354403

355404
ttest_alloc_SOURCES = $(ttest_SOURCES)
356405
ttest_alloc_CFLAGS = $(ttest_CFLAGS)
357406
ttest_alloc_LDADD = libbacktrace_alloc.la
358407

408+
if HAVE_DSYMUTIL
409+
check_DATA += ttest_alloc.dSYM
410+
endif HAVE_DSYMUTIL
411+
359412
endif HAVE_PTHREAD
360413

361414
if HAVE_OBJCOPY_DEBUGLINK
@@ -410,12 +463,20 @@ dwarf5_LDADD = libbacktrace.la
410463

411464
BUILDTESTS += dwarf5
412465

466+
if HAVE_DSYMUTIL
467+
check_DATA += dwarf5.dSYM
468+
endif HAVE_DSYMUTIL
469+
413470
dwarf5_alloc_SOURCES = $(dwarf5_SOURCES)
414471
dwarf5_alloc_CFLAGS = $(dwarf5_CFLAGS)
415472
dwarf5_alloc_LDADD = libbacktrace_alloc.la
416473

417474
BUILDTESTS += dwarf5_alloc
418475

476+
if HAVE_DSYMUTIL
477+
check_DATA += dwarf5_alloc.dSYM
478+
endif HAVE_DSYMUTIL
479+
419480
endif
420481

421482
endif NATIVE
@@ -447,6 +508,7 @@ btest.lo: filenames.h backtrace.h backtrace-supported.h
447508
dwarf.lo: config.h filenames.h backtrace.h internal.h
448509
elf.lo: config.h backtrace.h internal.h
449510
fileline.lo: config.h backtrace.h internal.h
511+
macho.lo: config.h backtrace.h internal.h
450512
mmap.lo: config.h backtrace.h internal.h
451513
mmapio.lo: config.h backtrace.h internal.h
452514
nounwind.lo: config.h internal.h

0 commit comments

Comments
 (0)