llvm-project-rustc: Rust-Lang Enhanced/Specifc LLVM 14.0.0#18322
llvm-project-rustc: Rust-Lang Enhanced/Specifc LLVM 14.0.0#18322Grommish wants to merge 1 commit into
Conversation
Rust is a multi-paradigm, general-purpose programming language designed for performance and safety, especially safe concurrency. It is syntactically similar to C++, but can guarantee memory safety by using a borrow checker to validate references. This introduces support for an external rust-specific LLVM toolchain. This update introduces the following target tuples: mips64-openwrt-linux-musl (upstreamed) mips-openwrt-linux-musl mipsel-openwrt-linux-musl aarch64-openwrt-linux-musl arm-openwrt-linux-muslgnueabi arm-openwrt-linux-muslgnueabihf armv5-openwrt-linux-muslgnueabi armv7-openwrt-linux-muslgnueabi armv7-openwrt-linux-muslgnueabihf Initial testing and support for: powerpc64-openwrt-linux-musl x86_64-openwrt-linux-musl The HOST and TARGET Tuples are stored in staging_dir/host and will survive make clean and various rebuilds for persistence. Requires commit openwrt#18322 Signed-off-by: Donald Hoskins <grommish@gmail.com>
|
Before someone asks, no, we cannot use the OpenWrt eBPF LLVM toolchain for this. Not only is the eBPF LLVM toolchain only building for eBPF, but we need the rust enhanced LLVM (and mine supports AArch64, ARM, Mips, PowerPC, and X86) |
This info should be in the commit message then |
192961c to
015deed
Compare
|
|
|
Due to the way rust-lang llvm-project is branched, with no release PKG_MIRROR_HASH is intentionally left as "skip" because no tarball |
Do you have a |
there isn't any |
That is like the second to last step in the package.
|
for now I leave rust. I've tried twice |
|
Right, that is in You error'd on the last step (https://github.com/openwrt/packages/pull/18322/files#diff-b4e31a91efc8abfddf3de0eabf84c13e8ea2b8fb3ab64cb216df28c4b5a8401fR88) and you're saying it isn't there. What steps did you do? I've built out LLVM twice today, the rust HOST toolchain 3 times, and several target toolchains (working on testing ARM11MPCORE and ARMv6 arm1176jzf-s) |
strange I didn't commit and didn't change the makefile |
Did you pull down the change the PR that removes the pre-packed archive in exchange for the cloned repo that I pushed earlier today? |
You need to build from source. I've never used the SDK and/or Imagebuilder, so I have no idea if it works or not (and suspect not however). |
it should work because llvm-project-rustc is in packages/devel |
Can you try the And can you verify you have |
I will redo it. i will tell you |
I'm building out LLVM right now from a I'll have to let you know if I hit an error, but I suspect if I don't it has to do with building from the SDK rather than source. I'll check back when it's done. |
https://github.com/openwrtfirmwarecostum/su/blob/main/Screenshot_2022-04-20_151218.jpg |
Can you scroll up and show the error as to why it failed? |
-- Up-to-date: /home/ubuntu/openwrt/staging_dir/hostpkg/lib/cmake/llvm/./CheckCompilerVersion.cmake |
|
there is no llvm-rust-14.0.0.Linux-x86_64 folder in llvm-project-rustc-14.0.0-2022-03-22 folder |
No, as I told you prior, I only build from source on Edit: In theory, there should be no reason you couldn't build out |
naturally you don't get an error you don't try it. for the master branch I don't use it for my daily use |
Understandable, but this package will never be backported to 21.xx or 22.xx. Those branches for Openwrt and Packages are locked except for security updates (or will be in the case of 22.xx by the time this is anywhere near ready).. Rust-lang will never be officially supported in those version, nor LLVM. I cannot burn time on something that will never be accepted into the repo. You are welcome to try and make it work, if you'd like, but I cannot at this time |
|
although this is not accepted in openwrt but we can manage rust so that it can be installed in openwrt. over time openwrt users need this. I really appreciate your work |
|
i understand now llvm is on master and openwrt 22.03.x. so now i will wait for 22.03.x stable release. thanks wtf moments.... hehe |
|
The LLVM package that you are referring to is for the eBPF toolchain and
will not work with rust.
…On Wed, Apr 20, 2022, 5:32 AM openwrtfirmwarecostum < ***@***.***> wrote:
@Grommish <https://github.com/Grommish>
i understand now llvm is on master and openwrt 22.03.x. so now i will wait
for 22.03.x stable release. thanks
wtf moments.... hehe
—
Reply to this email directly, view it on GitHub
<#18322 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABBY6JQLJI4CY3FTXZZX5TDVF7FMNANCNFSM5TVDODWA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
I mean the error is because openwrt 21.02 doesn't support llvm-bpf and I see the makefile in your rust is the same as the makefile in llvm-bpf |
You can use the hash from the tarball created locally; it should be identical to the tarball created by buildbots.
AFAIK buildbots use the SDKs to build packages. There are also snapshot SDKs built from master, I believe once a day. |
Thanks! In researching the issue with rust-lang llvm-project branch, they date their branches, but then push updates (while not generating release tarballs), I ran across other issues reported where the |
As part of building a package using a git checkout (instead of downloading a source tarball), buildroot will also create a tar.xz archive of the source code it downloaded. The archive should be in your "dl" directory, probably named "llvm-project-rustc-14.0.tar.xz". The sha256 hash of this file is the value for Buildroot can also fill in the value for you if you do: |
in building/linking rust-lang projects. We cannot use the existing OpenWrt eBPF LLVM toolchain for this. The eBPF LLVM toolchain only builds for eBPF, but we need the rust enhanced LLVM and support for AArch64, ARM, Mips, PowerPC, and X86. This LLVM is stored/preserved in staging_dir/host/llvm-rust and carries over a clean, requiring only a build once situation (unless the LLVM changes, or staging_dir gets removed). Used/Required for openwrt#18322 Signed-off-by: Donald Hoskins <grommish@gmail.com>
860bf63 to
c4cebe3
Compare
This is the rust enhanced/specific LLVM 14.0.0 toolchain, used in building/linking rust-lang projects. We cannot use the existing OpenWrt eBPF LLVM toolchain for this. The eBPF LLVM toolchain only builds for eBPF, but we need the rust enhanced LLVM and support for AArch64, ARM, Mips, PowerPC, and X86. This LLVM is stored/preserved in staging_dir/host/llvm-rust and carries over a clean, requiring only a build once situation (unless the LLVM changes, or staging_dir gets removed). Used/Required for openwrt#18322 Signed-off-by: Donald Hoskins <grommish@gmail.com>
c4cebe3 to
81151da
Compare
Rust-lang toolchain is divided into two separate parts: Build HOST and TARGET toolchains. The HOST toolchain is persistent in STAGING_DIR_HOST and compiled rustc/cargo for use by the TARGET toolchains which require MUSL specific tags. This package requires the rust specific LLVM (openwrt#18322) PR to build and is a dependent for rust-lang TARGET toolchain (openwrt#13916) Signed-off-by: Donald Hoskins <grommish@gmail.com>
Rust is a multi-paradigm, general-purpose programming language designed for performance and safety, especially safe concurrency. It is syntactically similar to C++, but can guarantee memory safety by using a borrow checker to validate references. This introduces support for an external rust-specific LLVM toolchain. This update introduces the following target tuples: mips64-openwrt-linux-musl (upstreamed) mips-openwrt-linux-musl mipsel-openwrt-linux-musl aarch64-openwrt-linux-musl arm-openwrt-linux-muslgnueabi arm-openwrt-linux-muslgnueabihf armv5tej-openwrt-linux-muslgnueabi armv6k-openwrt-linu8x-muslgnueabi armv7-openwrt-linux-muslgnueabi armv7-openwrt-linux-muslgnueabihf This PR requires/depends on the rust-lang specific LLVM (openwrt#18322) and rust-lang rust_host (openwrt#18453) Initial testing and support for: powerpc64-openwrt-linux-musl x86_64-openwrt-linux-musl Signed-off-by: Donald Hoskins <grommish@gmail.com>
This is the rust enhanced/specific LLVM 14.0.0 toolchain, used in building/linking rust-lang projects. We cannot use the existing OpenWrt eBPF LLVM toolchain for this. The eBPF LLVM toolchain only builds for eBPF, but we need the rust enhanced LLVM and support for AArch64, ARM, Mips, PowerPC, and X86. This LLVM is stored/preserved in staging_dir/host/llvm-rust and carries over a clean, requiring only a build once situation (unless the LLVM changes, or staging_dir gets removed). Signed-off-by: Donald Hoskins <grommish@gmail.com>
81151da to
2509795
Compare
bandwhich is a terminal bandwidth monitoring utility This package requires llvm-project-rustc (openwrt#18322), rust_host (openwrt#18453) and rust-lang (openwrt#13916) Signed-off-by: Donald Hoskins <grommish@gmail.com>
bandwhich is a terminal bandwidth monitoring utility This package requires llvm-project-rustc (openwrt#18322), rust_host (openwrt#18453) and rust-lang (openwrt#13916) Signed-off-by: Donald Hoskins <grommish@gmail.com>
bottom is a CLI graphical process/system monitor. This package requires llvm-project-rustc (openwrt#18322), rust_host (openwrt#18453) and rust-lang (openwrt#13916) Signed-off-by: Donald Hoskins <grommish@gmail.com>
Ripgrep recursively searches directories for a regex pattern while respecting your gitignore This package requires llvm-project-rustc (openwrt#18322), rust_host (openwrt#18453) and rust-lang (openwrt#13916) Signed-off-by: Donald Hoskins <grommish@gmail.com>
Move rust-host PR (openwrt#18453) into existing rust-lang PR for cleanliness issues. This adds powerpc-openwrt-linux-musl support Still requires LLVM-Project-Rustc (openwrt#18322) Signed-off-by: Donald Hoskins <grommish@gmail.com>
Rust is a multi-paradigm, general-purpose programming language designed for performance and safety, especially safe concurrency. It is syntactically similar to C++, but can guarantee memory safety by using a borrow checker to validate references. This introduces support for an external rust-specific LLVM toolchain. This update introduces the following target tuples: mips64-openwrt-linux-musl (upstreamed) mips-openwrt-linux-musl mipsel-openwrt-linux-musl aarch64-openwrt-linux-musl arm-openwrt-linux-muslgnueabi arm-openwrt-linux-muslgnueabihf armv5tej-openwrt-linux-muslgnueabi armv6k-openwrt-linu8x-muslgnueabi armv7-openwrt-linux-muslgnueabi armv7-openwrt-linux-muslgnueabihf This PR requires/depends on the rust-lang specific LLVM (openwrt#18322) and rust-lang rust_host (openwrt#18453) Initial testing and support for: powerpc64-openwrt-linux-musl x86_64-openwrt-linux-musl Signed-off-by: Donald Hoskins <grommish@gmail.com>
Move rust-host PR (openwrt#18453) into existing rust-lang PR for cleanliness issues. This adds powerpc-openwrt-linux-musl support Still requires LLVM-Project-Rustc (openwrt#18322) Signed-off-by: Donald Hoskins <grommish@gmail.com>
|
Closed - Rolled into #13916 |
Rust is a multi-paradigm, general-purpose programming language designed for performance and safety, especially safe concurrency. It is syntactically similar to C++, but can guarantee memory safety by using a borrow checker to validate references. This introduces support for an external rust-specific LLVM toolchain. This update introduces the following target tuples: mips64-openwrt-linux-musl (upstreamed) mips-openwrt-linux-musl mipsel-openwrt-linux-musl aarch64-openwrt-linux-musl arm-openwrt-linux-muslgnueabi arm-openwrt-linux-muslgnueabihf armv5tej-openwrt-linux-muslgnueabi armv6k-openwrt-linu8x-muslgnueabi armv7-openwrt-linux-muslgnueabi armv7-openwrt-linux-muslgnueabihf This PR requires/depends on the rust-lang specific LLVM (openwrt#18322) and rust-lang rust_host (openwrt#18453) Initial testing and support for: powerpc64-openwrt-linux-musl x86_64-openwrt-linux-musl Signed-off-by: Donald Hoskins <grommish@gmail.com>
Move rust-host PR (openwrt#18453) into existing rust-lang PR for cleanliness issues. This adds powerpc-openwrt-linux-musl support Still requires LLVM-Project-Rustc (openwrt#18322) Signed-off-by: Donald Hoskins <grommish@gmail.com>
Rust is a multi-paradigm, general-purpose programming language designed for performance and safety, especially safe concurrency. It is syntactically similar to C++, but can guarantee memory safety by using a borrow checker to validate references. This introduces support for an external rust-specific LLVM toolchain. This update introduces the following target tuples: mips64-openwrt-linux-musl (upstreamed) mips-openwrt-linux-musl mipsel-openwrt-linux-musl aarch64-openwrt-linux-musl arm-openwrt-linux-muslgnueabi arm-openwrt-linux-muslgnueabihf armv5tej-openwrt-linux-muslgnueabi armv6k-openwrt-linu8x-muslgnueabi armv7-openwrt-linux-muslgnueabi armv7-openwrt-linux-muslgnueabihf This PR requires/depends on the rust-lang specific LLVM (openwrt#18322) and rust-lang rust_host (openwrt#18453) Initial testing and support for: powerpc64-openwrt-linux-musl x86_64-openwrt-linux-musl Signed-off-by: Donald Hoskins <grommish@gmail.com>
Move rust-host PR (openwrt#18453) into existing rust-lang PR for cleanliness issues. This adds powerpc-openwrt-linux-musl support Still requires LLVM-Project-Rustc (openwrt#18322) Signed-off-by: Donald Hoskins <grommish@gmail.com>




This is the rust enhanced/specific LLVM 14.0.0 toolchain, used
in building/linking rust-lang projects.
We cannot use the existing OpenWrt eBPF LLVM toolchain for this.
The eBPF LLVM toolchain only builds for eBPF, but we need the
rust enhanced LLVM and support for AArch64, ARM, Mips, PowerPC,
and X86.
This LLVM is stored/preserved in staging_dir/host/llvm-rust and
carries over a clean, requiring only a build once situation
(unless the LLVM changes, or staging_dir gets removed).
Used/Required for #13916
Signed-off-by: Donald Hoskins grommish@gmail.com