gpu rdma内存固定编译问题

在固定gpu内存会调用到nvidia驱动源码nv-p2p.h里的:
int nvidia_p2p_get_pages(uint64_t p2p_token, uint32_t va_space_token,

                uint64_t virtual_address,
                uint64_t length,
                struct nvidia_p2p_page_table **page_table,
                void (*free_callback)(void *data),
                void *data);

所以尝试把nv-p2p.o文件编译成动态库,nv-p2p.o文件是编译nvidia驱动源码得到的。
命令:
sudo gcc -shared -o libnvp2p.so nv-p2p.o和
sudo gcc -shared -fPIC -o libnvp2p.so nv-p2p.o
都输出
错误:
/usr/bin/ld: nv-p2p.o: relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: error: ld returned 1 exit status

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632