2025年06月22日 Slackware64-currentでsendmail-8.18.1のビルド失敗 [長年日記]
_ Slackware64-currentで
slackpkg -batch=on -default_answer=y upgrade-all
したところ、icu4c-76からicu4c-77にバージョンアップしたためsendmailが一部のライブラリを動的リンク出来なくなり起動しなくなった。
sendmailはextraパッケージから自分でビルドする必要があるので、いつも通りに行ってみると以下のエラーが出た。
vfscanf.c:249:30: error: assignment to ‘ULONGLONG_T (*)(const char *, char **, int)’ {aka ‘long long unsigned int (*)(const char *, char **, int)’} from incompatible pointer type ‘ULONGLONG_T (*)(void)’ {aka ‘long long unsigned int (*)(void)’} [-Wincompatible-pointer-types] 249 | ccfn = (ULONGLONG_T (*)())sm_strtoll; | ^ vfscanf.c:327:30: error: assignment to ‘ULONGLONG_T (*)(const char *, char **, int)’ {aka ‘long long unsigned int (*)(const char *, char **, int)’} from incompatible pointer type ‘ULONGLONG_T (*)(void)’ {aka ‘long long unsigned int (*)(void)’} [-Wincompatible-pointer-types] 327 | ccfn = (ULONGLONG_T (*)()) sm_strtoll; | ^
この手のエラーはコンパイラのバージョンが新しすぎてエラーチェックが厳しくなっているため、古めのソースだとよく出るやつ...
こんな時はLinuxQuestions.orgで尋ねるに限る。
あっという間(4時間程度)でレスが付き、パッチを3種類提供していただけました。
もちろんパチッを適用後はビルドがサックリ完了。ありがたや :)
[ツッコミを入れる]