rdp / google_hash

wrapper for google's hash functions, for ruby
BSD 3-Clause "New" or "Revised" License
92 stars 16 forks source link

Windows problem #37

Closed ccoupe closed 9 years ago

ccoupe commented 9 years ago

Hi,

I'm try to build/run the picky gem which uses the google_hash gem on Win7/ ruby 2.1.4 32 bit (mingw devkit) with rubygems 2.4.5 . google_hash installs w/o error but when required throws up an error that has me baffled.

E:\gems>ruby -rgoogle_hash -e 'puts RUBY_PLATFORM'
C:/Ruby21/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:128:in `r
equire': 126: The specified module could not be found.   - C:/Ruby21/lib/ruby/ge
ms/2.1.0/extensions/x86-mingw32/2.1.0/google_hash-0.8.8/google_hash.so (LoadErro
r)
        from C:/Ruby21/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require
.rb:128:in `rescue in require'
        from C:/Ruby21/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require
.rb:39:in `require'

But the google_hash.so is there (and in lib)

 Directory of C:\Ruby21\lib\ruby\gems\2.1.0\extensions\x86-mingw32\2.1.0\google_
hash-0.8.8

05/12/2015  08:23 PM    <DIR>          .
05/12/2015  08:23 PM    <DIR>          ..
05/12/2015  08:23 PM                 0 gem.build_complete
05/12/2015  08:23 PM            16,370 gem_make.out
05/12/2015  08:23 PM           931,328 google_hash.so
05/12/2015  08:22 PM             2,983 mkmf.log
               4 File(s)        950,681 bytes

Any idea what going on? Gemspec issue?

I'm also a bit confused about the version number. 0.8.8 is what gem downloads and installs but this seems newer that the 0.8.7 github version.

rdp commented 9 years ago

Odd. I'm able to build it here at least with this gcc gcc version 4.9.2 (i686-posix-dwarf-rev2, Built by MinGW-W64 project) Have you upgraded your versions of ruby21 ever by chance? What if you try ruby 2.1.6 (new install folder)? Which devkit are you using exactly?

On Tue, May 12, 2015 at 9:32 PM, Cecil Coupe notifications@github.com wrote:

Hi,

I'm try to build/run the picky gem which uses the google_hash gem on Win7/ ruby 2.1.4 32 bit (mingw devkit) with rubygems 2.4.5 . google_hash installs w/o error but when required throws up an error that has me baffled.

E:\gems>ruby -rgoogle_hash -e 'puts RUBY_PLATFORM' C:/Ruby21/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:128:in r equire': 126: The specified module could not be found. - C:/Ruby21/lib/ruby/ge ms/2.1.0/extensions/x86-mingw32/2.1.0/google_hash-0.8.8/google_hash.so (LoadErro r) from C:/Ruby21/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require .rb:128:inrescue in require' from C:/Ruby21/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require .rb:39:in `require'

But the google_hash.so is there (and in lib)

Directory of C:\Ruby21\lib\ruby\gems\2.1.0\extensions\x86-mingw32\2.1.0\google_ hash-0.8.8

05/12/2015 08:23 PM

. 05/12/2015 08:23 PM .. 05/12/2015 08:23 PM 0 gem.build_complete 05/12/2015 08:23 PM 16,370 gem_make.out 05/12/2015 08:23 PM 931,328 google_hash.so 05/12/2015 08:22 PM 2,983 mkmf.log 4 File(s) 950,681 bytes

Any idea what going on? Gemspec issue?

I'm also a bit confused about the version number. 0.8.8 is what gem downloads and installs but this seems newer that the 0.8.7 github version.

— Reply to this email directly or view it on GitHub https://github.com/rdp/google_hash/issues/37.

rdp commented 9 years ago

OK I was able to reproduce it (if you use their devkit DevKit-mingw64-32-4.7.2-20130224-1151 ) So...unfortunately my recommendation is to download i686-4.9.2-release-posix-dwarf-rt_v4-rev2 from http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/4.9.2/threads-posix/dwarf/ and puts its mingw32\bin in your PATH "before" the devkit, then put the devkit in after that (so that it still has MSYS). I'll ping the rubyinstaller guys on it once we can confirm it works for you. Cheers!

On Wed, May 13, 2015 at 10:57 AM, Roger Pack rogerdpack@gmail.com wrote:

Odd. I'm able to build it here at least with this gcc gcc version 4.9.2 (i686-posix-dwarf-rev2, Built by MinGW-W64 project) Have you upgraded your versions of ruby21 ever by chance? What if you try ruby 2.1.6 (new install folder)? Which devkit are you using exactly?

On Tue, May 12, 2015 at 9:32 PM, Cecil Coupe notifications@github.com wrote:

Hi,

I'm try to build/run the picky gem which uses the google_hash gem on Win7/ ruby 2.1.4 32 bit (mingw devkit) with rubygems 2.4.5 . google_hash installs w/o error but when required throws up an error that has me baffled.

E:\gems>ruby -rgoogle_hash -e 'puts RUBY_PLATFORM' C:/Ruby21/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:128:in r equire': 126: The specified module could not be found. - C:/Ruby21/lib/ruby/ge ms/2.1.0/extensions/x86-mingw32/2.1.0/google_hash-0.8.8/google_hash.so (LoadErro r) from C:/Ruby21/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require .rb:128:inrescue in require' from C:/Ruby21/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require .rb:39:in `require'

But the google_hash.so is there (and in lib)

Directory of C:\Ruby21\lib\ruby\gems\2.1.0\extensions\x86-mingw32\2.1.0\google_ hash-0.8.8

05/12/2015 08:23 PM

. 05/12/2015 08:23 PM .. 05/12/2015 08:23 PM 0 gem.build_complete 05/12/2015 08:23 PM 16,370 gem_make.out 05/12/2015 08:23 PM 931,328 google_hash.so 05/12/2015 08:22 PM 2,983 mkmf.log 4 File(s) 950,681 bytes

Any idea what going on? Gemspec issue?

I'm also a bit confused about the version number. 0.8.8 is what gem downloads and installs but this seems newer that the 0.8.7 github version.

— Reply to this email directly or view it on GitHub https://github.com/rdp/google_hash/issues/37.

ccoupe commented 9 years ago

Thanks for the quick response. Updating gcc is going to be a problem for me if there are compatibility problems between 4.7/4.8 and 4.9. My project https://github.com/Shoes3/shoes3 is dependent on Linux cross compiling ( gcc 4.8 ) and I only use Windows for testing and strange situations like this one. I'll have to live with out picky and google_hash for now.

rdp commented 9 years ago

Could you confirm that fix works for you, if you get a chance?

On Wed, May 13, 2015 at 12:46 PM, Cecil Coupe notifications@github.com wrote:

Thanks for the quick response. Updating gcc is going to be a problem for me if there are compatibility problems between 4.7/4.8 and 4.9. My project https://github.com/Shoes3/shoes3 is dependent on Linux cross compiling ( gcc 4.8 ) and I only use Windows for testing and strange situations like this one. I'll have to live with out picky and google_hash for now.

— Reply to this email directly or view it on GitHub https://github.com/rdp/google_hash/issues/37#issuecomment-101773580.

ccoupe commented 9 years ago

gcc 4.9 does seem to work for google_hash - I ran benchmarks.rb to test it. picky-4.27.1 still has a problem but that's a different gem. I would not bother the RubyInstaller folks about this it was my bug.. They have no reason to use bleeding edge compilers when a mundane 4.7.2 is working for them. The real question is what does google_hash do that requires 4.9?

rdp commented 9 years ago

google_hash "should" work fine with various versions of gcc. I think it's some kind of linking issue, or perhaps dwarf to SLJL binding issue or some odd...hmm...anyway I'll alert them at least. Thanks!

On Wed, May 13, 2015 at 7:19 PM, Cecil Coupe notifications@github.com wrote:

gcc 4.9 does seem to work for google_hash - I ran benchmarks.rb to test it. picky-4.27.1 still has a problem but that's a different gem. I would not bother the RubyInstaller folks about this it was my bug.. They have no reason to use bleeding edge compilers when a mundane 4.7.2 is working for them. The real question is what does google_hash do that requires 4.9?

— Reply to this email directly or view it on GitHub https://github.com/rdp/google_hash/issues/37#issuecomment-101873719.