[ https://issues.apache.org/jira/browse/THRIFT-3370?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Nobuaki Sukegawa resolved THRIFT-3370. -------------------------------------- Resolution: Fixed > errno extern variable redefined. Not compiling for 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 > Labels: build, c, easyfix > > 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)