Skip Navigation

InitialsDiceBearhttps://github.com/dicebear/dicebearhttps://creativecommons.org/publicdomain/zero/1.0/„Initials” (https://github.com/dicebear/dicebear) by „DiceBear”, licensed under „CC0 1.0” (https://creativecommons.org/publicdomain/zero/1.0/)A
Posts
5
Comments
8
Joined
2 yr. ago

  • Well, we can generate code for targets not supported by LLVM, but it is not trivial to setup (we hope to get rustup support in the coming months to make this easier) and most GCC targets won't pass as many tests as x86-64 with rustc_codegen_gcc. There's some info in the wiki about some targets that people tried.

    It is an optional goal for the Google Summer of Code to bootstrap the rust compiler on other platforms, so we might be able to get a working rustc for new platforms by the end of the summer.

  • Oh, sorry for the confusion: this is about rustc_codegen_gcc which is a codegen plugin for rustc that uses libgccjit to generate the object files via GCC instead of LLVM, so it still requires rustc. There's another project that is a GCC frontend, called gccrs. Also, bootstrap is overloaded: in this case, a full bootstrap means that we can compile the Rust compiler with rustc_codegen_gcc, producing a stage-2 compiler, then recompile the Rust compiler with this stage-2 compiler to get a stage-3 compiler and those 2 compares as equal.

  • What do you think it means?

  • Rust @programming.dev

    rustc_codegen_gcc: Progress Report #36

    blog.antoyo.xyz /rustc_codegen_gcc-progress-report-36
  • It does actually clean everything. You need to call ./y.sh prepare again if you ran clean all; otherwise, it will fail to find some stuff like rustc-std-workspace-alloc.

    I opened an issue to improve the documentation in this regards. Thanks for testing all this: this will help me improve the documentation.

  • The setup to be able to use LTO is non-trivial for now (I hope to be able to fix this soon so that liblto_plugin.so is not required for the case where a linker plugin wasn't not asked by the user, which is the default).

    You need to have in your path the gcc built with the same version as libgccjit, which contains libexec/gcc/x86_64-pc-linux-gnu/15.0.0/liblto_plugin.so.

  • The issue here is that you didn't provide --build-sysroot to ./y.sh test --release, so it cannot find the std crate.

  • Thanks for reporting this! I cannot reproduce with the following:

     
        
    y prepare
    y build --release
    y build
    y clean all
    
    
      

    (it shows: Successfully ran clean all)

    Could you please provide the commands you ran to get this? (It might also be easier for me to track this if you open an issue on GitHub since I don't come here often.)

    Also, thanks for the suggestion for better documentation: I created an issue for this.

  • Rust @programming.dev

    rustc_codegen_gcc: Progress Report #35

    blog.antoyo.xyz /rustc_codegen_gcc-progress-report-35