添加其他平台的编译支持 - #4
Conversation
|
在 x86 上跑测试的意义是啥?测试应该要看能否在 rv 上用吧 我不清楚其他平台提供一个 @YdrMaster 看看? |
|
有一些平台无关的模块需要编写单元测试,但是RISC-V还不支持标准库,所以在编译平台上运行是一个比较好的选择。 |
|
不理解,这个项目哪有平台无关模块…… 这个项目的定位就是 rv 上低于 machine 的特权态调用 sbi 的简单封装,避免反复写汇编;另外提供 而且 |
|
只是从易用性上考虑。如果不加编译支持的话,所有添加了这个项目的crate就都运行不了单元测试了;或者说要把测试代码单独分到其他地方。这样增加复杂性从该项目的使用者的角度来说感觉不太方便。 |
|
所以是依赖这个项目的其他项目的问题,那为什么不考虑在调用处设置 试试用这个依赖: [target.'cfg(any(target_arch = "riscv32", target_arch = "riscv64"))'.dependencies] |
| # By using this feature, parameter types of sbi-rt functions fall back to integers, | ||
| # static type checks are disabled so this library won't detect parameters in incorrect orders. | ||
| # Although some people may find it userul in prototyping sbi-rt implementations, | ||
| # Although some people may find it useful in prototyping sbi-rt implementations, |
|
也不是说所有crate都能跨平台编译吧,至少我在
我也在考虑如此操作,不过最终还是避免不了在代码里设置大量的 |
|
我们讨论了一下,对这个修改的意见基本上是负面的。不过作为参考,也许可以试试这些方案:
BTY,以下是我的个人观点:
|
|
好的,我暂时先采用第三种方案了,之后如果有新的想法会继续在这里发布。感谢review。 |
cb56b4b to
4a90a5f
Compare
|
@js2xxx 您好:由于本项目已经被合并到rustsbi/rustsbi仓库统一管理,若后续有贡献计划,请移交到rustsbi/rustsbi仓库。谢谢您的理解! |
这样可以使得添加了该项目的crates在编译平台(比如x86)上运行不依赖SBI的单元测试,而不需要额外编写其他代码。