Skip to content

Commit 74184c6

Browse files
committed
---
yaml --- r: 149917 b: refs/heads/try2 c: 829df69 h: refs/heads/master i: 149915: 6838bce v: v3
1 parent 6b9df19 commit 74184c6

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
@@ -5,7 +5,7 @@ refs/heads/snap-stage3: 78a7676898d9f80ab540c6df5d4c9ce35bb50463
55
refs/heads/try: 519addf6277dbafccbb4159db4b710c37eaa2ec5
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8-
refs/heads/try2: 9a21b9007775343b7ca59245380b38d5b41a2e2b
8+
refs/heads/try2: 829df69f9f7a0dd0adbf072a47fd7c7600e75211
99
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try2/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/try2/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/try2/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)