![]() |
1
3
显然,编译器将所有内容连接在同一节中(我简化了
从这里,我看不出您以后打算如何检索各个程序以正确加载它们。通常,用户空间工具从一个节中获取一个程序,并尝试通过将指令通过
您希望所有程序在节中使用相同的名称,有什么特别的原因吗? 我不知道LLVM对这种事情的警告。我想不是:人们可能有理由在一个部分中放不同的东西。这里的例子是针对BPF的,我认为人们通常不会试图将几个程序放在同一个部分中。但这只是猜测,我可能错了。 关于您的更新:
我不认为在不同的对象文件中使用类似的节名称是一个问题。只要您的用户空间工具能够从对象文件中检索程序并执行重新定位,它就应该可以正常工作。内核无论如何看不到任何节名。从
(来自
需要补充说明的是:我不知道您的用例到底是什么,但由于您正试图在不同的对象文件中编译代码并使用调用,您可能有兴趣了解eBPF现在支持函数调用,即您可以定义几个(非内联)函数,可能在几个ELF文件中,并在程序中调用它们。更多信息 in the cover letter . 再一次,到目前为止,我还没有时间进行实验。 |
![]() |
Community wiki · C中有哪些耗时的操作? 1 年前 |
![]() |
Community wiki · 将所有处理器电源都投入到任务中 1 年前 |
![]() |
Community wiki · C++为C添加了什么?[已关闭] 1 年前 |
![]() |
Community wiki · 打印1到1000,不带循环或条件 1 年前 |