在pnacl中使用垃圾收集器

时间:2014-04-30 14:47:31

标签: google-nativeclient

是否可以在pnacl中使用垃圾收集器?当我试图将.pexe中的.bc文件与pnacl-clang ++链接时,我得到了

  

函数_ZN8PSModule14CreateInstanceEi禁止使用" gc"属性

     

函数llvm.gcroot是一个不允许的LLVM内在

1 个答案:

答案 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块,并确保将块链接到根列表中。