Change:
Original title: "compiletest has implicit dependency on libnative" compiletest has implicit dependency on libnative When I tried to do , I get the following: says this is because, despite 's continued use of , there is an implicit attempt to link in unless one puts in a attribute into the crate attributes. I plan to try to fix this pronto. After fixing the above, I get: So there's another separate problem blocking from working.
Still working on this, there was a new problem that came up (run-pass-fulldeps needs libsyntax to have been rebuilt), so I've updated the description and the title to reflect the more general issue here.

Discussion:
define DEF_TEST_CRATE_RULES check-stage$(1)-T-$(2)-H-$(3)-$(4)-exec: $$(call TEST_OK_FILE,$(1),$(2),$(3),$(4)) <del> check-stage$(1)-T-$(2)-H-$(3)-$(4)-exec: $$(call TEST_OK_FILE,$(1),$(2),$(3),$(4)) </del> $$(call TEST_OK_FILE,$(1),$(2),$(3),$(4)):  $(3)/stage$(1)/test/$(4)test-$(2)$$(X_$(2)) @$$(call E, run: $$<)

CTEST_MODE_codegen = codegen CTEST_RUNTOOL_codegen = $(CTEST_RUNTOOL) <ins> # CTEST_DISABLE_$(TEST_GROUP), if set, will cause the test group to be # disabled and the associated message to be printed as a warning # during attempts to run those tests. </ins> ifeq ($(CFG_GDB),) CTEST_DISABLE_debuginfo = "no gdb found" endif

CTEST_DISABLE_debuginfo = "gdb on darwing needs root" endif <ins> # CTEST_DISABLE_NONSELFHOST_$(TEST_GROUP), if set, will cause that # test group to be disabled *unless* the target is able to build a # compiler (i.e. when the target triple is in the set of of host # triples).  The associated message will be printed as a warning # during attempts to run those tests. CTEST_DISABLE_NONSELFHOST_rpass-full = "run-pass-full suite is unavailable when cross-compiling." </ins> define DEF_CTEST_VARS # All the per-stage build rules you might want to call from the

$$(CTEST_TESTARGS) CTEST_DEPS_rpass_$(1)-T-$(2)-H-$(3) = $$(RPASS_TESTS) <del> CTEST_DEPS_rpass_full_$(1)-T-$(2)-H-$(3) = $$(RPASS_FULL_TESTS) $$(TLIBRUSTC_DEFAULT$(1)_T_$(2)_H_$(3)) </del> <ins> CTEST_DEPS_rpass-full_$(1)-T-$(2)-H-$(3) = $$(RPASS_FULL_TESTS) $$(CSREQ$(1)_T_$(2)_H_$(3)) </ins> CTEST_DEPS_rfail_$(1)-T-$(2)-H-$(3) = $$(RFAIL_TESTS) CTEST_DEPS_cfail_$(1)-T-$(2)-H-$(3) = $$(CFAIL_TESTS) CTEST_DEPS_bench_$(1)-T-$(2)-H-$(3) = $$(BENCH_TESTS)

check-stage$(1)-T-$(2)-H-$(3)-$(4)-exec: $$(call TEST_OK_FILE,$(1),$(2),$(3),$(4)) <del> ifeq ($$(CTEST_DISABLE_$(4)),) </del> <ins> # CTEST_DONT_RUN_$(1)-T-$(2)-H-$(3)-$(4) # Goal: leave this variable as empty string if we should run the test. # Otherwise, set it to the reason we are not running the test. # (Encoded as a separate variable because GNU make does not have a # good way to express OR on ifeq commands) ifneq ($$(CTEST_DISABLE_$(4)),) # Test suite is disabled for all configured targets. CTEST_DONT_RUN_$(1)-T-$(2)-H-$(3)-$(4) := $$(CTEST_DISABLE_$(4)) else # else, check if non-self-hosted target (i.e. target not-in hosts) ... ifeq ($$(findstring $(2),$$(CFG_HOST)),) # ... if so, then check if this test suite is disabled for non-selfhosts. ifneq ($$(CTEST_DISABLE_NONSELFHOST_$(4)),) # Test suite is disabled for this target. CTEST_DONT_RUN_$(1)-T-$(2)-H-$(3)-$(4) := $$(CTEST_DISABLE_NONSELFHOST_$(4)) endif endif # Neither DISABLE nor DISABLE_NONSELFHOST is set ==> okay, run the test. endif ifeq ($$(CTEST_DONT_RUN_$(1)-T-$(2)-H-$(3)-$(4)),) </ins> $$(call TEST_OK_FILE,$(1),$(2),$(3),$(4)):  $$(TEST_SREQ$(1)_T_$(2)_H_$(3))  $$(CTEST_DEPS_$(4)_$(1)-T-$(2)-H-$(3))

else <del> $$(call TEST_OK_FILE,$(1),$(2),$(3),$(4)):  $$(TEST_SREQ$(1)_T_$(2)_H_$(3))  $$(CTEST_DEPS_$(4)_$(1)-T-$(2)-H-$(3)) </del> <ins> $$(call TEST_OK_FILE,$(1),$(2),$(3),$(4)): </ins> @$$(call E, run $(4) [$(2)]: $$<) <del> @$$(call E, warning: tests disabled: $$(CTEST_DISABLE_$(4))) </del> <ins> @$$(call E, warning: tests disabled: $$(CTEST_DONT_RUN_$(1)-T-$(2)-H-$(3)-$(4))) </ins> touch $$@ endif

#![crate_type = "bin"] #![feature(phase)] <ins> // we use our own (green) start below; do not link in libnative; issue #13247. #![no_start] </ins> #![allow(non_camel_case_types)] #![deny(warnings)]