FreeBSD stable/13 の ar のエラーは手元の不整合だった様子 ― 2022年02月23日 13時15分38秒
エラーの出力。
/usr/src/usr.bin/ar/acpyacc.y:280:32: error: incompatible integer to pointer conversion passing 'int' to parameter of type 'const char *' [-Werror,-Wint-conversion]
bsdar_errc(bsdar, EX_IOERR, errno, "unlink failed");
^~~~~
/usr/include/errno.h:48:16: note: expanded from macro 'errno'
#define errno (* __error())
^~~~~~~~~~~~~
/usr/src/usr.bin/ar/ar.h:120:56: note: passing argument to parameter 'fmt' here
void bsdar_errc(struct bsdar *, int _code, const char *fmt, ...) __dead2;
^
/usr/src/usr.bin/ar/acpyacc.y:286:34: error: incompatible integer to pointer conversion passing 'int' to parameter of type 'const char *' [-Werror,-Wint-conversion]
bsdar_errc(bsdar, EX_SOFTWARE, errno, "strdup failed");
^~~~~
/usr/include/errno.h:48:16: note: expanded from macro 'errno'
#define errno (* __error())
ちょっとエラーが気になったので少し調べてみた。
書式を指定する第三引数に errno が渡されている。全て削除してから buildworld を始めたはずだが。
% grep -R bsdar_errc /usr/src/ | grep .h:
/usr/src/contrib/elftoolchain/ar/ar.h: bsdar_errc(bsdar, 0, "%s", \
/usr/src/contrib/elftoolchain/ar/ar.h:void bsdar_errc(struct bsdar *, int _code, const char *fmt, ...);
/usr/src/usr.bin/ar/ar.h: bsdar_errc(bsdar, archive_errno(a), "%s", \
/usr/src/usr.bin/ar/ar.h:void bsdar_errc(struct bsdar *, int _code, const char *fmt, ...) __dead2;
%
ar ディレクトリを削除したら、今度はコンパイルが成功した。
% find /usr/src -name ar | xargs rm -rf
コメント
トラックバック
このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2022/02/23/9466711/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。