[ 
https://issues.apache.org/jira/browse/THRIFT-1382?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13133380#comment-13133380
 ] 

Jake Farrell commented on THRIFT-1382:
--------------------------------------

Tracked this down last night. This is a ruby 1.9.x problem, the 
lib/rb/ext/struct.c has a HAVE_STRLCPY check which configure.ac does not have a 
AC_CHECK_FUNCS([strlcpy]) for and ruby 1.9.x has the strlcpy in one of its 
header. Also the recent changed to use bundler to  build do not pass this check 
down to the makefile in the extension. For now if you need to compile the 
easiest hack is to just remove the strlcpy from struct.c. I will get a patch 
for this shortly to auto detect ruby version and that compiles from configure, 
from within the lib folder and using bundler by itself.
                
> Bundle install doesnot work because thrift crashes
> --------------------------------------------------
>
>                 Key: THRIFT-1382
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1382
>             Project: Thrift
>          Issue Type: Bug
>          Components: Ruby - Library
>    Affects Versions: 0.7
>         Environment: I'm using ubuntu 11.10 using RVM.
>            Reporter: rodrigo dias
>            Assignee: Jake Farrell
>            Priority: Blocker
>
> Error running bundle install:
> Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native 
> extension.
>         /home/developer3/.rvm/rubies/ruby-1.9.2-head/bin/ruby extconf.rb 
> checking for strlcpy() in string.h... no
> creating Makefile
> make
> gcc -I. 
> -I/home/developer3/.rvm/rubies/ruby-1.9.2-head/include/ruby-1.9.1/x86_64-linux
>  
> -I/home/developer3/.rvm/rubies/ruby-1.9.2-head/include/ruby-1.9.1/ruby/backward
>  -I/home/developer3/.rvm/rubies/ruby-1.9.2-head/include/ruby-1.9.1 -I.   
> -fPIC -g -O2 -Wall -Werror  -o thrift_native.o -c thrift_native.c
> gcc -I. 
> -I/home/developer3/.rvm/rubies/ruby-1.9.2-head/include/ruby-1.9.1/x86_64-linux
>  
> -I/home/developer3/.rvm/rubies/ruby-1.9.2-head/include/ruby-1.9.1/ruby/backward
>  -I/home/developer3/.rvm/rubies/ruby-1.9.2-head/include/ruby-1.9.1 -I.   
> -fPIC -g -O2 -Wall -Werror  -o compact_protocol.o -c compact_protocol.c
> gcc -I. 
> -I/home/developer3/.rvm/rubies/ruby-1.9.2-head/include/ruby-1.9.1/x86_64-linux
>  
> -I/home/developer3/.rvm/rubies/ruby-1.9.2-head/include/ruby-1.9.1/ruby/backward
>  -I/home/developer3/.rvm/rubies/ruby-1.9.2-head/include/ruby-1.9.1 -I.   
> -fPIC -g -O2 -Wall -Werror  -o protocol.o -c protocol.c
> gcc -I. 
> -I/home/developer3/.rvm/rubies/ruby-1.9.2-head/include/ruby-1.9.1/x86_64-linux
>  
> -I/home/developer3/.rvm/rubies/ruby-1.9.2-head/include/ruby-1.9.1/ruby/backward
>  -I/home/developer3/.rvm/rubies/ruby-1.9.2-head/include/ruby-1.9.1 -I.   
> -fPIC -g -O2 -Wall -Werror  -o struct.o -c struct.c
> struct.c:28:1: error: static declaration of 'strlcpy' follows non-static 
> declaration
> /home/developer3/.rvm/rubies/ruby-1.9.2-head/include/ruby-1.9.1/ruby/missing.h:157:20:
>  note: previous declaration of 'strlcpy' was here
> make: *** [struct.o] Error 1
> Gem files will remain installed in 
> /home/developer3/.rvm/gems/ruby-1.9.2-head@agg/gems/thrift-0.7.0 for 
> inspection.
> Results logged to 
> /home/developer3/.rvm/gems/ruby-1.9.2-head@agg/gems/thrift-0.7.0/ext/gem_make.out
> An error occured while installing thrift (0.7.0), and Bundler cannot continue.
> Make sure that `gem install thrift -v '0.7.0'` succeeds before bundling.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to