1. Apr 10, 2024
  2. Apr 05, 2024
  3. Feb 29, 2024
    • Christoph Müllner's avatar
      Add support to build a host GCC for building the toolchain · 19464804
      Christoph Müllner authored
      
      
      A significant amount of users of this project are using it for toolchain
      development. These users need to ensure that their code is warning free
      before submitting it upstream. Let's support this use case by adding a
      configure flag '--enable-host-gcc', which does exactly that:
      * build a host GCC before building other components
      * setting PATH such that this new GCC is used to build the cross
        toolchain
      * enable -Werror for the GCC build
      
      This patch was tested on a Fedora 39 machine (GCC 13),
      with the following modification in a GCC source file:
        #if __GNUC__ == 13
        #error Host compiler in use!
        #endif
      This fails when building without the new flag and does not fail
      when building with latest upstream/master (GCC 14 prerelease).
      
      The '--enable-werror-always' was tested with a warning that showed
      up recently in upstream GCC.
      
      Signed-off-by: default avatarChristoph Müllner <christoph.muellner@vrull.eu>
      19464804
  4. Nov 30, 2023
    • Tsukasa OI's avatar
      Document prerequisite on testing · c3bb5cae
      Tsukasa OI authored
      pyelftools is required for a helper script.
      
      This commit adds basic installation guide to install pyelftools and
      removes "automatic installation" of pyelftools from Makefile.
      c3bb5cae
  5. Nov 28, 2023
    • Pan Li's avatar
      Add OR operator for option '--with-extra-multilib-test' · 7e6696a6
      Pan Li authored
      
      
      This patch allows you provide the flags in build flags array acts on arch-abi
      __respectively__, you can use ',' to separate them. For example:
      
      `rv64gcv-lp64d:--param=riscv-autovec-lmul=dynamic,--param=riscv-autovec-preference=fixed-vlmax`
      
      will be consider as two target boards same as below:
      
      ```
      riscv-sim/-march=rv64gcv/-mabi=lp64d/-mcmodel=medlow/--param=riscv-autovec-preference=fixed-vlmax
      riscv-sim/-march=rv64gcv/-mabi=lp64d/-mcmodel=medlow/--param=riscv-autovec-lmul=dynamic
      ```
      
      However, you can also leverage AND(`:`), OR(`,`) operator together but the
      OR(`,`) will always have the higher priority. For example:
      
      `rv64gcv-lp64d:--param=riscv-autovec-lmul=dynamic:--param=riscv-autovec-preference=fixed-vlmax,--param=riscv-autovec-lmul=m2`
      
      will be consider as tow target boars same as below:
      
      ```
      riscv-sim/-march=rv64gcv/-mabi=lp64d/-mcmodel=medlow/--param=riscv-autovec-lmul=dynamic/--param=riscv-autovec-preference=fixed-vlmax
      riscv-sim/-march=rv64gcv/-mabi=lp64d/-mcmodel=medlow/--param=riscv-autovec-lmul=m2
      ```
      
      Signed-off-by: default avatarPan Li <pan2.li@intel.com>
      7e6696a6
  6. Nov 17, 2023
    • Pan Li's avatar
      Extend semantic for option '--with-extra-multilib-test' · c1ec5800
      Pan Li authored
      
      
      The `--with-extra-multilib-test` take the format like below for now.
      
      "<arch>-<abi>-[code-model][;<arch>-<abi>-[code-model]*"
      
      This patch would like to extend the sematic to support additional buil
      options for each combination. Aka:
      
      "<arch>-<abi>-[code-model][:opts]*[;<arch>-<abi>-[code-model][:opts]*]*"
      
      opts can be one or more build options splited by ':'. For example as
      below:
      
      * --param=riscv-autovec-lmul=m1
      * --param=riscv-autovec-lmul=dynamic:--param=riscv-autovec-preference=fixed-vlmax
      
      Thus the full example of the option `--with-extra-multilib-test` will be:
      
      `rv64gcv_zvl128b-lp64d:--param=riscv-autovec-lmul=m1;rv64gcv_zvl256b-lp64d:-
      -param=riscv-autovec-lmul=dynamic:--param=riscv-autovec-preference=fixed-vlmax`
      
      Signed-off-by: default avatarPan Li <pan2.li@intel.com>
      c1ec5800
  7. Aug 31, 2023
  8. Jul 11, 2023
    • Kito Cheng's avatar
      Add --with-extra-multilib-test option · 3b13360c
      Kito Cheng authored
      NOTE: This is toolchain developer facing feature.
      
      This allow user to add extra testing multi-lib arch, it's useful when
      develop and/or testing new extensions.
      
      Usage:
      
      --with-extra-multilib-test="arch-abi[;arch-abi]"
      
      e.g.
      
      linux enable enabled multilib, so default will build with follwoing
      configuration:
      
      lib32/ilp32;@march=rv32imac@mabi=ilp32
      lib32/ilp32d;@march=rv32imafdc@mabi=ilp32d
      lib64/lp64;@march=rv64imac@mabi=lp64
      lib64/lp64d;@march=rv64imafdc@mabi=lp64d
      
      But you want to testing more on vector stuffs like rv32gcv and rv64gcv,
      then you can configure with `--with-extra-multilib-test="rv32gcv-ilp32d;rv64gcv;lp64d"`
      
      Then the testing will run rv32imac-ilp32 rv32imafdc-ilp32d
      rv64imac-lp64 rv64imafdc-lp64d and rv32gcv-ilp32d;rv64gcv;lp64d!
      
      NOTE: Extra multilib test settings still require existing
      multilib has support those extra settings, e.g. you can't add
      rv32imafc_zbb-ilp32f on above example since no compatible multilib has
      provided.
      3b13360c
  9. Jun 13, 2023
  10. Jun 04, 2023
  11. Jun 01, 2023
  12. May 17, 2023
    • Christoph Müllner's avatar
      Add support to build LLVM/clang with C and C++ support · ea26fd6c
      Christoph Müllner authored
      
      
      We currently have a stale "llvm" branch, that does not build.
      However, there is clear demand in the RISC-V toolchain community
      for a working LLVM on top of a recent GNU toolchain.
      In order to build such a toolchain, quite some LLVM and clang know-how is
      required to avoid path issues at LLVM build time or later when using clang.
      The main purpose of this commit is to demonstrate a way to combine
      the RISC-V GNU toolchain repo with LLVM, with the intent to save
      others hours of frustration, debugging time or support time.
      
      Signed-off-by: default avatarChristoph Müllner <christoph.muellner@vrull.eu>
      ea26fd6c
  13. May 11, 2023
  14. Apr 20, 2023
  15. Feb 24, 2023
    • mga-sc's avatar
      [GCC]: Pass extra flags to gcc build. · c356c5d7
      mga-sc authored
      There is no way to pass extra flags to gcc though
      riscv-gnu-toolchain Makefile.
      
      This is neccesary for me, because I has to rewrite gmp,
      isl, mpfr, mpc folders in source of gcc project. Moreover,
      I don't want to rebuild them with gcc.
      
      Also I think, the opportunity to pass extra flags will be
      convenient for many development purposes.
      c356c5d7
  16. Feb 12, 2023
    • Mingzheng Xing's avatar
      Docs: Update README.md · 02eeb624
      Mingzheng Xing authored
      
      
      This patch contains three minor updates:
      1. Added texinfo to OS X dependency package
      2. Brew tap discoteq/discoteq is no longer required to install the flock
      3. Added tip in "Installation (Newlib)" to keep similar to the description
         in "Installation (Linux)" and fixed a typo.
      
      Signed-off-by: default avatarMingzheng Xing <xingmingzheng@iscas.ac.cn>
      02eeb624
  17. Jan 19, 2023
  18. Dec 16, 2022
  19. Oct 11, 2022
  20. Oct 10, 2022
  21. May 23, 2022
  22. Apr 11, 2022
  23. Feb 24, 2022
  24. Feb 11, 2022
  25. Jan 15, 2022
  26. Sep 20, 2021
  27. Aug 06, 2021
  28. Mar 05, 2021
  29. Jan 07, 2021
  30. Jan 04, 2021
  31. Dec 29, 2020
    • ioannesKX's avatar
      Update README.md for clear instructions on multilib · 049a23d4
      ioannesKX authored
      The current README.md only explains how to use multilib on the Linux cross-compiler, but not on the Newlib one. This might create confusion as seen here https://github.com/riscv/riscv-tools/issues/287, or makes it seem like you can't multilib on Newlib. It's also the case that the multilib option is more common on embedded toolchains rather than on Linux, so I believe this small change on documentation should clear things up.
      049a23d4
  32. Dec 01, 2020
  33. Nov 29, 2020
  34. Nov 06, 2020
  35. Nov 04, 2020
  36. Aug 21, 2020
  37. Jul 28, 2020