GNU D compiler has been broken on FreeBSD 14 for over a year and no one noticed
9 months ago
- #FreeBSD
- #D programming
- #compiler
- D编程语言提供三种编译器:DMD、GDC和LDC,主要区别在于它们的后端实现。
- FreeBSD系统缺少GDC软件包,尝试手动构建时发现与FreeBSD 14的GNU as存在兼容性问题。
- GDC需要依赖D编译器来构建自身,这导致引导问题,最终通过使用GCC 11.5.0解决。
- FreeBSD 14对qsort_r(3)的兼容性修改引发GNU as的汇编错误,但Clang能正确汇编。
- 尝试用Clang作为汇编器的临时方案失败,原因是GCC输出的段标志(.eh_frame和.debug_str)不符合要求。
- 该事件凸显了软件包维护对早期发现兼容性问题的重要性。
- 提出的解决方案包括修复qsort_r(3)兼容性或调整GCC输出中特殊段的处理方式。