GNU libtool 和 FreeBSD 10

• 本文约 198 字,阅读大致需要 1 分钟 | Development

FreeBSD 开始用 10 以上的版本号有一段时间了。这个变动立刻导致了大量 ports 无法编译,多数情况下是因为开发者采用了较早版本的 libtool 导致的,具体来说,是类似下面的代码:

    case $host_os in
    freebsd[123]*) objformat=aout ;;
    *) objformat=elf ;;
    esac

解法是在星号前面加个小数点。

前段时间的半夜 make 总是在 OpenOffice 上通不过,结果发现是同样的原因。囧死了……当初匹配的时候多打个 . 会死吗?

(这个问题已经在 libtool 2.4.2 以上版本中修正)。教训是,即使是代码生成器,重复的代码依然会导致维护成本的增加。