Age | Commit message (Collapse) | Author | Files | Lines |
|
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
|
|
configure.ac included code which detects and inserted a full path
to dtc. Unfortunately, when building with a packaging system, this
path reflects the path under a staged building area.
Also the inclusion of a full path breaks the use case where someone
keeps two versions of dtc on their computer and sets their PATH to
switch between them. spike will continue to use the one on their PATH
when it was built rather than the intended one.
Co-authored-by: Joel Sherrill <joel@rtems.org>
|
|
Before this patch, I don't think it was possible to change (say)
CFLAGS as part of running the make command. Nor did setting them when
running configure do anything. Getting this right is a little fiddly:
for example, see Automake's approach at [1] ("AM_CFLAGS" and friends).
This patch adds an "mcppbs-" prefix, and sets things up properly for
CFLAGS, CPPFLAGS, CXXFLAGS and LDFLAGS. Note that the bulk of the
patch is either the auto-generated configure script or the ax_*.m4
files vendored in from the autoconf archive (needed to handle
--export-dynamic correctly without trashing settings from the user
running configure).
What's supposed to happen is as follows:
- Base compilation flags that should apply to everything (standard
optimisation flags, warning flags etc.) are defined in
Makefile.in.
- When the user runs configure, they can set compilation flags on
the command line. These end up as environment variables in the
shell script.
- Compilation flags that can only be decided when we run
configure (this is currently just whether we support
-Wl,--export-dynamic) are appended to the configure-time LDFLAGS
environment variable.
- At the end of the configure script, these environment variables
are spliced into Makefile.in to fill out the corresponding
@<varname>@ entries.
- When running make, the user might again override compilation
flags. These will get appended to the flags found so far.
As a concrete example:
mkdir build
cd build
../configure CXXFLAGS='-O3'
make CXXFLAGS='-O0'
will result in c++ compile commands that look like this:
g++ -MMD -MP \
-DPREFIX=\"/usr/local\" -Wall -Wno-unused -g -O2 -std=c++11 \
-O3 \
-O0 \
-I. -I.. -I../fesvr -I../riscv -I../dummy_rocc -I../softfloat \
-I../spike_main -fPIC -c ../fesvr/elfloader.cc
(I've added some newlines to wrap the long line).
Note that we have the base flags from Makefile.in (called
$(default-CXXFLAGS) there) first. Then we have the -O3 from the
configure command. Finally we have the -O0 from the Make command line.
And I can finally run "make CXXFLAGS='-O0 -g3'". Phew!
[1] https://www.gnu.org/software/automake/manual/html_node/Flag-Variables-Ordering.html
|
|
The check is not needed anymore since most vector kernels are supported
in current implemented vector instruction set.
|
|
To improve the readability of varch argument, the format of options within varch
are changed from "v128:e64:s512" to "vlen:128,elen:64,slen:512".
|
|
* Improve --varch error checking.
Print out why an option has problems.
Add check that elen must be >= xlen, flen, per the spec.
Since RV32G includes D by default, bump default elen to 64.
* Remove debug printf.
|
|
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
|
|
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
|
|
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
|
|
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
|
|
build with --enable-check-imple
run with --check-impl=1905 (or 1905 or future release)
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
|
|
Closes #326
|
|
|
|
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
|
|
|
|
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
|
|
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
|
|
we can change master now and remove the legacy default change
This reverts commit 55511de63160e99c82dba9a5edaa364876bcb5e0.
|
|
make is alwasy on
This reverts commit 5bb50ab2551c99d844d4dec541645e3f1a7527f5.
|
|
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
|
|
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
|
|
|
|
|
|
execution time
configuration: --with-vector ${VARCH_STR}
execution: --varch ${VARCH_STR}
VARCH_STR representation: v${VLEN in bits}:e${ELEN in bits}:s${SLEN in bits}
e.g.: v128:e32:s128
|
|
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
|
|
Fixes #107
|
|
Resolves #93
|
|
|
|
https://github.com/riscv/riscv-isa-manual/issues/14
|
|
|
|
|
|
|
|
Support for hwacha will continue on the ESP branch (see
https://github.com/ucb-bar/esp-isa-sim).
|
|
|
|
|
|
Default is RV64IMAFDC. Can do things like
--isa=RV32 (which implies IMAFDC)
--isa=IM (which implies RV64)
--isa=RV64IMAFDXhwacha
|
|
|
|
|
|
|
|
|
|
|
|
|
|
specifically, unused variables in auto-generated code.
|
|
Since we no longer are duplicating CFLAGS, ensure CPPFLAGS are set
correctly.
|
|
- Spits out all PCs (on 4B granularity) executed with count.
- Requires a compile time configuration option.
- Also requires a run-time flag.
|
|
|
|
We now split out the spike executable into another subproject,
which depends on both rocket and hwacha
|
|
They really aren't independent libraries.
|
|
|
|
|