3
3
# Where to place rustdoc generated documentation
4
4
rustdoc_output := $(objtree ) /Documentation/output/rust/rustdoc
5
5
6
- obj-$(CONFIG_RUST) += core.o compiler_builtins.o
6
+ obj-$(CONFIG_RUST) += core.o compiler_builtins.o ffi.o
7
7
always-$(CONFIG_RUST) += exports_core_generated.h
8
8
9
9
# Missing prototypes are expected in the helpers since these are exported
@@ -103,10 +103,13 @@ rustdoc-core: $(RUST_LIB_SRC)/core/src/lib.rs FORCE
103
103
rustdoc-compiler_builtins : $(src ) /compiler_builtins.rs rustdoc-core FORCE
104
104
+$(call if_changed,rustdoc)
105
105
106
- rustdoc-kernel : private rustc_target_flags = \
106
+ rustdoc-ffi : $(src ) /ffi.rs rustdoc-core FORCE
107
+ +$(call if_changed,rustdoc)
108
+
109
+ rustdoc-kernel : private rustc_target_flags = --extern ffi \
107
110
--extern build_error --extern macros=$(objtree)/$(obj)/libmacros.so \
108
111
--extern bindings --extern uapi
109
- rustdoc-kernel : $(src ) /kernel/lib.rs rustdoc-core rustdoc-macros \
112
+ rustdoc-kernel : $(src ) /kernel/lib.rs rustdoc-core rustdoc-ffi rustdoc- macros \
110
113
rustdoc-compiler_builtins $(obj)/libmacros.so \
111
114
$(obj)/bindings.o FORCE
112
115
+$(call if_changed,rustdoc)
@@ -124,23 +127,28 @@ quiet_cmd_rustc_test_library = RUSTC TL $<
124
127
rusttestlib-build_error : $(src ) /build_error.rs FORCE
125
128
+$(call if_changed,rustc_test_library)
126
129
130
+ rusttestlib-ffi : $(src ) /ffi.rs FORCE
131
+ +$(call if_changed,rustc_test_library)
132
+
127
133
rusttestlib-macros : private rustc_target_flags = --extern proc_macro
128
134
rusttestlib-macros : private rustc_test_library_proc = yes
129
135
rusttestlib-macros : $(src ) /macros/lib.rs FORCE
130
136
+$(call if_changed,rustc_test_library)
131
137
132
- rusttestlib-kernel : private rustc_target_flags = \
138
+ rusttestlib-kernel : private rustc_target_flags = --extern ffi \
133
139
--extern build_error --extern macros \
134
140
--extern bindings --extern uapi
135
141
rusttestlib-kernel : $(src ) /kernel/lib.rs \
136
142
rusttestlib-bindings rusttestlib-uapi rusttestlib-build_error \
137
143
$(obj)/libmacros.so $(obj)/bindings.o FORCE
138
144
+$(call if_changed,rustc_test_library)
139
145
140
- rusttestlib-bindings : $(src ) /bindings/lib.rs FORCE
146
+ rusttestlib-bindings : private rustc_target_flags = --extern ffi
147
+ rusttestlib-bindings : $(src ) /bindings/lib.rs rusttestlib-ffi FORCE
141
148
+$(call if_changed,rustc_test_library)
142
149
143
- rusttestlib-uapi : $(src ) /uapi/lib.rs FORCE
150
+ rusttestlib-uapi : private rustc_target_flags = --extern ffi
151
+ rusttestlib-uapi : $(src ) /uapi/lib.rs rusttestlib-ffi FORCE
144
152
+$(call if_changed,rustc_test_library)
145
153
146
154
quiet_cmd_rustdoc_test = RUSTDOC T $<
@@ -160,7 +168,7 @@ quiet_cmd_rustdoc_test_kernel = RUSTDOC TK $<
160
168
mkdir -p $(objtree ) /$(obj ) /test/doctests/kernel; \
161
169
OBJTREE=$(abspath $(objtree ) ) \
162
170
$(RUSTDOC ) --test $(rust_flags ) \
163
- -L$(objtree ) /$(obj ) --extern kernel \
171
+ -L$(objtree ) /$(obj ) --extern ffi --extern kernel \
164
172
--extern build_error --extern macros \
165
173
--extern bindings --extern uapi \
166
174
--no-run --crate-name kernel -Zunstable-options \
@@ -198,9 +206,9 @@ rusttest-macros: $(src)/macros/lib.rs \
198
206
+$(call if_changed,rustc_test)
199
207
+$(call if_changed,rustdoc_test)
200
208
201
- rusttest-kernel : private rustc_target_flags = \
209
+ rusttest-kernel : private rustc_target_flags = --extern ffi \
202
210
--extern build_error --extern macros --extern bindings --extern uapi
203
- rusttest-kernel : $(src ) /kernel/lib.rs rusttestlib-kernel \
211
+ rusttest-kernel : $(src ) /kernel/lib.rs rusttestlib-ffi rusttestlib- kernel \
204
212
rusttestlib-build_error rusttestlib-macros rusttestlib-bindings \
205
213
rusttestlib-uapi FORCE
206
214
+$(call if_changed,rustc_test)
@@ -273,7 +281,7 @@ bindgen_c_flags_final = $(bindgen_c_flags_lto) -fno-builtin -D__BINDGEN__
273
281
quiet_cmd_bindgen = BINDGEN $@
274
282
cmd_bindgen = \
275
283
$(BINDGEN ) $< $(bindgen_target_flags ) \
276
- --use-core --with-derive-default --ctypes-prefix core:: ffi --no-layout-tests \
284
+ --use-core --with-derive-default --ctypes-prefix ffi --no-layout-tests \
277
285
--no-debug '.*' --enable-function-attribute-detection \
278
286
-o $@ -- $(bindgen_c_flags_final ) -DMODULE \
279
287
$(bindgen_target_cflags ) $(bindgen_target_extra )
@@ -401,18 +409,23 @@ $(obj)/compiler_builtins.o: $(src)/compiler_builtins.rs $(obj)/core.o FORCE
401
409
$(obj ) /build_error.o : $(src ) /build_error.rs $(obj ) /compiler_builtins.o FORCE
402
410
+$(call if_changed_rule,rustc_library)
403
411
412
+ $(obj ) /ffi.o : $(src ) /ffi.rs $(obj ) /compiler_builtins.o FORCE
413
+ +$(call if_changed_rule,rustc_library)
414
+
415
+ $(obj ) /bindings.o : private rustc_target_flags = --extern ffi
404
416
$(obj ) /bindings.o : $(src ) /bindings/lib.rs \
405
- $(obj)/compiler_builtins .o \
417
+ $(obj)/ffi .o \
406
418
$(obj)/bindings/bindings_generated.rs \
407
419
$(obj)/bindings/bindings_helpers_generated.rs FORCE
408
420
+$(call if_changed_rule,rustc_library)
409
421
422
+ $(obj ) /uapi.o : private rustc_target_flags = --extern ffi
410
423
$(obj ) /uapi.o : $(src ) /uapi/lib.rs \
411
- $(obj)/compiler_builtins .o \
424
+ $(obj)/ffi .o \
412
425
$(obj)/uapi/uapi_generated.rs FORCE
413
426
+$(call if_changed_rule,rustc_library)
414
427
415
- $(obj ) /kernel.o : private rustc_target_flags = \
428
+ $(obj ) /kernel.o : private rustc_target_flags = --extern ffi \
416
429
--extern build_error --extern macros --extern bindings --extern uapi
417
430
$(obj ) /kernel.o : $(src ) /kernel/lib.rs $(obj ) /build_error.o \
418
431
$(obj)/libmacros.so $(obj)/bindings.o $(obj)/uapi.o FORCE
0 commit comments