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

ASF GitHub Bot commented on THRIFT-3437:
----------------------------------------

Github user becrux commented on a diff in the pull request:

    https://github.com/apache/thrift/pull/628#discussion_r45579380
  
    --- Diff: lib/cpp/test/TFileTransportTest.cpp ---
    @@ -91,19 +99,35 @@ class FsyncLog {
     class TempFile {
     public:
       TempFile(const char* directory, const char* prefix) {
    +  #ifdef __MINGW32__
    +    size_t path_len = strlen(prefix) + 8;
    +    path_ = new char[path_len];
    +    snprintf(path_, path_len, "%sXXXXXX", prefix);
    +    if (_mktemp_s(path_,path_len) == 0) {
    +      fd_ = open(path_,O_CREAT | O_RDWR | O_BINARY,S_IREAD | S_IWRITE);
    +      if (fd_ < 0) {
    +        throw apache::thrift::TException("_mktemp_s() failed");
    +      }
    +    } else {
    +      throw apache::thrift::TException("_mktemp_s() failed");
    +    }
    +  #else
    --- End diff --
    
    mkstemp is not available under MinGW-w64. _mktemp_s is the natural 
replacement. Unfortunately, MinGW-w64 headers do not provide an automatic 
define to replace _mktemp_s with mkstemp.


> Mingw-w64 build fail
> --------------------
>
>                 Key: THRIFT-3437
>                 URL: https://issues.apache.org/jira/browse/THRIFT-3437
>             Project: Thrift
>          Issue Type: Bug
>          Components: Build Process
>    Affects Versions: 0.9.3
>         Environment: Windows XP/7/8/10
>            Reporter: Antonio Di Monaco
>              Labels: patch
>
> When building Thrift code under MinGW-w64, I got a compilation failure, due 
> to the following problems:
> - Missing ws2_32 library link in CMakeLists.txt file
> - conflict with boost/tr1/functional.hpp, when using BOOST_THREAD
> - AI_ADDRCONFIG missing when Win32 version lower than 0x0600
> - Missing __MINGW32__ define
> Tests fail due to getsockname due to:
> - different Win32 getsockname behavior
> - BOOST_TEST_DYN_LINK not supported
> - Q_MOC_RUN / Boost conflict during build
> - mkstemp not supported (cause _mktemp_s should be used)
> Solved with pull request "Fixed MinGW-w64 build && boost/functional conflict 
> #628"



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

Reply via email to