Loading Documentation/rust/arch-support.rst +7 −6 Original line number Diff line number Diff line Loading @@ -12,10 +12,11 @@ which uses ``libclang``. Below is a general summary of architectures that currently work. Level of support corresponds to ``S`` values in the ``MAINTAINERS`` file. ============ ================ ============================================== ============= ================ ============================================== Architecture Level of support Constraints ============ ================ ============================================== ============= ================ ============================================== ``loongarch`` Maintained - ``um`` Maintained ``x86_64`` only. ``x86`` Maintained ``x86_64`` only. ============ ================ ============================================== ============= ================ ============================================== arch/loongarch/Kconfig +1 −0 Original line number Diff line number Diff line Loading @@ -140,6 +140,7 @@ config LOONGARCH select HAVE_REGS_AND_STACK_ACCESS_API select HAVE_RETHOOK select HAVE_RSEQ select HAVE_RUST select HAVE_SAMPLE_FTRACE_DIRECT select HAVE_SAMPLE_FTRACE_DIRECT_MULTI select HAVE_SETUP_PER_CPU_AREA if NUMA Loading arch/loongarch/Makefile +3 −0 Original line number Diff line number Diff line Loading @@ -81,8 +81,11 @@ KBUILD_AFLAGS_MODULE += -Wa,-mla-global-with-abs KBUILD_CFLAGS_MODULE += -fplt -Wa,-mla-global-with-abs,-mla-local-with-abs endif KBUILD_RUSTFLAGS_MODULE += -Crelocation-model=pic ifeq ($(CONFIG_RELOCATABLE),y) KBUILD_CFLAGS_KERNEL += -fPIE KBUILD_RUSTFLAGS_KERNEL += -Crelocation-model=pie LDFLAGS_vmlinux += -static -pie --no-dynamic-linker -z notext $(call ld-option, --apply-dynamic-relocs) endif Loading scripts/generate_rust_target.rs +7 −0 Original line number Diff line number Diff line Loading @@ -161,6 +161,13 @@ fn main() { ts.push("features", features); ts.push("llvm-target", "x86_64-linux-gnu"); ts.push("target-pointer-width", "64"); } else if cfg.has("LOONGARCH") { ts.push("arch", "loongarch64"); ts.push("data-layout", "e-m:e-p:64:64-i64:64-i128:128-n64-S128"); ts.push("features", "-f,-d"); ts.push("llvm-target", "loongarch64-linux-gnusf"); ts.push("llvm-abiname", "lp64s"); ts.push("target-pointer-width", "64"); } else { panic!("Unsupported architecture"); } Loading Loading
Documentation/rust/arch-support.rst +7 −6 Original line number Diff line number Diff line Loading @@ -12,10 +12,11 @@ which uses ``libclang``. Below is a general summary of architectures that currently work. Level of support corresponds to ``S`` values in the ``MAINTAINERS`` file. ============ ================ ============================================== ============= ================ ============================================== Architecture Level of support Constraints ============ ================ ============================================== ============= ================ ============================================== ``loongarch`` Maintained - ``um`` Maintained ``x86_64`` only. ``x86`` Maintained ``x86_64`` only. ============ ================ ============================================== ============= ================ ==============================================
arch/loongarch/Kconfig +1 −0 Original line number Diff line number Diff line Loading @@ -140,6 +140,7 @@ config LOONGARCH select HAVE_REGS_AND_STACK_ACCESS_API select HAVE_RETHOOK select HAVE_RSEQ select HAVE_RUST select HAVE_SAMPLE_FTRACE_DIRECT select HAVE_SAMPLE_FTRACE_DIRECT_MULTI select HAVE_SETUP_PER_CPU_AREA if NUMA Loading
arch/loongarch/Makefile +3 −0 Original line number Diff line number Diff line Loading @@ -81,8 +81,11 @@ KBUILD_AFLAGS_MODULE += -Wa,-mla-global-with-abs KBUILD_CFLAGS_MODULE += -fplt -Wa,-mla-global-with-abs,-mla-local-with-abs endif KBUILD_RUSTFLAGS_MODULE += -Crelocation-model=pic ifeq ($(CONFIG_RELOCATABLE),y) KBUILD_CFLAGS_KERNEL += -fPIE KBUILD_RUSTFLAGS_KERNEL += -Crelocation-model=pie LDFLAGS_vmlinux += -static -pie --no-dynamic-linker -z notext $(call ld-option, --apply-dynamic-relocs) endif Loading
scripts/generate_rust_target.rs +7 −0 Original line number Diff line number Diff line Loading @@ -161,6 +161,13 @@ fn main() { ts.push("features", features); ts.push("llvm-target", "x86_64-linux-gnu"); ts.push("target-pointer-width", "64"); } else if cfg.has("LOONGARCH") { ts.push("arch", "loongarch64"); ts.push("data-layout", "e-m:e-p:64:64-i64:64-i128:128-n64-S128"); ts.push("features", "-f,-d"); ts.push("llvm-target", "loongarch64-linux-gnusf"); ts.push("llvm-abiname", "lp64s"); ts.push("target-pointer-width", "64"); } else { panic!("Unsupported architecture"); } Loading