Hasty Briefsbeta

双语

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输出中特殊段的处理方式。