著作一覧 |
結局ノートパソコンにVS2005をインストールした。ということは、readline、zlib、openssl、tcl/tkとか全部作り直し。
……とやっていって、opensslで負けた。
ntdll.makから/WXを削除の刑。
1. extern int read()みたいなのがあって警告→停止
2. time_tを無条件にlong(unsigned long)に代入
このあたりまではまじめにソースを修正していたのだが
3. ある一点でaccessを修正したとたん、stdioあたりで_W64というシンボルに関するsyntax errorが山ほど出るようになった。解決できん。_W64が__w64に展開されるところでsyntax errorに変わることまでは追えたがどのような関連があるのかがつかめない。深追い禁止。
ms/testはcompleteだと言っているからOKとは思うが。
.\miniruby.exe ./../win32/mkexports.rb -output=msvcr80-ruby18.def msvcr80-ruby18-static.lib This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. ./../win32/mkexports.rb:6: [BUG] Segmentation fault ruby 1.8.4 (2005-12-24) [i386-mswin32] NMAKE : fatal error U1077: '.\miniruby.exe' : .\miniruby.exe ./../win32/mkexports.rb -output=msvcr80-ruby18.def msvcr80-ruby18-static.lib This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. ./../win32/mkexports.rb:6: [BUG] Segmentation fault ruby 1.8.4 (2005-12-24) [i386-mswin32] NMAKE : fatal error U1077: '.\miniruby.exe' : Stop. Stop.
stable snapshotだとMSC_VERを見るように修正されていた。さすが。
で、今は、「../.././../ext/openssl/ossl.c(118) : error C2065: '__func__' : 定義されていない識別子です。」を見てるとこ。
……なぜ、HAVE_VA_ARGS_MACROが立っているんだ?
if try_compile("#define FOO(a, ...) foo(a, ##__VA_ARGS__)\n int x(){FOO(1);FOO(1,2);FOO(1,2,3);}\n") $defs.push("-DHAVE_VA_ARGS_MACRO") end
チェックが甘いのか……。__func__を含めれば良さそうだな。
……ではなくて、__func__が標準ということだから、
#if !defined(__func__) #if !defined(__FUNCTION__) #define __func__ "unknown" #else #define __func__ __FUNCTION__ #end #end
とすれば良いような。というか、標準マクロとgccのマクロとVC8のマクロと全部押さえないとどうすれば良いかというのは難しい……
ジェズイットを見習え |