From: Jon Forums Date: 2010-12-28T00:46:40+09:00 Subject: [ruby-core:33923] [Ruby 1.9-Bug#4214][Open] Fiddle::WINDOWS == false on Windows --mimepart_4d18b4db3d1e_3346b746ad4506e Content-Type: text/plain Content-Transfer-Encoding: Quoted-printable Content-Disposition: inline Bug #4214: Fiddle::WINDOWS =3D=3D false on Windows http://redmine.ruby-lang.org/issues/show/4214 Author: Jon Forums Status: Open, Priority: Normal Assigned to: Aaron Patterson, Category: ext, Target version: 1.9.2 ruby -v: ruby 1.9.2p136 (2010-12-25 revision 30363) [i386-mingw32]

C:\Users\Jon>ruby --version
ruby 1.9.2p136 (2010-12-25 revision 30363) [i386-mingw32]

C:\Users\Jon>ruby -e "require 'fiddle';puts Fiddle::WINDOWS"
false

The root cause was that configure.in never checked for windows.h. Consequ= ently, on Windows, .ext/include/i386-mingw32/ruby/config.h never defined = the HAVE_WINDOWS_H macro used by fiddle in ext/fiddle/{fiddle.c,fiddle.h,= function.c}. FYI, the HAVE_WINDOWS_H macro is also used by ext/dl/{cfunc.= c,dl.h,handle.c} but I've not tested the DL code on Windows. Fiddle and D= L appear to be the only places in the code that HAVE_WINDOWS_H is checked= . After the attached patch on trunk@30404 I get

C:\Users\Jon>ruby --version
ruby 1.9.3dev (2010-12-27 trunk 30404) [i386-mingw32]

C:\Users\Jon>ruby -e "require 'fiddle';puts Fiddle::WINDOWS"
true

The patch was tested on (a) Windows 7 Ultimate 32-bit using the RubyInsta= ller build recipes, (b) Arch Linux 2.6.36 32-bit, and (c) Arch Linux 32-b= it cross-compiled for Windows. Running @make test-all TESTS=3Dfiddle@ pa= sses on both Win7 and Arch. The portion of the patch relating to win32/Ma= kefile.sub is speculative as I don't build with VC. Perhaps Park H. or th= e mswin32 maintainer will verify. Please backport an acceptable version of the patch to ruby_1_9_2 at your = earliest convenience. Jon ---------------------------------------- http://redmine.ruby-lang.org --mimepart_4d18b4db3d1e_3346b746ad4506e Content-Type: text/plain; name=0001-fix-fiddle-windows-constant.patch Content-Transfer-Encoding: Base64 Content-Disposition: attachment; filename=0001-fix-fiddle-windows-constant.patch ZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5pbiBiL2NvbmZpZ3VyZS5pbgppbmRl eCAzYTE5OTljLi5lMDU0ODQxIDEwMDY0NAotLS0gYS9jb25maWd1cmUuaW4K KysrIGIvY29uZmlndXJlLmluCkBAIC0xMTAxLDYgKzExMDEsNyBAQCBBQ19D SEVDS19IRUFERVJTKGxpbWl0cy5oIHN5cy9maWxlLmggc3lzL2lvY3RsLmgg c3lzL3N5c2NhbGwuaFwKIAkJIHN5cy9ta2Rldi5oIHN5cy91dGltZS5oIHh0 aS5oIG5ldGluZXQvaW5fc3lzdG0uaCBmbG9hdC5oIGllZWVmcC5oIFwKIAkJ IHVjb250ZXh0LmggaW50cmluc2ljcy5oIGxhbmdpbmZvLmggbG9jYWxlLmgg c3lzL3NlbmRmaWxlLmggdGltZS5oIFwKIAkJIG5ldC9zb2NrZXQuaCBzeXMv c29ja2V0LmgpCitBQ19DSEVDS19IRUFERVJTX09OQ0UoW3dpbmRvd3MuaF0p CiAKIGRubCBDaGVjayBhZGRpdGlvbmFsIHR5cGVzLgogUlVCWV9DSEVDS19T SVpFT0YocmxpbV90LCBbaW50IGxvbmcgImxvbmcgbG9uZyJdLCBbXSwgWwpk aWZmIC0tZ2l0IGEvdGVzdC9maWRkbGUvdGVzdF9maWRkbGUucmIgYi90ZXN0 L2ZpZGRsZS90ZXN0X2ZpZGRsZS5yYgppbmRleCBmYTE5YWFmLi42MjVhYWY5 IDEwMDY0NAotLS0gYS90ZXN0L2ZpZGRsZS90ZXN0X2ZpZGRsZS5yYgorKysg Yi90ZXN0L2ZpZGRsZS90ZXN0X2ZpZGRsZS5yYgpAQCAtMTYsNCArMTYsMTQg QEAgY2xhc3MgVGVzdEZpZGRsZSA8IEZpZGRsZTo6VGVzdENhc2UKICAgICAg IGFzc2VydF9lcXVhbChETC5jb25zdF9nZXQobmFtZSksIEZpZGRsZS5jb25z dF9nZXQobmFtZSkpCiAgICAgZW5kCiAgIGVuZAorCisgIGRlZiB0ZXN0X3dp bmRvd3NfY29uc3RhbnQKKyAgICByZXF1aXJlICdyYmNvbmZpZycKKyAgICBp ZiBSYkNvbmZpZzo6Q09ORklHWydob3N0X29zJ10gPX4gL21zd2lufG1pbmd3 LworICAgICAgYXNzZXJ0IEZpZGRsZTo6V0lORE9XUywgIkZpZGRsZTo6V0lO RE9XUyBzaG91bGQgYmUgJ3RydWUnIG9uIFdpbmRvd3MgcGxhdGZvcm1zIgor ICAgIGVsc2UKKyAgICAgIHJlZnV0ZSBGaWRkbGU6OldJTkRPV1MsICJGaWRk bGU6OldJTkRPV1Mgc2hvdWxkIGJlICdmYWxzZScgb24gbm9uLVdpbmRvd3Mg cGxhdGZvcm1zIgorICAgIGVuZAorICBlbmQKKwogZW5kCmRpZmYgLS1naXQg YS93aW4zMi9NYWtlZmlsZS5zdWIgYi93aW4zMi9NYWtlZmlsZS5zdWIKaW5k ZXggNGUyYTA2OS4uOTM3ZTc3OCAxMDA2NDQKLS0tIGEvd2luMzIvTWFrZWZp bGUuc3ViCisrKyBiL3dpbjMyL01ha2VmaWxlLnN1YgpAQCAtNDUwLDYgKzQ1 MCw3IEBAICQoQ09ORklHX0gpOiAkKE1LRklMRVMpICQoc3JjZGlyKS93aW4z Mi9NYWtlZmlsZS5zdWIgJCh3aW5fc3JjZGlyKS9NYWtlZmlsZS5zdWIKICFl bmRpZgogI2RlZmluZSBSVF9WRVIgJChSVF9WRVIpCiAjZGVmaW5lIFNURENf SEVBREVSUyAxCisjZGVmaW5lIEhBVkVfV0lORE9XU19IIDEKICNkZWZpbmUg SEFWRV9TWVNfVFlQRVNfSCAxCiAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAx CiAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQo= --mimepart_4d18b4db3d1e_3346b746ad4506e--