Skip to content

Commit 64963e8

Browse files
committed
---
yaml --- r: 105917 b: refs/heads/auto c: 829df69 h: refs/heads/master i: 105915: 2721c00 v: v3
1 parent 97f7b11 commit 64963e8

File tree

10 files changed

+1095
-102
lines changed

10 files changed

+1095
-102
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ refs/heads/try3: 9387340aab40a73e8424c48fd42f0c521a4875c0
1313
refs/tags/release-0.3.1: 495bae036dfe5ec6ceafd3312b4dca48741e845b
1414
refs/tags/release-0.4: e828ea2080499553b97dfe33b3f4d472b4562ad7
1515
refs/tags/release-0.5: 7e3bcfbf21278251ee936ad53e92e9b719702d73
16-
refs/heads/auto: 9a21b9007775343b7ca59245380b38d5b41a2e2b
16+
refs/heads/auto: 829df69f9f7a0dd0adbf072a47fd7c7600e75211
1717
refs/heads/servo: af82457af293e2a842ba6b7759b70288da276167
1818
refs/tags/release-0.6: b4ebcfa1812664df5e142f0134a5faea3918544c
1919
refs/tags/0.1: b19db808c2793fe2976759b85a355c3ad8c8b336

branches/auto/mk/crates.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ HOST_CRATES := syntax rustc rustdoc fourcc hexfloat
5555
CRATES := $(TARGET_CRATES) $(HOST_CRATES)
5656
TOOLS := compiletest rustdoc rustc
5757

58-
DEPS_std := native:rustrt native:compiler-rt
58+
DEPS_std := native:rustrt native:compiler-rt native:backtrace
5959
DEPS_extra := std term sync serialize getopts collections time rand
6060
DEPS_green := std rand native:context_switch
6161
DEPS_rustuv := std native:uv native:uv_support

branches/auto/mk/rt.mk

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,73 @@ $$(COMPRT_LIB_$(1)): $$(COMPRT_DEPS) $$(MKFILE_DEPS)
249249
triple-runtime
250250
$$(Q)cp $$(COMPRT_BUILD_DIR_$(1))/triple/runtime/libcompiler_rt.a $$(COMPRT_LIB_$(1))
251251

252+
################################################################################
253+
# libbacktrace
254+
#
255+
# We use libbacktrace on linux to get symbols in backtraces, but only on linux.
256+
# Elsewhere we use other system utilities, so this library is only built on
257+
# linux.
258+
################################################################################
259+
260+
BACKTRACE_NAME_$(1) := $$(call CFG_STATIC_LIB_NAME_$(1),backtrace)
261+
BACKTRACE_LIB_$(1) := $$(RT_OUTPUT_DIR_$(1))/$$(BACKTRACE_NAME_$(1))
262+
BACKTRACE_BUILD_DIR_$(1) := $$(RT_OUTPUT_DIR_$(1))/libbacktrace
263+
264+
ifeq ($$(findstring darwin,$$(OSTYPE_$(1))),darwin)
265+
266+
# We don't use this on platforms that aren't linux-based, so just make the file
267+
# available, the compilation of libstd won't actually build it.
268+
$$(BACKTRACE_LIB_$(1)):
269+
touch $$@
270+
271+
else
272+
ifeq ($$(CFG_WINDOWSY_$(1)),1)
273+
$$(BACKTRACE_LIB_$(1)):
274+
touch $$@
275+
else
276+
277+
ifdef CFG_ENABLE_FAST_MAKE
278+
BACKTRACE_DEPS := $(S)/.gitmodules
279+
else
280+
BACKTRACE_DEPS := $(wildcard $(S)src/libbacktrace/*)
281+
endif
282+
283+
# We need to export CFLAGS because otherwise it doesn't pick up cross compile
284+
# builds. If libbacktrace doesn't realize this, it will attempt to read 64-bit
285+
# elf headers when compiled for a 32-bit system, yielding blank backtraces.
286+
#
287+
# This also removes the -Werror flag specifically to prevent errors during
288+
# configuration.
289+
#
290+
# Down below you'll also see echos into the config.h generated by the
291+
# ./configure script. This is done to force libbacktrace to *not* use the
292+
# atomic/sync functionality because it pulls in unnecessary dependencies and we
293+
# never use it anyway.
294+
$$(BACKTRACE_BUILD_DIR_$(1))/Makefile: \
295+
export CFLAGS:=$$(CFG_GCCISH_CFLAGS_$(1):-Werror=) \
296+
-fno-stack-protector
297+
$$(BACKTRACE_BUILD_DIR_$(1))/Makefile: export CC:=$$(CC_$(1))
298+
$$(BACKTRACE_BUILD_DIR_$(1))/Makefile: export AR:=$$(AR_$(1))
299+
$$(BACKTRACE_BUILD_DIR_$(1))/Makefile: export RANLIB:=$$(AR_$(1)) s
300+
$$(BACKTRACE_BUILD_DIR_$(1))/Makefile: $$(BACKTRACE_DEPS) $$(MKFILE_DEPS)
301+
$$(Q)rm -rf $$(BACKTRACE_BUILD_DIR_$(1))
302+
$$(Q)mkdir -p $$(BACKTRACE_BUILD_DIR_$(1))
303+
$$(Q)(cd $$(BACKTRACE_BUILD_DIR_$(1)) && \
304+
$(S)src/libbacktrace/configure --target=$(1) --host=$(CFG_BUILD))
305+
$$(Q)echo '#undef HAVE_ATOMIC_FUNCTIONS' >> \
306+
$$(BACKTRACE_BUILD_DIR_$(1))/config.h
307+
$$(Q)echo '#undef HAVE_SYNC_FUNCTIONS' >> \
308+
$$(BACKTRACE_BUILD_DIR_$(1))/config.h
309+
310+
$$(BACKTRACE_LIB_$(1)): $$(BACKTRACE_BUILD_DIR_$(1))/Makefile $$(MKFILE_DEPS)
311+
@$$(call E, make: libbacktrace)
312+
$$(Q)$$(MAKE) -C $$(BACKTRACE_BUILD_DIR_$(1)) \
313+
INCDIR=$(S)src/libbacktrace
314+
$$(Q)cp $$(BACKTRACE_BUILD_DIR_$(1))/.libs/libbacktrace.a $$@
315+
316+
endif # endif for windowsy
317+
endif # endif for darwin
318+
252319
endef
253320

254321
# Instantiate template for all stages/targets

branches/auto/mk/tests.mk

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,7 @@ tidy:
240240
| grep '^$(S)src/libuv' -v \
241241
| grep '^$(S)src/llvm' -v \
242242
| grep '^$(S)src/gyp' -v \
243+
| grep '^$(S)src/libbacktrace' -v \
243244
| xargs -n 10 $(CFG_PYTHON) $(S)src/etc/tidy.py
244245
$(Q)find $(S)src/etc -name '*.py' \
245246
| xargs -n 10 $(CFG_PYTHON) $(S)src/etc/tidy.py
@@ -266,6 +267,7 @@ tidy:
266267
| grep '^$(S)src/etc' -v \
267268
| grep '^$(S)src/doc' -v \
268269
| grep '^$(S)src/compiler-rt' -v \
270+
| grep '^$(S)src/libbacktrace' -v \
269271
| xargs $(CFG_PYTHON) $(S)src/etc/check-binaries.py
270272

271273
endif

0 commit comments

Comments
 (0)