TSUCHIYA Masatoshi
tsuch****@namaz*****
2007年 12月 9日 (日) 11:56:42 JST
お久しぶりです.
xdvik-22.84.13 に追従したパッチを作成しました.必要な方は,
https://sourceforge.jp/projects/xdvi/
からダウンロードしてください.
今回のパッチ作成では,1点だけ問題が発生しました.単純に merge して build
すると,
gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../.. -W -Wall -Wunused -I.. -I./.. -DPS_GS -DXSERVER_INFO -g -c help-window.c -o help-window.o
In file included from ../xdvi.h:189,
from help-window.c:29:
/usr/include/stdint.h:52: error: duplicate 'unsigned'
というようなエラーで失敗します.原因を探ってみたところ,xdvik の c-auto.h
とシステム標準の stdint.h の両方で uint32_t を定義してしまっていることが
判明しました.
configure.in には,
AC_CHECK_TYPE(uint32_t, unsigned long)
と書かれているので,本来なら,システム標準のヘッダファイルで uint32_t が
定義されていれば,c-auto.h では定義されないはずです.しかし,uint32_t が
定義されているかどうかをチェックしている箇所を見てみると,
#line 3816 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
#include <stdlib.h>
#include <stddef.h>
#endif
となっており,sys/types.h は考慮されているのですが,stdint.h は考慮されて
いないため,uint32_t は「定義されていない」と誤判定されて,uint32_t が重
複定義されてしまっています.
この問題をきちんと解決するためには,autoconf のマクロに手を入れる必要が
あるのではないかと思いますが,私の手には余りましたので,c-auto.in に添付
のような ad-hoc な修正を入れておきました.
という状態ですが,きちんと解決する方法をご存じの方は教えていただけないで
しょうか.よろしくお願いします.
--
土屋 雅稔 ( TSUCHIYA Masatoshi )
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: 無し
型: text/x-diff
サイズ: 352 バイト
説明: 無し
Download
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: 無し
型: application/pgp-signature
サイズ: 188 バイト
説明: 無し
URL: http://lists.sourceforge.jp/mailman/archives/xdvi-users/attachments/20071209/c916e865/attachment.pgp