Skip to content

Commit 201cab8

Browse files
committed
Move rust's uv implementation to its own crate
There are a few reasons that this is a desirable move to take: 1. Proof of concept that a third party event loop is possible 2. Clear separation of responsibility between rt::io and the uv-backend 3. Enforce in the future that the event loop is "pluggable" and replacable Here's a quick summary of the points of this pull request which make this possible: * Two new lang items were introduced: event_loop, and event_loop_factory. The idea of a "factory" is to define a function which can be called with no arguments and will return the new event loop as a trait object. This factory is emitted to the crate map when building an executable. The factory doesn't have to exist, and when it doesn't then an empty slot is in the crate map and a basic event loop with no I/O support is provided to the runtime. * When building an executable, then the rustuv crate will be linked by default (providing a default implementation of the event loop) via a similar method to injecting a dependency on libstd. This is currently the only location where the rustuv crate is ever linked. * There is a new #[no_uv] attribute (implied by #[no_std]) which denies implicitly linking to rustuv by default Closes #5019
1 parent 5dd1583 commit 201cab8

34 files changed

+7105
-161
lines changed

Makefile.in

+21-2
Original file line numberDiff line numberDiff line change
@@ -221,19 +221,22 @@ CFG_LIBRUSTC_$(1) :=$(call CFG_LIB_NAME_$(1),rustc)
221221
CFG_LIBSYNTAX_$(1) :=$(call CFG_LIB_NAME_$(1),syntax)
222222
CFG_LIBRUSTPKG_$(1) :=$(call CFG_LIB_NAME_$(1),rustpkg)
223223
CFG_LIBRUSTDOC_$(1) :=$(call CFG_LIB_NAME_$(1),rustdoc)
224+
CFG_LIBRUSTUV_$(1) :=$(call CFG_LIB_NAME_$(1),rustuv)
224225

225226
EXTRALIB_GLOB_$(1) :=$(call CFG_LIB_GLOB_$(1),extra)
226227
STDLIB_GLOB_$(1) :=$(call CFG_LIB_GLOB_$(1),std)
227228
LIBRUSTC_GLOB_$(1) :=$(call CFG_LIB_GLOB_$(1),rustc)
228229
LIBSYNTAX_GLOB_$(1) :=$(call CFG_LIB_GLOB_$(1),syntax)
229230
LIBRUSTPKG_GLOB_$(1) :=$(call CFG_LIB_GLOB_$(1),rustpkg)
230231
LIBRUSTDOC_GLOB_$(1) :=$(call CFG_LIB_GLOB_$(1),rustdoc)
232+
LIBRUSTUV_GLOB_$(1) :=$(call CFG_LIB_GLOB_$(1),rustuv)
231233
EXTRALIB_DSYM_GLOB_$(1) :=$(call CFG_LIB_DSYM_GLOB_$(1),extra)
232234
STDLIB_DSYM_GLOB_$(1) :=$(call CFG_LIB_DSYM_GLOB_$(1),std)
233235
LIBRUSTC_DSYM_GLOB_$(1) :=$(call CFG_LIB_DSYM_GLOB_$(1),rustc)
234236
LIBSYNTAX_DSYM_GLOB_$(1) :=$(call CFG_LIB_DSYM_GLOB_$(1),syntax)
235237
LIBRUSTPKG_DSYM_GLOB_$(1) :=$(call CFG_LIB_DSYM_GLOB_$(1),rustpkg)
236238
LIBRUSTDOC_DSYM_GLOB_$(1) :=$(call CFG_LIB_DSYM_GLOB_$(1),rustdoc)
239+
LIBRUSTUV_DSYM_GLOB_$(1) :=$(call CFG_LIB_DSYM_GLOB_$(1),rustuv)
237240

238241
endef
239242

@@ -289,6 +292,14 @@ EXTRALIB_CRATE := $(S)src/libextra/extra.rs
289292
EXTRALIB_INPUTS := $(wildcard $(addprefix $(S)src/libextra/, \
290293
*.rs */*.rs))
291294

295+
######################################################################
296+
# Rust UV library variables
297+
######################################################################
298+
299+
LIBRUSTUV_CRATE := $(S)src/librustuv/rustuv.rs
300+
LIBRUSTUV_INPUTS := $(wildcard $(addprefix $(S)src/librustuv/, \
301+
*.rs */*.rs))
302+
292303
######################################################################
293304
# rustc crate variables
294305
######################################################################
@@ -410,6 +421,11 @@ else
410421
$$(HLIB$(1)_H_$(3))/$(CFG_LIBRUSTC_$(3))
411422
TLIBRUSTC_DEFAULT$(1)_T_$(2)_H_$(3) = \
412423
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTC_$(2))
424+
425+
HLIBRUSTUV_DEFAULT$(1)_H_$(3) = \
426+
$$(HLIB$(1)_H_$(3))/$(CFG_LIBRUSTUV_$(3))
427+
TLIBRUSTUV_DEFAULT$(1)_T_$(2)_H_$(3) = \
428+
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTUV_$(2))
413429
endif
414430

415431
# Preqrequisites for using the stageN compiler
@@ -421,6 +437,7 @@ HSREQ$(1)_H_$(3) = \
421437
$$(HEXTRALIB_DEFAULT$(1)_H_$(3)) \
422438
$$(HLIBSYNTAX_DEFAULT$(1)_H_$(3)) \
423439
$$(HLIBRUSTC_DEFAULT$(1)_H_$(3)) \
440+
$$(HLIBRUSTUV_DEFAULT$(1)_H_$(3)) \
424441
$$(MKFILE_DEPS)
425442

426443
# Prerequisites for using the stageN compiler to build target artifacts
@@ -433,7 +450,8 @@ TSREQ$(1)_T_$(2)_H_$(3) = \
433450
SREQ$(1)_T_$(2)_H_$(3) = \
434451
$$(TSREQ$(1)_T_$(2)_H_$(3)) \
435452
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_STDLIB_$(2)) \
436-
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_EXTRALIB_$(2))
453+
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_EXTRALIB_$(2)) \
454+
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTUV_$(2))
437455

438456
# Prerequisites for a working stageN compiler and libraries, for a specific target
439457
CSREQ$(1)_T_$(2)_H_$(3) = \
@@ -447,7 +465,8 @@ CSREQ$(1)_T_$(2)_H_$(3) = \
447465
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBSYNTAX_$(2)) \
448466
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTC_$(2)) \
449467
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTPKG_$(2)) \
450-
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTDOC_$(2))
468+
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTDOC_$(2)) \
469+
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTUV_$(2))
451470

452471
ifeq ($(1),0)
453472
# Don't run the the stage0 compiler under valgrind - that ship has sailed

mk/clean.mk

+3
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ clean$(1)_H_$(2):
7373
$(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CFG_RUNTIME_$(2))
7474
$(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CFG_STDLIB_$(2))
7575
$(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CFG_EXTRALIB_$(2))
76+
$(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CFG_LIBRUSTUV_$(2))
7677
$(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CFG_LIBRUSTC_$(2))
7778
$(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CFG_LIBSYNTAX_$(2))
7879
$(Q)rm -f $$(HLIB$(1)_H_$(2))/$(STDLIB_GLOB_$(2))
@@ -103,10 +104,12 @@ clean$(1)_T_$(2)_H_$(3):
103104
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_RUNTIME_$(2))
104105
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_STDLIB_$(2))
105106
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_EXTRALIB_$(2))
107+
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTUV_$(2))
106108
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTC_$(2))
107109
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBSYNTAX_$(2))
108110
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(STDLIB_GLOB_$(2))
109111
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(EXTRALIB_GLOB_$(2))
112+
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(LIBRUSTUV_GLOB_$(2))
110113
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(LIBRUSTC_GLOB_$(2))
111114
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(LIBSYNTAX_GLOB_$(2))
112115
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(LIBRUSTPKG_GLOB_$(2))

mk/host.mk

+17-1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ $$(HBIN$(2)_H_$(4))/rustc$$(X_$(4)): \
3030
$$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTC_$(4)) \
3131
$$(HSTDLIB_DEFAULT$(2)_H_$(4)) \
3232
$$(HEXTRALIB_DEFAULT$(2)_H_$(4)) \
33+
$$(HLIBRUSTUV_DEFAULT$(2)_H_$(4)) \
3334
| $$(HBIN$(2)_H_$(4))/
3435

3536
@$$(call E, cp: $$@)
@@ -42,6 +43,7 @@ $$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTC_$(4)): \
4243
$$(HLIB$(2)_H_$(4))/$(CFG_RUSTLLVM_$(4)) \
4344
$$(HSTDLIB_DEFAULT$(2)_H_$(4)) \
4445
$$(HEXTRALIB_DEFAULT$(2)_H_$(4)) \
46+
$$(HLIBRUSTUV_DEFAULT$(2)_H_$(4)) \
4547
| $$(HLIB$(2)_H_$(4))/
4648

4749
@$$(call E, cp: $$@)
@@ -58,6 +60,7 @@ $$(HLIB$(2)_H_$(4))/$(CFG_LIBSYNTAX_$(4)): \
5860
$$(HLIB$(2)_H_$(4))/$(CFG_RUSTLLVM_$(4)) \
5961
$$(HSTDLIB_DEFAULT$(2)_H_$(4)) \
6062
$$(HEXTRALIB_DEFAULT$(2)_H_$(4)) \
63+
$$(HLIBRUSTUV_DEFAULT$(2)_H_$(4)) \
6164
| $$(HLIB$(2)_H_$(4))/
6265
@$$(call E, cp: $$@)
6366
$$(call REMOVE_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(LIBSYNTAX_GLOB_$(4)),$$(notdir $$@))
@@ -80,7 +83,7 @@ $$(HLIB$(2)_H_$(4))/$(CFG_STDLIB_$(4)): \
8083
@$$(call E, cp: $$@)
8184
$$(call REMOVE_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(STDLIB_GLOB_$(4)),$$(notdir $$@))
8285
$$(Q)cp $$< $$@
83-
# Subtle: We do not let the shell expand $(STDLIB_DSYM_GLOB) directly rather
86+
# Subtle: We do not let the shell expand $$(STDLIB_DSYM_GLOB) directly rather
8487
# we use Make's $$(wildcard) facility. The reason is that, on mac, when using
8588
# USE_SNAPSHOT_STDLIB, we copy the std.dylib file out of the snapshot.
8689
# In that case, there is no .dSYM file. Annoyingly, bash then refuses to expand
@@ -105,6 +108,19 @@ $$(HLIB$(2)_H_$(4))/$(CFG_EXTRALIB_$(4)): \
105108
$$(HLIB$(2)_H_$(4))
106109
$$(call LIST_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(EXTRALIB_GLOB_$(4)),$$(notdir $$@))
107110

111+
$$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTUV_$(4)): \
112+
$$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTUV_$(4)) \
113+
$$(HLIB$(2)_H_$(4))/$(CFG_STDLIB_$(4)) \
114+
$$(HLIB$(2)_H_$(4))/$(CFG_RUNTIME_$(4)) \
115+
| $$(HLIB$(2)_H_$(4))/
116+
@$$(call E, cp: $$@)
117+
$$(call REMOVE_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(LIBRUSTUV_GLOB_$(4)),$$(notdir $$@))
118+
$$(Q)cp $$< $$@
119+
$$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBRUSTUV_GLOB_$(4)) \
120+
$$(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBRUSTUV_DSYM_GLOB_$(4))) \
121+
$$(HLIB$(2)_H_$(4))
122+
$$(call LIST_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(LIBRUSTUV_GLOB_$(4)),$$(notdir $$@))
123+
108124
$$(HLIB$(2)_H_$(4))/libstd.rlib: \
109125
$$(TLIB$(1)_T_$(4)_H_$(3))/libstd.rlib \
110126
$$(HLIB$(2)_H_$(4))/$$(CFG_RUNTIME_$(4)) \

mk/install.mk

+6
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ install-target-$(1)-host-$(2): $$(TSREQ$$(ISTAGE)_T_$(1)_H_$(2)) $$(SREQ$$(ISTAG
9191
$$(Q)$$(call INSTALL_LIB,$$(CFG_RUNTIME_$(1)))
9292
$$(Q)$$(call INSTALL_LIB,$$(STDLIB_GLOB_$(1)))
9393
$$(Q)$$(call INSTALL_LIB,$$(EXTRALIB_GLOB_$(1)))
94+
$$(Q)$$(call INSTALL_LIB,$$(LIBRUSTUV_GLOB_$(1)))
9495
$$(Q)$$(call INSTALL_LIB,libmorestack.a)
9596

9697
endef
@@ -104,6 +105,7 @@ install-target-$(1)-host-$(2): $$(CSREQ$$(ISTAGE)_T_$(1)_H_$(2))
104105
$$(Q)$$(call INSTALL_LIB,$$(CFG_RUSTLLVM_$(1)))
105106
$$(Q)$$(call INSTALL_LIB,$$(STDLIB_GLOB_$(1)))
106107
$$(Q)$$(call INSTALL_LIB,$$(EXTRALIB_GLOB_$(1)))
108+
$$(Q)$$(call INSTALL_LIB,$$(LIBRUSTUV_GLOB_$(1)))
107109
$$(Q)$$(call INSTALL_LIB,$$(LIBRUSTC_GLOB_$(1)))
108110
$$(Q)$$(call INSTALL_LIB,$$(LIBSYNTAX_GLOB_$(1)))
109111
$$(Q)$$(call INSTALL_LIB,$$(LIBRUSTPKG_GLOB_$(1)))
@@ -143,6 +145,7 @@ install-host: $(CSREQ$(ISTAGE)_T_$(CFG_BUILD_TRIPLE)_H_$(CFG_BUILD_TRIPLE))
143145
$(Q)$(call INSTALL,$(HB2),$(PHB),rustdoc$(X_$(CFG_BUILD_TRIPLE)))
144146
$(Q)$(call INSTALL_LIB,$(STDLIB_GLOB_$(CFG_BUILD_TRIPLE)))
145147
$(Q)$(call INSTALL_LIB,$(EXTRALIB_GLOB_$(CFG_BUILD_TRIPLE)))
148+
$(Q)$(call INSTALL_LIB,$(LIBRUSTUV_GLOB_$(CFG_BUILD_TRIPLE)))
146149
$(Q)$(call INSTALL_LIB,$(LIBRUSTC_GLOB_$(CFG_BUILD_TRIPLE)))
147150
$(Q)$(call INSTALL_LIB,$(LIBSYNTAX_GLOB_$(CFG_BUILD_TRIPLE)))
148151
$(Q)$(call INSTALL_LIB,$(LIBRUSTPKG_GLOB_$(CFG_BUILD_TRIPLE)))
@@ -168,6 +171,7 @@ uninstall:
168171
$(Q)for i in \
169172
$(call HOST_LIB_FROM_HL_GLOB,$(STDLIB_GLOB_$(CFG_BUILD_TRIPLE))) \
170173
$(call HOST_LIB_FROM_HL_GLOB,$(EXTRALIB_GLOB_$(CFG_BUILD_TRIPLE))) \
174+
$(call HOST_LIB_FROM_HL_GLOB,$(LIBRUSTUV_GLOB_$(CFG_BUILD_TRIPLE))) \
171175
$(call HOST_LIB_FROM_HL_GLOB,$(LIBRUSTC_GLOB_$(CFG_BUILD_TRIPLE))) \
172176
$(call HOST_LIB_FROM_HL_GLOB,$(LIBSYNTAX_GLOB_$(CFG_BUILD_TRIPLE))) \
173177
$(call HOST_LIB_FROM_HL_GLOB,$(LIBRUSTPKG_GLOB_$(CFG_BUILD_TRIPLE))) \
@@ -230,6 +234,7 @@ install-runtime-target-$(1)-host-$(2): $$(TSREQ$$(ISTAGE)_T_$(1)_H_$(2)) $$(SREQ
230234
$(Q)$(call ADB_PUSH,$$(TL$(1)$(2))/$$(CFG_RUNTIME_$(1)),$(CFG_RUNTIME_PUSH_DIR))
231235
$(Q)$(call ADB_PUSH,$$(TL$(1)$(2))/$$(STDLIB_GLOB_$(1)),$(CFG_RUNTIME_PUSH_DIR))
232236
$(Q)$(call ADB_PUSH,$$(TL$(1)$(2))/$$(EXTRALIB_GLOB_$(1)),$(CFG_RUNTIME_PUSH_DIR))
237+
$(Q)$(call ADB_PUSH,$$(TL$(1)$(2))/$$(LIBRUSTUV_GLOB_$(1)),$(CFG_RUNTIME_PUSH_DIR))
233238
endef
234239

235240
define INSTALL_RUNTIME_TARGET_CLEANUP_N
@@ -238,6 +243,7 @@ install-runtime-target-$(1)-cleanup:
238243
$(Q)$(call ADB_SHELL,rm,$(CFG_RUNTIME_PUSH_DIR)/$(CFG_RUNTIME_$(1)))
239244
$(Q)$(call ADB_SHELL,rm,$(CFG_RUNTIME_PUSH_DIR)/$(STDLIB_GLOB_$(1)))
240245
$(Q)$(call ADB_SHELL,rm,$(CFG_RUNTIME_PUSH_DIR)/$(EXTRALIB_GLOB_$(1)))
246+
$(Q)$(call ADB_SHELL,rm,$(CFG_RUNTIME_PUSH_DIR)/$(LIBRUSTUV_GLOB_$(1)))
241247
endef
242248

243249
$(eval $(call INSTALL_RUNTIME_TARGET_N,arm-linux-androideabi,$(CFG_BUILD_TRIPLE)))

mk/rt.mk

+1-1
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ $$(RT_BUILD_DIR_$(1)_$(2))/$(CFG_RUNTIME_$(1)): $$(RUNTIME_OBJS_$(1)_$(2)) $$(MK
148148

149149
# These could go in rt.mk or rustllvm.mk, they're needed for both.
150150

151-
# This regexp has a single $, escaped twice
151+
# This regexp has a single $$ escaped twice
152152
$(1)/%.bsd.def: %.def.in $$(MKFILE_DEPS)
153153
@$$(call E, def: $$@)
154154
$$(Q)echo "{" > $$@

mk/stage0.mk

+19-2
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@ $(HLIB0_H_$(CFG_BUILD_TRIPLE))/$(CFG_EXTRALIB_$(CFG_BUILD_TRIPLE)): \
4242
| $(HLIB0_H_$(CFG_BUILD_TRIPLE))/
4343
$(Q)touch $@
4444

45+
$(HLIB0_H_$(CFG_BUILD_TRIPLE))/$(CFG_LIBRUSTUV_$(CFG_BUILD_TRIPLE)): \
46+
$(HBIN0_H_$(CFG_BUILD_TRIPLE))/rustc$(X_$(CFG_BUILD_TRIPLE)) \
47+
| $(HLIB0_H_$(CFG_BUILD_TRIPLE))/
48+
$(Q)touch $@
49+
4550
$(HLIB0_H_$(CFG_BUILD_TRIPLE))/$(CFG_LIBRUSTC_$(CFG_BUILD_TRIPLE)): \
4651
$(HBIN0_H_$(CFG_BUILD_TRIPLE))/rustc$(X_$(CFG_BUILD_TRIPLE)) \
4752
| $(HLIB0_H_$(CFG_BUILD_TRIPLE))/
@@ -81,9 +86,9 @@ $$(HLIB0_H_$(1))/$(CFG_STDLIB_$(1)): \
8186
$$(TLIB$(2)_T_$(1)_H_$(3))/$(CFG_STDLIB_$(1)) \
8287
| $(HLIB0_H_$(1))/
8388
@$$(call E, cp: $$@)
84-
$$(call CHECK_FOR_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(EXTRALIB_GLOB_$(4)),$$(notdir $$@))
89+
$$(call CHECK_FOR_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(STDLIB_GLOB_$(4)),$$(notdir $$@))
8590
$$(Q)cp $$(TLIB$(2)_T_$(1)_H_$(3))/$(STDLIB_GLOB_$(1)) $$@
86-
$$(call LIST_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(EXTRALIB_GLOB_$(4)),$$(notdir $$@))
91+
$$(call LIST_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(STDLIB_GLOB_$(4)),$$(notdir $$@))
8792

8893
$$(HLIB0_H_$(1))/$(CFG_EXTRALIB_$(1)): \
8994
$$(TLIB$(2)_T_$(1)_H_$(3))/$(CFG_EXTRALIB_$(1)) \
@@ -93,6 +98,18 @@ $$(HLIB0_H_$(1))/$(CFG_EXTRALIB_$(1)): \
9398
$$(Q)cp $$(TLIB$(2)_T_$(1)_H_$(3))/$(EXTRALIB_GLOB_$(1)) $$@
9499
$$(call LIST_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(EXTRALIB_GLOB_$(4)),$$(notdir $$@))
95100

101+
$$(HLIB0_H_$(1))/$(CFG_LIBRUSTUV_$(1)):
102+
touch $$@
103+
# NOTE: this should get uncommented after a snapshot and the rule above this can
104+
# get deleted, right now we're not expecting a librustuv in a snapshot.
105+
# $$(HLIB0_H_$(1))/$(CFG_LIBRUSTUV_$(1)): \
106+
# $$(TLIB$(2)_T_$(1)_H_$(3))/$(CFG_LIBRUSTUV_$(1)) \
107+
# | $(HLIB0_H_$(1))/
108+
# @$$(call E, cp: $$@)
109+
# $$(call CHECK_FOR_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(LIBRUSTUV_GLOB_$(4)),$$(notdir $$@))
110+
# $$(Q)cp $$(TLIB$(2)_T_$(1)_H_$(3))/$(LIBRUSTUV_GLOB_$(1)) $$@
111+
# $$(call LIST_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(LIBRUSTUV_GLOB_$(4)),$$(notdir $$@))
112+
96113
$$(HLIB0_H_$(1))/$(CFG_LIBRUSTC_$(1)): \
97114
$$(TLIB$(2)_T_$(1)_H_$(3))/$(CFG_LIBRUSTC_$(1)) \
98115
| $(HLIB0_H_$(1))/

mk/target.mk

+11
Original file line numberDiff line numberDiff line change
@@ -73,11 +73,22 @@ $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_EXTRALIB_$(2)): \
7373
$$(STAGE$(1)_T_$(2)_H_$(3)) $$(WFLAGS_ST$(1)) --out-dir $$(@D) $$< && touch $$@
7474
$$(call LIST_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(EXTRALIB_GLOB_$(2)),$$(notdir $$@))
7575

76+
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTUV_$(2)): \
77+
$$(LIBRUSTUV_CRATE) $$(LIBRUSTUV_INPUTS) \
78+
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_STDLIB_$(2)) \
79+
$$(TSREQ$(1)_T_$(2)_H_$(3)) \
80+
| $$(TLIB$(1)_T_$(2)_H_$(3))/
81+
@$$(call E, compile_and_link: $$@)
82+
$$(call REMOVE_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(LIBRUSTUV_GLOB_$(2)),$$(notdir $$@))
83+
$$(STAGE$(1)_T_$(2)_H_$(3)) $$(WFLAGS_ST$(1)) --out-dir $$(@D) $$< && touch $$@
84+
$$(call LIST_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(LIBRUSTUV_GLOB_$(2)),$$(notdir $$@))
85+
7686
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBSYNTAX_$(3)): \
7787
$$(LIBSYNTAX_CRATE) $$(LIBSYNTAX_INPUTS) \
7888
$$(TSREQ$(1)_T_$(2)_H_$(3)) \
7989
$$(TSTDLIB_DEFAULT$(1)_T_$(2)_H_$(3)) \
8090
$$(TEXTRALIB_DEFAULT$(1)_T_$(2)_H_$(3)) \
91+
$$(TLIBRUSTUV_DEFAULT$(1)_T_$(2)_H_$(3)) \
8192
| $$(TLIB$(1)_T_$(2)_H_$(3))/
8293
@$$(call E, compile_and_link: $$@)
8394
$$(call REMOVE_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(LIBSYNTAX_GLOB_$(2)),$$(notdir $$@))

mk/tests.mk

+12-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
######################################################################
1515

1616
# The names of crates that must be tested
17-
TEST_TARGET_CRATES = std extra
17+
TEST_TARGET_CRATES = std extra rustuv
1818
TEST_HOST_CRATES = rustpkg rustc rustdoc syntax
1919
TEST_CRATES = $(TEST_TARGET_CRATES) $(TEST_HOST_CRATES)
2020

@@ -164,6 +164,8 @@ $(info check: android device test dir $(CFG_ADB_TEST_DIR) ready \
164164
$(CFG_ADB_TEST_DIR)) \
165165
$(shell adb push $(TLIB2_T_arm-linux-androideabi_H_$(CFG_BUILD_TRIPLE))/$(EXTRALIB_GLOB_arm-linux-androideabi) \
166166
$(CFG_ADB_TEST_DIR)) \
167+
$(shell adb push $(TLIB2_T_arm-linux-androideabi_H_$(CFG_BUILD_TRIPLE))/$(LIBRUSTUV_GLOB_arm-linux-androideabi) \
168+
$(CFG_ADB_TEST_DIR)) \
167169
)
168170
else
169171
CFG_ADB_TEST_DIR=
@@ -189,6 +191,7 @@ check-test: cleantestlibs cleantmptestlogs all check-stage2-rfail
189191

190192
check-lite: cleantestlibs cleantmptestlogs \
191193
check-stage2-std check-stage2-extra check-stage2-rpass \
194+
check-stage2-rustuv \
192195
check-stage2-rustpkg \
193196
check-stage2-rfail check-stage2-cfail
194197
$(Q)$(CFG_PYTHON) $(S)src/etc/check-summary.py tmp/*.log
@@ -333,7 +336,8 @@ define TEST_RUNNER
333336
# test crates without rebuilding std and extra first
334337
ifeq ($(NO_REBUILD),)
335338
STDTESTDEP_$(1)_$(2)_$(3) = $$(SREQ$(1)_T_$(2)_H_$(3)) \
336-
$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_EXTRALIB_$(2))
339+
$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_EXTRALIB_$(2)) \
340+
$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_LIBRUSTUV_$(2))
337341
else
338342
STDTESTDEP_$(1)_$(2)_$(3) =
339343
endif
@@ -350,6 +354,12 @@ $(3)/stage$(1)/test/extratest-$(2)$$(X_$(2)): \
350354
@$$(call E, compile_and_link: $$@)
351355
$$(STAGE$(1)_T_$(2)_H_$(3)) -o $$@ $$< --test
352356

357+
$(3)/stage$(1)/test/rustuvtest-$(2)$$(X_$(2)): \
358+
$$(LIBRUSTUV_CRATE) $$(LIBRUSTUV_INPUTS) \
359+
$$(STDTESTDEP_$(1)_$(2)_$(3))
360+
@$$(call E, compile_and_link: $$@)
361+
$$(STAGE$(1)_T_$(2)_H_$(3)) -o $$@ $$< --test
362+
353363
$(3)/stage$(1)/test/syntaxtest-$(2)$$(X_$(2)): \
354364
$$(LIBSYNTAX_CRATE) $$(LIBSYNTAX_INPUTS) \
355365
$$(STDTESTDEP_$(1)_$(2)_$(3))

src/etc/snapshot.py

+4
Original file line numberDiff line numberDiff line change
@@ -30,27 +30,31 @@ def scrub(b):
3030
"lib/libextra-*.so",
3131
"lib/librustc-*.so",
3232
"lib/libsyntax-*.so",
33+
"lib/librustuv-*.so",
3334
"lib/librustrt.so",
3435
"lib/librustllvm.so"],
3536
"macos": ["bin/rustc",
3637
"lib/libstd-*.dylib",
3738
"lib/libextra-*.dylib",
3839
"lib/librustc-*.dylib",
3940
"lib/libsyntax-*.dylib",
41+
"lib/librustuv-*.dylib",
4042
"lib/librustrt.dylib",
4143
"lib/librustllvm.dylib"],
4244
"winnt": ["bin/rustc.exe",
4345
"bin/std-*.dll",
4446
"bin/extra-*.dll",
4547
"bin/rustc-*.dll",
4648
"bin/syntax-*.dll",
49+
"bin/rustuv-*.dll",
4750
"bin/rustrt.dll",
4851
"bin/rustllvm.dll"],
4952
"freebsd": ["bin/rustc",
5053
"lib/libstd-*.so",
5154
"lib/libextra-*.so",
5255
"lib/librustc-*.so",
5356
"lib/libsyntax-*.so",
57+
"lib/librustuv-*.so",
5458
"lib/librustrt.so",
5559
"lib/librustllvm.so"]
5660
}

0 commit comments

Comments
 (0)