add rust support to make flow rust
authorAnselm Busse <mail@anselm-busse.de>
Thu, 6 Aug 2015 11:44:42 +0000 (13:44 +0200)
committerAnselm Busse <mail@anselm-busse.de>
Thu, 6 Aug 2015 11:44:42 +0000 (13:44 +0200)
Makefile
scripts/Makefile.build
scripts/Makefile.lib

index 6115b2b..a7c4601 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -328,6 +328,7 @@ AS          = $(CROSS_COMPILE)as
 LD             = $(CROSS_COMPILE)ld
 CC             = $(CROSS_COMPILE)gcc
 CPP            = $(CC) -E
+RS             = $(CROSS_COMPILE)rustc
 AR             = $(CROSS_COMPILE)ar
 NM             = $(CROSS_COMPILE)nm
 STRIP          = $(CROSS_COMPILE)strip
@@ -387,7 +388,7 @@ KERNELVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(S
 
 export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION
 export ARCH SRCARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC
-export CPP AR NM STRIP OBJCOPY OBJDUMP
+export CPP RS AR NM STRIP OBJCOPY OBJDUMP
 export MAKE AWK GENKSYMS INSTALLKERNEL PERL UTS_MACHINE
 export HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS
 
@@ -1371,6 +1372,8 @@ endif
        $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
 %.symtypes: %.c prepare scripts FORCE
        $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
+%.o: %.rs
+       $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
 
 # Modules
 /: prepare scripts FORCE
index 0e801c3..ec63b4b 100644 (file)
@@ -322,6 +322,21 @@ quiet_cmd_cc_lst_c = MKLST   $@
 $(obj)/%.lst: $(src)/%.c FORCE
        $(call if_changed_dep,cc_lst_c)
 
+# Compile rust sources (.rs)
+# ---------------------------------------------------------------------------
+
+#modkern_aflags := $(KBUILD_AFLAGS_KERNEL) $(AFLAGS_KERNEL)
+
+#$(real-objs-m)      : modkern_aflags := $(KBUILD_AFLAGS_MODULE) $(AFLAGS_MODULE)
+#$(real-objs-m:.o=.s): modkern_aflags := $(KBUILD_AFLAGS_MODULE) $(AFLAGS_MODULE)
+
+quiet_cmd_rs_o_rs = RS $(quiet_modtag)  $@
+cmd_rs_o_rs       = $(RS) $(rs_flags) --crate-type lib -o $@ $<
+
+$(obj)/%.o: $(src)/%.rs FORCE
+       $(call cmd,rs_o_rs)
+
+
 # Compile assembler sources (.S)
 # ---------------------------------------------------------------------------
 
index 07125e6..0baff5a 100644 (file)
@@ -154,6 +154,8 @@ a_flags        = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(LINUXINCLUDE)     \
 cpp_flags      = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(LINUXINCLUDE)     \
                 $(__cpp_flags)
 
+rs_flags       = -O -C code-model=kernel -C relocation-model=static --emit obj
+
 ld_flags       = $(LDFLAGS) $(ldflags-y)
 
 dtc_cpp_flags  = -Wp,-MD,$(depfile) -nostdinc                            \