トップ «前の日記(2025年04月14日) 最新 編集

Masa's blog

検索キーワード:

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種類提供していただけました。

もちろんパチッを適用後はビルドがサックリ完了。ありがたや :)