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

Elias Karakoulakis commented on THRIFT-1804:
--------------------------------------------

Successfully compiled Thrift 0.9.0 main release on Debian for ARM after 
applying patch:

{noformat}
armleg:~/thrift-0.9.0# uname -a
Linux armleg 2.6.26-2-versatile #1 Wed Sep 21 12:00:53 UTC 2011 armv5tejl 
GNU/Linux

armleg:~/thrift-0.9.0# file compiler/cpp/thrift
compiler/cpp/thrift: ELF 32-bit LSB executable, ARM, version 1 (SYSV), 
dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped

armleg:~/thrift-0.9.0# file lib/rb/ext/thrift_native.so
lib/rb/ext/thrift_native.so: ELF 32-bit LSB shared object, ARM, version 1 
(SYSV), dynamically linked, not stripped

armleg:~/thrift-0.9.0#eg:~/thrift-0.9.0# gcc --version
gcc (Debian 4.4.5-8) 4.4.5
{noformat}
                
> Binary+compact protocol single byte error in Ruby library (ARM architecture): 
> caused by different char signedness
> -----------------------------------------------------------------------------------------------------------------
>
>                 Key: THRIFT-1804
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1804
>             Project: Thrift
>          Issue Type: Bug
>          Components: Build Process, Ruby - Library
>    Affects Versions: 0.9
>         Environment: - Debian/ARM Squeeze 6.0.6 native armv5te, compiler: gcc 
> (Debian 4.4.5-8) 4.4.5
> QEMU emulated debian hosts:
> - Debian Squeeze 6.0.6 emulated armvtejl, compiler: gcc (Debian 4.4.5-8) 
> - Debian Sid 7.0 on QEMU ARM versatilepb, compiler: gcc (Debian 4.6.3-14)
>            Reporter: Elias Karakoulakis
>         Attachments: THRIFT1804.patch
>
>
> These compilation tests fail when compiling for ARM:
>   1) BinaryProtocolAccelerated it should behave like a binary protocol should 
> read a byte
>      Failure/Error: @prot.read_byte.should == i
>        {*}expected: -128{*}
>             {*}got: 128 (using ==){*}
>      Shared Example Group: "a binary protocol" called from 
> ./spec/binary_protocol_accelerated_spec.rb:28
>      # ./spec/binary_protocol_spec_shared.rb:291:in `block (3 levels) in <top 
> (required)>'
>      # ./spec/binary_protocol_spec_shared.rb:289:in `each'
>      # ./spec/binary_protocol_spec_shared.rb:289:in `block (2 levels) in <top 
> (required)>'
>   2) BinaryProtocolAccelerated it should behave like a binary protocol should 
> perform a complete rpc with a struct return type
>      Failure/Error: result.should == Fixtures::COMPACT_PROTOCOL_TEST_STRUCT
>        expected: <CompactProtoTestStruct ... {*}byte_list:[-127, -1, 0, 1, 
> 127]{*}, ....
>             got: <CompactProtoTestStruct ... {*}byte_list:[129, 255, 0, 1, 
> 127]{*}, ...  (using ==)
> (***) only byte_list gets corrupted
>      Shared Example Group: "a binary protocol" called from 
> ./spec/binary_protocol_accelerated_spec.rb:28
>      # ./spec/binary_protocol_spec_shared.rb:375:in `block (3 levels) in <top 
> (required)>'
>      # ./spec/binary_protocol_spec_shared.rb:406:in `call'
>      # ./spec/binary_protocol_spec_shared.rb:406:in `srv_test'
>      # ./spec/binary_protocol_spec_shared.rb:370:in `block (2 levels) in <top 
> (required)>'
>   3) Thrift::CompactProtocol should encode and decode naked primitives 
> correctly
>      Failure/Error: read_back.should == value
>        {*}expected: -127{*}
>             {*}got: 129 (using ==){*}
>      # ./spec/compact_protocol_spec.rb:45:in `block (4 levels) in <top 
> (required)>'
>      # ./spec/compact_protocol_spec.rb:37:in `each'
>      # ./spec/compact_protocol_spec.rb:37:in `block (3 levels) in <top 
> (required)>'
>      # ./spec/compact_protocol_spec.rb:36:in `each_pair'
>      # ./spec/compact_protocol_spec.rb:36:in `block (2 levels) in <top 
> (required)>'
>   4) Thrift::CompactProtocol should encode and decode primitives in fields 
> correctly
>      Failure/Error: read_back.should == value
>        {*}expected: -127{*}
>             {*}got: 129 (using ==){*}
>      # ./spec/compact_protocol_spec.rb:68:in `block (4 levels) in <top 
> (required)>'
>      # ./spec/compact_protocol_spec.rb:55:in `each'
>      # ./spec/compact_protocol_spec.rb:55:in `block (3 levels) in <top 
> (required)>'
>      # ./spec/compact_protocol_spec.rb:51:in `each_pair'
>      # ./spec/compact_protocol_spec.rb:51:in `block (2 levels) in <top 
> (required)>'
> Finished in 5.87 seconds
> 364 examples, 4 failures, 1 pending

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to