Skip to content

Commit 9a21b90

Browse files
committed
Bundle libbacktrace with the compiler
This will soon be used to print backtraces on failure
1 parent 0aa3b88 commit 9a21b90

38 files changed

+38720
-0
lines changed

src/libbacktrace/ChangeLog

Lines changed: 408 additions & 0 deletions
Large diffs are not rendered by default.

src/libbacktrace/Makefile.am

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
# Makefile.am -- Backtrace Makefile.
2+
# Copyright (C) 2012-2014 Free Software Foundation, Inc.
3+
4+
# Redistribution and use in source and binary forms, with or without
5+
# modification, are permitted provided that the following conditions are
6+
# met:
7+
8+
# (1) Redistributions of source code must retain the above copyright
9+
# notice, this list of conditions and the following disclaimer.
10+
11+
# (2) Redistributions in binary form must reproduce the above copyright
12+
# notice, this list of conditions and the following disclaimer in
13+
# the documentation and/or other materials provided with the
14+
# distribution.
15+
16+
# (3) The name of the author may not be used to
17+
# endorse or promote products derived from this software without
18+
# specific prior written permission.
19+
20+
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
21+
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
22+
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23+
# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
24+
# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
25+
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26+
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27+
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
28+
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
29+
# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30+
# POSSIBILITY OF SUCH DAMAGE.
31+
32+
ACLOCAL_AMFLAGS = -I .. -I ../config
33+
34+
AM_CPPFLAGS = -I $(top_srcdir)/../include -I $(top_srcdir)/../libgcc \
35+
-I ../libgcc
36+
37+
AM_CFLAGS = $(EXTRA_FLAGS) $(WARN_FLAGS) $(PIC_FLAG)
38+
39+
noinst_LTLIBRARIES = libbacktrace.la
40+
41+
libbacktrace_la_SOURCES = \
42+
backtrace.h \
43+
atomic.c \
44+
dwarf.c \
45+
fileline.c \
46+
internal.h \
47+
posix.c \
48+
print.c \
49+
state.c
50+
51+
BACKTRACE_FILES = \
52+
backtrace.c \
53+
simple.c \
54+
nounwind.c
55+
56+
FORMAT_FILES = \
57+
elf.c \
58+
unknown.c
59+
60+
VIEW_FILES = \
61+
read.c \
62+
mmapio.c
63+
64+
ALLOC_FILES = \
65+
alloc.c \
66+
mmap.c
67+
68+
EXTRA_libbacktrace_la_SOURCES = \
69+
$(BACKTRACE_FILES) \
70+
$(FORMAT_FILES) \
71+
$(VIEW_FILES) \
72+
$(ALLOC_FILES)
73+
74+
libbacktrace_la_LIBADD = \
75+
$(BACKTRACE_FILE) \
76+
$(FORMAT_FILE) \
77+
$(VIEW_FILE) \
78+
$(ALLOC_FILE)
79+
80+
libbacktrace_la_DEPENDENCIES = $(libbacktrace_la_LIBADD)
81+
82+
# Testsuite.
83+
84+
check_PROGRAMS =
85+
86+
TESTS = $(check_PROGRAMS)
87+
88+
if NATIVE
89+
90+
btest_SOURCES = btest.c
91+
btest_CFLAGS = $(AM_CFLAGS) -g -O
92+
btest_LDADD = libbacktrace.la
93+
94+
check_PROGRAMS += btest
95+
96+
endif NATIVE
97+
98+
# We can't use automake's automatic dependency tracking, because it
99+
# breaks when using bootstrap-lean. Automatic dependency tracking
100+
# with GCC bootstrap will cause some of the objects to depend on
101+
# header files in prev-gcc/include, e.g., stddef.h and stdarg.h. When
102+
# using bootstrap-lean, prev-gcc is removed after each stage. When
103+
# running "make install", those header files will be gone, causing the
104+
# library to be rebuilt at install time. That may not succeed.
105+
106+
# These manual dependencies do not include dependencies on unwind.h,
107+
# even though that is part of GCC, because where to find it depends on
108+
# whether we are being built as a host library or a target library.
109+
110+
INCDIR = $(top_srcdir)/../include
111+
alloc.lo: config.h backtrace.h internal.h
112+
backtrace.lo: config.h backtrace.h
113+
btest.lo: (INCDIR)/filenames.h backtrace.h backtrace-supported.h
114+
dwarf.lo: config.h $(INCDIR)/dwarf2.h $(INCDIR)/dwarf2.def \
115+
$(INCDIR)/filenames.h backtrace.h internal.h
116+
elf.lo: config.h backtrace.h internal.h
117+
fileline.lo: config.h backtrace.h internal.h
118+
mmap.lo: config.h backtrace.h internal.h
119+
mmapio.lo: config.h backtrace.h internal.h
120+
nounwind.lo: config.h internal.h
121+
posix.lo: config.h backtrace.h internal.h
122+
print.lo: config.h backtrace.h internal.h
123+
read.lo: config.h backtrace.h internal.h
124+
simple.lo: config.h backtrace.h internal.h
125+
state.lo: config.h backtrace.h backtrace-supported.h internal.h
126+
unknown.lo: config.h backtrace.h internal.h

0 commit comments

Comments
 (0)