Skip to content
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

couldn't find extension 'nice_demo' in shared library 'libcustomext.so' #4

Open
vah15270391729 opened this issue Aug 4, 2021 · 6 comments

Comments

@vah15270391729
Copy link

我在外部指令集扩展中,按照操作流程进行修改。在编译完之后,build文件下也出现了libnicext.so。但是我使用命令
spike --extension=nice_demo --extlib=libnicext.so pk test
spike --isa=rv64gc_xnice_demo --extlib=libnicext.so pk test
运行后,却会报错:
couldn't find extension 'nice_demo' in shared library 'libcustomext.so'

我认为是--extension --isa会生成libnice.so和libnice_demo.so,所以libname就是默认的libcustomext.so。
--extlib没有起到作用,我该如何解决这个问题。

@lazyparser
Copy link
Member

感谢提醒,已经转给模拟器分支的伙伴来回复

@vah15270391729
Copy link
Author

vah15270391729 commented Aug 5, 2021

我将riscv/riscv.mk.in进行了对比,在你们的源码中,riscv_insn_list中没有包含$(riscv_insn_nice) \,但是我的代码中却有$(riscv_insn_nice) \。作为基础指令集的话,riscv_insn_nice是不应该出现的。是否是这个问题引起的?我没有添加$(riscv_insn_nice) \,为什么它会自动地添加?感谢!

@liweiwei90
Copy link
Collaborator

我本地实验了一下spike-cources分支:
spike --isa=rv64gc_xnice_demo --extlib=libnicext.so pk test时没有出错
在spike --extension=nice_demo --extlib=libnicext.so pk test时出现了上述错误
这个错误应该和spike的命令解析顺序有关,如果--extlib在--exension之后解析,那么在解析extension时libnicext.so还没加载(默认从libnice_demo.so以及libcustomext.so去找),这个时候就会找不到nice_demo,出现上诉错误。
可以调换一下两者的顺序再试试:
spike --extlib=libnicext.so --extension=nice_demo pk test

@liweiwei90
Copy link
Collaborator

isa string应该会在--extlib解析完成后才会被解析,nice demo扩展会在库加载的时候被注册,如果也出现上诉错误,可以检查一下是否注册成功了,目前我能想到的原因有两种:一种是实现代码最后是否有调用REGISTER_EXTENSION宏来注册该扩展; 一种是扩展名称(name()函数中)是否是nice_demo。

@liweiwei90
Copy link
Collaborator

liweiwei90 commented Aug 6, 2021

在spike-courses分支中$(riscv_insn_nice) 是加进riscv_insn_list(https://github.com/plctlab/plct-spike/blob/spike-courses/riscv/riscv.mk.in) 了的,这个文件不会自动修改,如果想测试外部扩展--extlib,那么需要注释掉$(riscv_insn_nice)。

@vah15270391729
Copy link
Author

好的,我准备试一下。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants