是否可以在pnacl中使用垃圾收集器?当我试图将.pexe中的.bc文件与pnacl-clang ++链接时,我得到了
函数_ZN8PSModule14CreateInstanceEi禁止使用" gc"属性
函数llvm.gcroot是一个不允许的LLVM内在
答案 0 :(得分:0)
一般情况下,可以在PNaCl中使用垃圾收集器,但PNaCl不支持LLVM IR的GC功能。
PNaCl不允许LLVM IR" gc"函数属性或gcroot / gcread / gcwrite内在函数。这些功能不在PNaCl的白名单中,它省略了LLVM IR更复杂的功能,以保持PNaCl ABI尽可能简单。
如果要在PNaCl中跟踪GC,GC必须使用通常用于在便携式C / C ++中实现GC的相同技术。例如,如果您希望局部变量是GC根,则可以将其值写入alloca< d d块,并确保将块链接到根列表中。