使LLVM/Clang与16位对齐

sly*_*rel 20 macos xcode objective-c llvm

我正在开发一个遗留项目,其中包含大量可追溯到OS X之前的文件.它的数据已经16位对齐超过15年.我想转向完整的LLVM编译,但我似乎无法使2字节对齐工作.是否有适用于此的编译器级别选项?(以前使用-malign-mac68k)

我在这里知道#pragma pack(2)选项.但是,这需要我修改超过1000个源文件以包含此文件.这是一个最糟糕的选择,但它似乎是一个黑客.此外,如果这是可能的,那么肯定有一个默认选项来设置对齐?

Ant*_*kov 8

根据clang的消息来源,它确实支持mac68k对齐规则.现在似乎只能通过"#pragma options align = mac68k"启用它.如果你对小铿锵黑客没问题,那么你也可以实现cmdline选项并将补丁提交给clang.