Age | Commit message (Collapse) | Author | Files | Lines |
|
Document prerequisites on Testing
|
|
Some glibc tests like tst-unwind-{main,ctor} depends on stage2 artifacts
(in particular, GCC runtime libs) to be properly installed. Add stage2
dependencies to avoid these tests from spuriously failing.
The test suite also uses the simulator and Deja GNU, both of which were
not declared as dependencies, so add them as well.
Closes: https://github.com/riscv-collab/riscv-gnu-toolchain/issues/1379
|
|
pyelftools is required for a helper script.
This commit adds basic installation guide to install pyelftools and
removes "automatic installation" of pyelftools from Makefile.
|
|
Inject CPU options to spike run test from elf file
|
|
As we have quotes surround the argument already, it is unnecessary
to ESC `;` to `\;` due to the `;` has special meanings in shell.
Signed-off-by: Pan Li <pan2.li@intel.com>
|
|
Signed-off-by: Pan Li <pan2.li@intel.com>
|
|
Signed-off-by: Pan Li <pan2.li@intel.com>
|
|
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: Pan Li <pan2.li@intel.com>
|
|
|
|
Add --with-extra-multilib-test option
|
|
|
|
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.
|
|
https://github.com/riscv-collab/riscv-gnu-toolchain/pull/1283#discussion_r1244960843
|
|
|
|
Update readme about newlib toolchain flow
Co-authored-by: Yun Hsiang <yun.hsiang@sifive.com>
|
|
|
|
Bump llvm to 16.0.5
|
|
Update readme about llvm & qemu examples
Co-authored-by: Kito Cheng <kito.cheng@sifive.com>
|
|
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: Christoph Müllner <christoph.muellner@vrull.eu>
|
|
Quick fix sim pk build failure for RV32.
|
|
Enhance the testing experience
|
|
Signed-off-by: Florian Hofhammer <florian.hofhammer@fhofhammer.de>
|
|
Makefile.in has support for running the regression test suite of
Binutils, GCC and others. Let's add support for running glibc tests.
To run the tests the following command can be used:
make check-glibc-linux
Tested with linux/rv64.
Signed-off-by: Christoph Müllner <christoph.muellner@vrull.eu>
|
|
This allows to specify the test cases to be run.
For example the following command can be used to restrict the testcases
that will be executed to zb*.c and sm*.c from the directory
`gcc/testsuite/gcc.target/riscv/` (which includes the file `riscv.exp`):
RUNTESTFLAGS="riscv.exp=zb*.c\ sm*.c" make report
Signed-off-by: Christoph Müllner <christoph.muellner@vrull.eu>
|
|
We should not encourage people to call "sudo make".
Let's drop that recommendation in case of permission errors.
Signed-off-by: Christoph Müllner <christoph.muellner@vrull.eu>
|
|
dejagnu still defaults to 1.6 from the (already archived)
riscv-dejagnu repo. Let's bump the version to 1.6.3
and use the upstream git repo instead.
Signed-off-by: Christoph Müllner <christoph.muellner@vrull.eu>
|
|
* Use arch=rv32imafdc and abi=ilp32f.
* Looks gnu gcc doesn't honor rv32gc and ilp32d.
Signed-off-by: Pan Li <pan2.li@intel.com>
|
|
* The riscv-pk repo can only be built by rv32i.
* Change configure to rv32i to make SIM=spike option happy for multilib.
Signed-off-by: Pan Li <pan2.li@intel.com>
|
|
- Parse that from `--with-arch=` option
|
|
|
|
I'm trying to clean up some of my test scripts, and one issue is that
I've got two QEMU builds: one for user-mode emulation and one for
system-mode emulation. This adds an autoconf flag that allows me to
avoid the duplication.
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
|
|
This lets users select whether or not to build libsanitizer, which
currently does not support rv32 and thus can't be enabled by default.
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
|
|
Add --with-isa-spec option to configure
|
|
Rename glibc, newlib submodules and add musl submodule
|
|
Set the default version to 2.2 for now, and once we bump to GCC 12 we
will bump that to 20191213.
|
|
|
|
The upstream musl libc does not support 32bit RISC-V builds.
We therefore only allow building the 64bit version (i.e.,
riscv64-unknown-linux-musl-).
Signed-off-by: Florian Hofhammer <florian.hofhammer@fhofhammer.de>
|
|
This patch introduces a configure-time source-dir override for QEMU
similar to the existing overrides for the other toolchain sources.
Signed-off-by: Christoph Muellner <cmuellner@linux.com>
|
|
gcc: add source SHA1 which shows up in -v
|
|
We set CXX=riscv64-unknown-linux-gnu-g++ (or something like that) when
building glibc, but don't actually build a C++ compiler during stage 1.
Under normal conditions this shouldn't cause any issues: that's either a
working compiler (from PATH) or doesn't exist, in which case glibc's
build scripts do the right thing and turn off C++. Unfortunately I'm in
the pathological situation of having a slightly-incompatible g++ in
PATH, which glibc then attempts to use only to throw an error when
linking (glibc isn't testing that much of the C++ toolchain, see
<https://sourceware.org/bugzilla/show_bug.cgi?id=24183>).
This simply sets CXX to something that's unlikely to exist during the
glibc build, so the build scripts don't get confused. I tried setting
this to false, but everything was italic.
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
|
|
This helps identify the exact sources used for building the compiler.
| riscv64-unknown-linux-gnu-gcc -v
|
| Before: gcc version 11.1.0 (GCC)
| After : gcc version 11.1.0 (g480822473a4a)
Signed-off-by: Vineet Gupta <vineetg@rivosinc.com>
|
|
The variable MULTLIB_NAMES does not exist but is used when
generating the dependencies for the target build-libc for glibc.
Even when adding the missing 'I' (for MULTILIB_NAMES) there is
still no variable with this name.
So the whole dependency generation is useless, becauese it was not
needed so far. Looking into detail why it is so, we can find the
answer in the dependency list of the target 'stamps/build-gcc-linux-stage2'.
Let's fix this by setting the dependencies for build-libc right.
The dependencies for 'stamps/build-gcc-linux-stage2' stay as they are
not wrong.
Fixes: 3456b66f69 ("Add a "make report" phony target")
Signed-off-by: Christoph Muellner <cmuellner@linux.com>
|
|
Otherwise, this code breaks if riscv-gnu-toolchain is itself a
submodule of another project. In that case the git config for this
tree will be $(srcdir)/../.git/modules/riscv-gnu-toolchain/config.
|
|
- It's too new to use, that require git 2.26+
|
|
- So that we can build and clone in parallel.
|
|
- Current script will only handle first 2 items in
`--with-multilib-generator=`.
|
|
This allows building the musl-based toolchain again, tested
with the latest stable version of musl-libc.
|
|
|
|
- This issue is report by Nelson.
- Don't using build-sim as dependency, it will cause the Make always
rebuild.
|
|
|