Conference Room SAD
[thread display] [new arrival display] [word search] [past log] [管理用]

Subject Re^2: cygwin
Date: 2008/11/11(Tue) 20:25:12
ContributorAkio Morita

>   僕は Main Trunk でやっています。
>   X11=YES, TclTk=NO であれば、そのままコンパイルしてエラーは出ません。
>  
> (数ヶ月前の cygwin ではエラーになりました。数日前のダウンロードでは OK。
> これらはすべて SAD 側の問題ではなく、森田さんがよく指摘するように、cygwin の
> 嫌な面が出ているのだろうと思います。誰でも何でも入れるので、コードが壊れたり、
> 仕様が勝手に変わったり、下手をすると シェルすら動かなくなることすらあった
> くらいです。cygwin を使う以上、これらは諦めないといけないことだろうと思いますが、
> いちいちそんな状況に対して Makefile やコードをアップデートするのも、精神力と
> 時間がもったいないのも確かです。)
>  
src/tfXlib_.cに関しては、XListFonts()の4th argumentと XGetFontPath()の 2nd argumentは
Xlib的には int*型ですが、tfXlib_.cでは integer4*型の引数を積んでいます
従って、int != int32_tな環境では型が一致しません
現時点の環境としては ILP64な環境が該当します
# unix系の64bit実装は、LP64モデルが多いので int == int32_tになっています

実用上、SAD自身が 64bitではまともに動かないので問題無いわけですが...


Tclがコンパイルできない件に関しては、POSIX/SUS的には cygwin側が全面的に悪だと思います
EAI_SYSTEMマクロは、netdb.hで定義されるべきマクロで、標準は以下を参照
http://www.opengroup.org/onlinepubs/009695399/basedefs/netdb.h.html

getaddrinfo()のエラーチェックで使われており、標準は以下を参照
http://www.opengroup.org/onlinepubs/009695399/functions/getaddrinfo.html

このgetaddrinfo()は、RFC 3493で定義されている address family independent APIで
cygwinの newlibでは未実装です。


- 関連一覧ツリー (Click ▼ to display all articles in a thread.)