generated from riscv-software-src/template-riscv-code
-
Notifications
You must be signed in to change notification settings - Fork 60
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update boost deps for core and mss, track Sparta PR397 #42
Merged
Changes from 28 commits
Commits
Show all changes
36 commits
Select commit
Hold shift + click to select a range
2cd2608
tell cmake to include boost libs
6299f22
fixed boost include for tests
4795d0b
using the FindSparta.cmake which sparta installs to find libs and inc…
828d884
Merge branch 'riscv-software-src:master' into boost_fix
peter-d 88d0200
tracking sparta PR #408, weightedcontextcounter is now in sparta/stat…
86d45bf
CI should pick up sparta in default location after make install for s…
eb4182c
install sparta in github workspace area where we have permissions to …
7fdb723
no need to mark project as C, hdf5 find is fixed
peter-d 8ce74e9
Resolved merge conflict with master
5722d2a
bump cmake to more recent version, so it can find hdf5
peter-d 783865b
somewhat less aggressive: 3.19 might be ok?
peter-d 24bc16d
need existing version
peter-d 1194158
nuclear option: no version pins at all
peter-d e615d9e
branch needs sparta master
peter-d 57aadb2
double check on sparta git version we use in CI
peter-d f23e0ec
hacky workaround to get the right sparta branch in CI
peter-d 6fd31f2
hacky workaround to get the right sparta branch in CI, v2
peter-d 60dcb1f
hacky workaround to get the right sparta branch in CI, v3
peter-d d933500
hacky workaround to get the right sparta branch in CI, v4
peter-d 0667094
Merge branch 'master' into boost_fix
peter-d aa8d97e
latest submodules just like master
peter-d 85f9c55
verbose build for CI debug
peter-d 7f1a9df
added sparta dep to core common test
peter-d e5db40a
no need for verbose
peter-d a065a9b
trying to debug stf linking issue in CI
peter-d e8b939e
Trying a conda install of sparta
fdc60b3
Setup linker support for LTO
a7cf25d
add in link libraries where they were missing
peter-d 53cac69
I think these changes will work in Peter's environment
f3d7ecc
Added cool banner
f1c16b3
get all required includes for sparta from the property
peter-d 1123995
resolve conflict with master
peter-d 80e2b30
Merge branch 'master' into boost_fix
peter-d 589c16d
should not have removed install
peter-d faed611
Use the branch map_v2 for regressions
klingaard 5ce1b6a
Update README.md
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Submodule mavis
updated
18 files
+148 −0 | json/isa_rv64h.json | |
+2,350 −0 | json/isa_rv64v.json | |
+828 −0 | json/isa_rv64vf.json | |
+68 −0 | json/isa_rv64zba.json | |
+226 −0 | json/isa_rv64zbb.json | |
+26 −0 | json/isa_rv64zbc.json | |
+66 −0 | json/isa_rv64zbs.json | |
+2 −2 | mavis/DecodedInstInfo.h | |
+0 −2 | mavis/Extractor.h | |
+100 −0 | mavis/ExtractorDirectImplementations.hpp | |
+0 −2 | mavis/ExtractorTraceInfo.h | |
+1 −1 | mavis/IFactoryBuilder.h | |
+14 −5 | mavis/InstMetaData.h | |
+214 −2 | test/main.cpp | |
+4,052 −105 | test/out | |
+367 −0 | test/rv64.tset | |
+47 −0 | test/rv64_bits.tset | |
+15 −0 | test/rv64h.tset |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,16 +1,15 @@ | ||
project(Dispatch_test) | ||
|
||
add_executable(Dispatch_test Dispatch_test.cpp) | ||
target_link_libraries(Dispatch_test core common_test ${STF_LINK_LIBS} ${Sparta_LIBS}) | ||
|
||
include(${SPARTA_BASE}/test/TestingMacros.cmake) | ||
target_link_libraries(Dispatch_test core common_test ${STF_LINK_LIBS} SPARTA::sparta) | ||
|
||
file(CREATE_LINK ${SIM_BASE}/mavis/json ${CMAKE_CURRENT_BINARY_DIR}/mavis_isa_files SYMBOLIC) | ||
file(CREATE_LINK ${SIM_BASE}/arches ${CMAKE_CURRENT_BINARY_DIR}/arches SYMBOLIC) | ||
file(CREATE_LINK ${CMAKE_CURRENT_SOURCE_DIR}/test_cores ${CMAKE_CURRENT_BINARY_DIR}/test_cores SYMBOLIC) | ||
file(CREATE_LINK ${CMAKE_CURRENT_SOURCE_DIR}/expected_output ${CMAKE_CURRENT_BINARY_DIR}/expected_output SYMBOLIC) | ||
|
||
# Single add per cycle | ||
# Note: these macros get defined when find_package(Sparta) is called | ||
sparta_named_test(Dispatch_test_Run_Small Dispatch_test small_core.out -c test_cores/test_small_core.yaml) | ||
sparta_named_test(Dispatch_test_Run_Medium Dispatch_test medium_core.out -c test_cores/test_medium_core.yaml) | ||
sparta_named_test(Dispatch_test_Run_Big Dispatch_test big_core.out -c test_cores/test_big_core.yaml) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm wondering if uncommenting this line will fix your include issues. Can you do that AND remove the target_link lines to see if you still have problems?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It helps to some extent: No more errors on Sparta includes, but it lacks the secondary includes it seems, as now I am getting boost errors: (which on my system is also not in a default system path, because I am pointing to a specific version somewhere in
/opt/homebrew
)(which ironically is back to square one - not finding boost was my initial problem to tackle all makefiles ;-) )
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's what this line and the next in
FindSparta.cmake
are providing automatically when you add sparta as a link library:https://github.com/sparcians/map/blob/6f0636f7a717238cd039be33f7975048449bb82c/sparta/cmake/FindSparta.cmake#L69
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, I can reproduce the missing include problem, but the not boost one. I'll admit that I don't fully grok how
cmake
brings in the goods from a package. You'd think thefind_package
method would be enough! But sparta must be installed in a "standard" location or something so that includes AND library paths are set up? I don't get it...There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All
find_package
does is import a target for the library (as if it were defined elsewhere in the makefiles withadd_library
) but it won’t set up any default compile or link flags project wide, it will only add the relevant options to the targets when you explicitly say they depend on the imported target. In this case that means unless you explicitly add SPARTA::sparta it won’t pass the flags. Which you won’t notice if everything is installed in system wide include and lib paths, but it will break as soon as one of the components (either Sparta or the lobs it depends on) is not in that default path.That said, there could be a way to only add the include paths and maybe not the link flags, but I expect that to fail at linking still…
Reason I see boost problems is because I have multiple boost versions via homebrew, and Sparta needs one that is not the default one. (There’s macOS issues with boost 1.81 command line arguments)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you Peter and Knute for working through this.
Trying to understand the latest status of this work: From the comments above, I understand at least the regression is not working yet. But is it just the regression or more than that? Would I be able to build riscv-perf-model / olympia with latest head of master of Sparta (which installs Sparta in the conda environment)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually regression is working with these changes, but only because the CI is strictly controlled:
For those folks that do not use conda or prefer not to, it's hard to set up a CMakeList flow that works for both.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As long as Sparta (and it’s dependencies like boost hdf5 etc) are available in the default paths (libs and includes) it just works. It’s just in case some dependencies are not in a default location, that the overridden paths are not passed through from Sparta to Olympia… (eg I have a home brew boost version in macOS that is not the default one which gives me troubles when I want to this locally branch)