Skip to content

Commit 52f42f1

Browse files
committed
auto merge of #10058 : alexcrichton/rust/uv-crate, r=brson
This is one of the final steps needed to complete #9128. It still needs a little bit of polish before closing that issue, but it's in a pretty much "done" state now. The idea here is that the entire event loop implementation using libuv is now housed in `librustuv` as a completely separate library. This library is then injected (via `extern mod rustv`) into executable builds (similarly to how libstd is injected, tunable via `#[no_uv]`) to bring in the "rust blessed event loop implementation." Codegen-wise, there is a new `event_loop_factory` language item which is tagged on a function with 0 arguments returning `~EventLoop`. This function's symbol is then inserted into the crate map for an executable crate, and if there is no definition of the `event_loop_factory` language item then the value is null. What this means is that embedding rust as a library in another language just got a little harder. Libraries don't have crate maps, which means that there's no way to find the event loop implementation to spin up the runtime. That being said, it's always possible to build the runtime manually. This request also makes more runtime components public which should probably be public anyway. This new public-ness should allow custom scheduler setups everywhere regardless of whether you follow the `rt::start `path.
2 parents e6650c8 + 201cab8 commit 52f42f1

37 files changed

+7128
-186
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)