Gonzalo Aguilar created THRIFT-3370:
---------------------------------------

             Summary: errno extern variable redefined. Not compiling in Android
                 Key: THRIFT-3370
                 URL: https://issues.apache.org/jira/browse/THRIFT-3370
             Project: Thrift
          Issue Type: Bug
          Components: C glib - Library
    Affects Versions: 0.9.3
            Reporter: Gonzalo Aguilar


It seems that the definition of errno we are using on the c_glib transport is 
not 100% correct. While it's ok for ISO C99 compilers it fails under Android. 

My opinion is that Android is behaving incorrectly here but I cannot be sure 
until I check with you. 

In the thrift_socket.c an thrift_server_socket.c implementations there's a 
errno variable declared.

/* for errors coming from socket() and connect() */
extern int errno;

This variable is redefined in the ndk of the in the file 
arch-arm/usr/include/errno.h 
I don't know why. 

/* a macro expanding to the errno l-value */
#define  errno   (*__errno())

So the compilation fails because redefined. 

Commenting out the extern definition on these files it compiles, it was tested 
and it works. But I don't know how this can work since the definition of errno 
on the files change from int to pointer. 

Can someone comment this please?









--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to