他们可以采用很多方法:
有的代码用了一些变态的gcc扩展,而clang/llvm那边表示这扩展丫的太变态,我们不会支持了,这样的问题等也无济于事,只好来点手段啦。
a.源里的包压根就用gcc来编。这法子有点坑人,估计不会用的。
b.编不过的用gcc。这法子折衷一点,只好凑合了。
c.打patch。这么变态的扩展,你丫不用会死啊。打上pacth之后再发给软件作者一份:这年头,代码用clang编不过你都不好意思跟人打招呼。你打或者不打,patch就在那里!这方法能根本解决问题,不过工作量可就大了。如果软件作者不买账就更麻烦了。
要是有的问题是clang/llvm的bug导致的,这好说,报告给clang/llvm那边就行,这种问题应该占少数。
算来算去,这些个方法都不完美。不过话说回来,clang/llvm支持大部分的gnu扩展,少数不支持的那几个扩展都是非常变态的,谁这么蛋疼用那些个特性啊....