[ https://issues.apache.org/jira/browse/HDFS-7817?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14334290#comment-14334290 ]
Colin Patrick McCabe commented on HDFS-7817: -------------------------------------------- {{hadoop-common-project/hadoop-common/src/main/native/src/exception.c}} has this: {code} const char* terror(int errnum) { #if defined(__sun) // MT-Safe under Solaris which doesn't support sys_errlist/sys_nerr return strerror(errnum); #else if ((errnum < 0) || (errnum >= sys_nerr)) { return "unknown error."; } return sys_errlist[errnum]; #endif } {code} We could do something more clever with detecting POSIX {{strerror_r}}, but it's kind of a pain and {{sys_errlist}} seems to work well. > libhdfs3: fix strerror_r detection > ---------------------------------- > > Key: HDFS-7817 > URL: https://issues.apache.org/jira/browse/HDFS-7817 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client > Reporter: Colin Patrick McCabe > > The signature of strerror_r is not quite detected correctly in libhdfs3. The > code assumes that {{int foo = strerror_r}} will fail to compile with the GNU > type signature, but this is not the case (C\+\+ will coerce the char* to an > int in this case). Instead, we should do what the libhdfs {{terror}} > (threaded error) function does here. -- This message was sent by Atlassian JIRA (v6.3.4#6332)