Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Eventmachine fails to compile on Windows #542

Open
stell opened this issue Jun 15, 2023 · 15 comments
Open

Eventmachine fails to compile on Windows #542

stell opened this issue Jun 15, 2023 · 15 comments

Comments

@stell
Copy link

stell commented Jun 15, 2023

Using Ruby 3.2.2 on windows.

Also tried gem install mailcatcher --version=0.9.0.beta2

Something missing?

current directory: C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/eventmachine-1.0.9.1/ext/fastfilereader
C:/Ruby32-x64/bin/ruby.exe extconf.rb
creating Makefile

current directory: C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/eventmachine-1.0.9.1/ext/fastfilereader
make DESTDIR\= sitearchdir\=./.gem.20230615-11244-931meo sitelibdir\=./.gem.20230615-11244-931meo clean

current directory: C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/eventmachine-1.0.9.1/ext/fastfilereader
make DESTDIR\= sitearchdir\=./.gem.20230615-11244-931meo sitelibdir\=./.gem.20230615-11244-931meo
generating fastfilereaderext-x64-mingw-ucrt.def
compiling mapper.cpp
compiling rubymain.cpp
In file included from C:/Ruby32-x64/msys64/ucrt64/include/wtypes.h:8,
                 from C:/Ruby32-x64/msys64/ucrt64/include/winscard.h:10,
                 from C:/Ruby32-x64/msys64/ucrt64/include/windows.h:97,
                 from C:/Ruby32-x64/msys64/ucrt64/include/winsock2.h:23,
                 from C:/Ruby32-x64/include/ruby-3.2.0/ruby/win32.h:36,
                 from C:/Ruby32-x64/include/ruby-3.2.0/ruby/internal/dosish.h:38,
                 from C:/Ruby32-x64/include/ruby-3.2.0/ruby/defines.h:78,
                 from C:/Ruby32-x64/include/ruby-3.2.0/ruby/ruby.h:25,
                 from C:/Ruby32-x64/include/ruby-3.2.0/ruby.h:38,
                 from rubymain.cpp:26:
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:64:11: error: reference to 'byte' is ambiguous
   64 |   typedef byte cs_byte;
      |           ^~~~
In file included from C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/string:42,
                 from C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/locale_classes.h:40,
                 from C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/ios_base.h:41,
                 from C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/ios:42,
                 from C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/ostream:38,
                 from C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/iostream:39,
                 from rubymain.cpp:22:
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:397:170: error: reference to 'byte' is ambiguous
  397 |   typedef void (__RPC_API *CS_TYPE_TO_NETCS_ROUTINE)(RPC_BINDING_HANDLE hBinding,unsigned __LONG32 ulNetworkCodeSet,void *pLocalData,unsigned __LONG32 ulLocalDataLength,byte *pNetworkData,unsigned __LONG32 *pulNetworkDataLength,error_status_t *pStatus);
      |                                                                                                                                                                          ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:397:170: error: 'byte' has not been declared
  397 |   typedef void (__RPC_API *CS_TYPE_TO_NETCS_ROUTINE)(RPC_BINDING_HANDLE hBinding,unsigned __LONG32 ulNetworkCodeSet,void *pLocalData,unsigned __LONG32 ulLocalDataLength,byte *pNetworkData,unsigned __LONG32 *pulNetworkDataLength,error_status_t *pStatus);
      |                                                                                                                                                                          ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:398:119: error: reference to 'byte' is ambiguous
  398 |   typedef void (__RPC_API *CS_TYPE_FROM_NETCS_ROUTINE)(RPC_BINDING_HANDLE hBinding,unsigned __LONG32 ulNetworkCodeSet,byte *pNetworkData,unsigned __LONG32 ulNetworkDataLength,unsigned __LONG32 ulLocalBufferSize,void *pLocalData,unsigned __LONG32 *pulLocalDataLength,error_status_t *pStatus);
      |                                                                                                                       ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:398:119: error: 'byte' has not been declared
  398 |   typedef void (__RPC_API *CS_TYPE_FROM_NETCS_ROUTINE)(RPC_BINDING_HANDLE hBinding,unsigned __LONG32 ulNetworkCodeSet,byte *pNetworkData,unsigned __LONG32 ulNetworkDataLength,unsigned __LONG32 ulLocalBufferSize,void *pLocalData,unsigned __LONG32 *pulLocalDataLength,error_status_t *pStatus);
      |                                                                                                                       ^~~~
In file included from C:/Ruby32-x64/msys64/ucrt64/include/combaseapi.h:153,
                 from C:/Ruby32-x64/msys64/ucrt64/include/objbase.h:14,
                 from C:/Ruby32-x64/msys64/ucrt64/include/ole2.h:17,
                 from C:/Ruby32-x64/msys64/ucrt64/include/wtypes.h:13:
C:/Ruby32-x64/msys64/ucrt64/include/wtypesbase.h:327:5: error: reference to 'byte' is ambiguous
  327 |     byte abData[1];
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/wtypesbase.h:349:5: error: reference to 'byte' is ambiguous
  349 |     byte abData[1];
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/wtypesbase.h:364:5: error: reference to 'byte' is ambiguous
  364 |     byte *pData;
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
In file included from C:/Ruby32-x64/msys64/ucrt64/include/combaseapi.h:155:
C:/Ruby32-x64/msys64/ucrt64/include/objidlbase.h:2001:5: error: reference to 'byte' is ambiguous
 2001 |     byte *pv,
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidlbase.h:2001:5: error: 'byte' has not been declared
 2001 |     byte *pv,
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidlbase.h:2011:11: error: reference to 'byte' is ambiguous
 2011 |     const byte *pv,
      |           ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidlbase.h:2026:5: error: reference to 'byte' is ambiguous
 2026 |     byte *pv,
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidlbase.h:2026:5: error: 'byte' has not been declared
 2026 |     byte *pv,
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidlbase.h:2036:11: error: reference to 'byte' is ambiguous
 2036 |     const byte *pv,
      |           ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
In file included from C:/Ruby32-x64/msys64/ucrt64/include/unknwn.h:55,
                 from C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:767,
                 from C:/Ruby32-x64/msys64/ucrt64/include/objbase.h:66:
C:/Ruby32-x64/msys64/ucrt64/include/wtypes.h:54:5: error: reference to 'byte' is ambiguous
   54 |     byte data[1];
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/wtypes.h:62:5: error: reference to 'byte' is ambiguous
   62 |     byte data[1];
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/wtypes.h:67:5: error: reference to 'byte' is ambiguous
   67 |     byte data[1];
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/wtypes.h:71:5: error: reference to 'byte' is ambiguous
   71 |     byte data[1];
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/wtypes.h:76:5: error: reference to 'byte' is ambiguous
   76 |     byte data[1];
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/wtypes.h:81:5: error: reference to 'byte' is ambiguous
   81 |     byte data[1];
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/wtypes.h:307:5: error: reference to 'byte' is ambiguous
  307 |     byte pBuffer[1];
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:8453:9: error: reference to 'byte' is ambiguous
 8453 |         byte *pbData,
      |         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:8453:9: error: 'byte' has not been declared
 8453 |         byte *pbData,
      |         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:8961:5: error: reference to 'byte' is ambiguous
 8961 |     byte *reserved1,
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:8961:5: error: 'byte' has not been declared
 8961 |     byte *reserved1,
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:8985:5: error: reference to 'byte' is ambiguous
 8985 |     byte *reserved2,
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:8985:5: error: 'byte' has not been declared
 8985 |     byte *reserved2,
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:9004:5: error: reference to 'byte' is ambiguous
 9004 |     byte *reserved1,
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:9004:5: error: 'byte' has not been declared
 9004 |     byte *reserved1,
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:9030:5: error: reference to 'byte' is ambiguous
 9030 |     byte *reserved2,
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:9030:5: error: 'byte' has not been declared
 9030 |     byte *reserved2,
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:9485:5: error: reference to 'byte' is ambiguous
 9485 |     byte *pv,
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:9485:5: error: 'byte' has not been declared
 9485 |     byte *pv,
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:9496:11: error: reference to 'byte' is ambiguous
 9496 |     const byte *pv,
      |           ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:9513:5: error: reference to 'byte' is ambiguous
 9513 |     byte *pv,
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:9513:5: error: 'byte' has not been declared
 9513 |     byte *pv,
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:9525:11: error: reference to 'byte' is ambiguous
 9525 |     const byte *pv,
      |           ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:9933:5: error: reference to 'byte' is ambiguous
 9933 |     byte data[1];
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:11398:11: error: reference to 'byte' is ambiguous
11398 |     const byte *pv,
      |           ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:11409:11: error: reference to 'byte' is ambiguous
11409 |     const byte *pv,
      |           ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:11424:11: error: reference to 'byte' is ambiguous
11424 |     const byte *pv,
      |           ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:11436:11: error: reference to 'byte' is ambiguous
11436 |     const byte *pv,
      |           ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
In file included from C:/Ruby32-x64/msys64/ucrt64/include/msxml.h:311,
                 from C:/Ruby32-x64/msys64/ucrt64/include/urlmon.h:458,
                 from C:/Ruby32-x64/msys64/ucrt64/include/objbase.h:163:
C:/Ruby32-x64/msys64/ucrt64/include/oaidl.h:587:5: error: reference to 'byte' is ambiguous
  587 |     byte *pRecord;
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
make: *** [Makefile:240: rubymain.o] Fehler 1

make failed, exit code 2

@milesclark0
Copy link

I am having this same issue on windows. Is this resolved?

@stell
Copy link
Author

stell commented Jul 27, 2023

nope

@sj26
Copy link
Owner

sj26 commented Jul 29, 2023

v0.9.0 is out -- please give it a go:

gem install mailcatcher

Re-open if you continue having issues.

@sj26 sj26 closed this as completed Jul 29, 2023
@stell
Copy link
Author

stell commented Jul 29, 2023

No change:

c:\Ruby32-x64>gem install mailcatcher --no-update-sources --no-document
Fetching mailcatcher-0.9.0.gem
Temporarily enhancing PATH for MSYS/MINGW...
Building native extensions. This could take a while...
ERROR:  Error installing mailcatcher:
        ERROR: Failed to build gem native extension.

    current directory: C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/eventmachine-1.0.9.1/ext/fastfilereader
C:/Ruby32-x64/bin/ruby.exe extconf.rb
creating Makefile

current directory: C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/eventmachine-1.0.9.1/ext/fastfilereader
make DESTDIR\= sitearchdir\=./.gem.20230729-22868-6ls37f sitelibdir\=./.gem.20230729-22868-6ls37f clean

current directory: C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/eventmachine-1.0.9.1/ext/fastfilereader
make DESTDIR\= sitearchdir\=./.gem.20230729-22868-6ls37f sitelibdir\=./.gem.20230729-22868-6ls37f
generating fastfilereaderext-x64-mingw-ucrt.def
compiling mapper.cpp
compiling rubymain.cpp
In file included from C:/Ruby32-x64/msys64/ucrt64/include/wtypes.h:8,
                 from C:/Ruby32-x64/msys64/ucrt64/include/winscard.h:10,
                 from C:/Ruby32-x64/msys64/ucrt64/include/windows.h:97,
                 from C:/Ruby32-x64/msys64/ucrt64/include/winsock2.h:23,
                 from C:/Ruby32-x64/include/ruby-3.2.0/ruby/win32.h:36,
                 from C:/Ruby32-x64/include/ruby-3.2.0/ruby/internal/dosish.h:38,
                 from C:/Ruby32-x64/include/ruby-3.2.0/ruby/defines.h:78,
                 from C:/Ruby32-x64/include/ruby-3.2.0/ruby/ruby.h:25,
                 from C:/Ruby32-x64/include/ruby-3.2.0/ruby.h:38,
                 from rubymain.cpp:26:
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:64:11: error: reference to 'byte' is ambiguous
   64 |   typedef byte cs_byte;
      |           ^~~~
In file included from C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/string:42,
                 from C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/locale_classes.h:40,
                 from C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/ios_base.h:41,
                 from C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/ios:42,
                 from C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/ostream:38,
                 from C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/iostream:39,
                 from rubymain.cpp:22:
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:397:170: error: reference to 'byte' is ambiguous
  397 |   typedef void (__RPC_API *CS_TYPE_TO_NETCS_ROUTINE)(RPC_BINDING_HANDLE hBinding,unsigned __LONG32 ulNetworkCodeSet,void *pLocalData,unsigned __LONG32 ulLocalDataLength,byte *pNetworkData,unsigned __LONG32 *pulNetworkDataLength,error_status_t *pStatus);
      |                                                                                                                                                                          ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:397:170: error: 'byte' has not been declared
  397 |   typedef void (__RPC_API *CS_TYPE_TO_NETCS_ROUTINE)(RPC_BINDING_HANDLE hBinding,unsigned __LONG32 ulNetworkCodeSet,void *pLocalData,unsigned __LONG32 ulLocalDataLength,byte *pNetworkData,unsigned __LONG32 *pulNetworkDataLength,error_status_t *pStatus);
      |                                                                                                                                                                          ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:398:119: error: reference to 'byte' is ambiguous
  398 |   typedef void (__RPC_API *CS_TYPE_FROM_NETCS_ROUTINE)(RPC_BINDING_HANDLE hBinding,unsigned __LONG32 ulNetworkCodeSet,byte *pNetworkData,unsigned __LONG32 ulNetworkDataLength,unsigned __LONG32 ulLocalBufferSize,void *pLocalData,unsigned __LONG32 *pulLocalDataLength,error_status_t *pStatus);
      |                                                                                                                       ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:398:119: error: 'byte' has not been declared
  398 |   typedef void (__RPC_API *CS_TYPE_FROM_NETCS_ROUTINE)(RPC_BINDING_HANDLE hBinding,unsigned __LONG32 ulNetworkCodeSet,byte *pNetworkData,unsigned __LONG32 ulNetworkDataLength,unsigned __LONG32 ulLocalBufferSize,void *pLocalData,unsigned __LONG32 *pulLocalDataLength,error_status_t *pStatus);
      |                                                                                                                       ^~~~
In file included from C:/Ruby32-x64/msys64/ucrt64/include/combaseapi.h:153,
                 from C:/Ruby32-x64/msys64/ucrt64/include/objbase.h:14,
                 from C:/Ruby32-x64/msys64/ucrt64/include/ole2.h:17,
                 from C:/Ruby32-x64/msys64/ucrt64/include/wtypes.h:13:
C:/Ruby32-x64/msys64/ucrt64/include/wtypesbase.h:327:5: error: reference to 'byte' is ambiguous
  327 |     byte abData[1];
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/wtypesbase.h:349:5: error: reference to 'byte' is ambiguous
  349 |     byte abData[1];
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/wtypesbase.h:364:5: error: reference to 'byte' is ambiguous
  364 |     byte *pData;
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
In file included from C:/Ruby32-x64/msys64/ucrt64/include/combaseapi.h:155:
C:/Ruby32-x64/msys64/ucrt64/include/objidlbase.h:2001:5: error: reference to 'byte' is ambiguous
 2001 |     byte *pv,
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidlbase.h:2001:5: error: 'byte' has not been declared
 2001 |     byte *pv,
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidlbase.h:2011:11: error: reference to 'byte' is ambiguous
 2011 |     const byte *pv,
      |           ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidlbase.h:2026:5: error: reference to 'byte' is ambiguous
 2026 |     byte *pv,
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidlbase.h:2026:5: error: 'byte' has not been declared
 2026 |     byte *pv,
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidlbase.h:2036:11: error: reference to 'byte' is ambiguous
 2036 |     const byte *pv,
      |           ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
In file included from C:/Ruby32-x64/msys64/ucrt64/include/unknwn.h:55,
                 from C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:767,
                 from C:/Ruby32-x64/msys64/ucrt64/include/objbase.h:66:
C:/Ruby32-x64/msys64/ucrt64/include/wtypes.h:54:5: error: reference to 'byte' is ambiguous
   54 |     byte data[1];
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/wtypes.h:62:5: error: reference to 'byte' is ambiguous
   62 |     byte data[1];
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/wtypes.h:67:5: error: reference to 'byte' is ambiguous
   67 |     byte data[1];
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/wtypes.h:71:5: error: reference to 'byte' is ambiguous
   71 |     byte data[1];
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/wtypes.h:76:5: error: reference to 'byte' is ambiguous
   76 |     byte data[1];
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/wtypes.h:81:5: error: reference to 'byte' is ambiguous
   81 |     byte data[1];
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/wtypes.h:307:5: error: reference to 'byte' is ambiguous
  307 |     byte pBuffer[1];
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:8453:9: error: reference to 'byte' is ambiguous
 8453 |         byte *pbData,
      |         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:8453:9: error: 'byte' has not been declared
 8453 |         byte *pbData,
      |         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:8961:5: error: reference to 'byte' is ambiguous
 8961 |     byte *reserved1,
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:8961:5: error: 'byte' has not been declared
 8961 |     byte *reserved1,
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:8985:5: error: reference to 'byte' is ambiguous
 8985 |     byte *reserved2,
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:8985:5: error: 'byte' has not been declared
 8985 |     byte *reserved2,
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:9004:5: error: reference to 'byte' is ambiguous
 9004 |     byte *reserved1,
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:9004:5: error: 'byte' has not been declared
 9004 |     byte *reserved1,
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:9030:5: error: reference to 'byte' is ambiguous
 9030 |     byte *reserved2,
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:9030:5: error: 'byte' has not been declared
 9030 |     byte *reserved2,
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:9485:5: error: reference to 'byte' is ambiguous
 9485 |     byte *pv,
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:9485:5: error: 'byte' has not been declared
 9485 |     byte *pv,
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:9496:11: error: reference to 'byte' is ambiguous
 9496 |     const byte *pv,
      |           ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:9513:5: error: reference to 'byte' is ambiguous
 9513 |     byte *pv,
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:9513:5: error: 'byte' has not been declared
 9513 |     byte *pv,
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:9525:11: error: reference to 'byte' is ambiguous
 9525 |     const byte *pv,
      |           ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:9933:5: error: reference to 'byte' is ambiguous
 9933 |     byte data[1];
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:11398:11: error: reference to 'byte' is ambiguous
11398 |     const byte *pv,
      |           ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:11409:11: error: reference to 'byte' is ambiguous
11409 |     const byte *pv,
      |           ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:11424:11: error: reference to 'byte' is ambiguous
11424 |     const byte *pv,
      |           ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:11436:11: error: reference to 'byte' is ambiguous
11436 |     const byte *pv,
      |           ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
In file included from C:/Ruby32-x64/msys64/ucrt64/include/msxml.h:311,
                 from C:/Ruby32-x64/msys64/ucrt64/include/urlmon.h:458,
                 from C:/Ruby32-x64/msys64/ucrt64/include/objbase.h:163:
C:/Ruby32-x64/msys64/ucrt64/include/oaidl.h:587:5: error: reference to 'byte' is ambiguous
  587 |     byte *pRecord;
      |     ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
  406 |   enum class byte : unsigned char;
      |                              ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note:                 'typedef unsigned char byte'
   63 |   typedef unsigned char byte;
      |                         ^~~~
make: *** [Makefile:240: rubymain.o] Fehler 1

make failed, exit code 2

Gem files will remain installed in C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/eventmachine-1.0.9.1 for inspection.
Results logged to C:/Ruby32-x64/lib/ruby/gems/3.2.0/extensions/x64-mingw-ucrt/3.2.0/eventmachine-1.0.9.1/gem_make.out

c:\Ruby32-x64>

@sj26 sj26 reopened this Jul 30, 2023
@sj26 sj26 changed the title Installation fails Eventmachine fails to compile on Windows Jul 30, 2023
@sj26
Copy link
Owner

sj26 commented Jul 30, 2023

Ok, thanks. This is likely due to the old version of eventmachine. Maybe fixable via an upgrade (#546). But upgrading has had issues in the past. I'll take a look.

@sj26
Copy link
Owner

sj26 commented Jul 30, 2023

Please try the new pre-release v0.9.1.beta1:

gem install mailcatcher -v 0.9.1.beta1

@MSP-Greg
Copy link

MSP-Greg commented Jul 30, 2023

See eventmachine/eventmachine#970

Windows Ruby 3.1 & 3.2 are using OpenSSL 3, also newer Rubies on Ubuntu 22.04

@sj26
Copy link
Owner

sj26 commented Jul 30, 2023

Interesting. I tried getting CI on GitHub Actions running on Windows and it looks like it's refusing to use the compiled eventmachine extensions there:

https://github.com/sj26/mailcatcher/actions/runs/5704333930

@MSP-Greg
Copy link

Yes. eventmachine-1.2.7-x64-mingw32 was not properly built. It only contains *.so files for Ruby 2.0 thru 2.3, and the gem has no required_ruby_version constraints.

So, RubyGems thinks it's a valid gem for any mingw Ruby. Also, as of Ruby 3.1, Windows Rubies are 'ucrt` builds, which are different than 'mingw'.

Note that Nokogiri has both version (<vers>-x64-mingw-ucrt and <vers>-x64-mingw32).

And, to make things more interesting, Windows Ruby 3.1 is built with OpenSSL 1.1.1, and 3.2 is built with OpenSSL 3.1.0. JFYI, see more info at the latest CI run, the 'Ruby Info' step in each job.

Anyway, as I mentioned in #546, using EventMachine with Windows Rubies is a mess, and almost impossible to deal with in a gemspec. Maybe in the Gemfile...

@MSP-Greg
Copy link

@sj26

Ok, I've got a branch with four commits. It compiles on all OS's. It adds EventMachine from eventmachine/eventmachine#970 to the Gemfile, as below:

gem 'eventmachine', github: 'https://github.com/eventmachine/eventmachine/pull/970'

CI passes for both Ubuntu and macOS, but Windows hangs. I don't recall seeing Windows CI for any repo using Capybara/Selenium. But, EM does compile for Windows. Not sure what the issue is, could be fork, which is unavailable on Windows?

@MSP-Greg
Copy link

Made changes in another branch, got it to start the CI, then hit:

D:/a/mailcatcher/mailcatcher/lib/mail_catcher.rb:193:in `trap': unsupported signal `SIGQUIT' (ArgumentError)
        trap(signal) { EM.add_timer(0) { quit! } }
             ^^^^^^
	from D:/a/mailcatcher/mailcatcher/lib/mail_catcher.rb:193:in `block (2 levels) in run!'
	from D:/a/mailcatcher/mailcatcher/lib/mail_catcher.rb:192:in `each'
	from D:/a/mailcatcher/mailcatcher/lib/mail_catcher.rb:192:in `block in run!'

On my Windows 11 system with Ruby master:

> ruby -e 'puts Signal.list'
{"EXIT"=>0, "INT"=>2, "ILL"=>4, "ABRT"=>22, "FPE"=>8, "KILL"=>9, "SEGV"=>11, "TERM"=>15}

@MSP-Greg
Copy link

The other branch is 00-windows in my fork. Made a few changes, the CI run is here.

Notice the log here, which shows several messages Terminate batch job (Y/N)? . Windows may ask for confirmation, never checked if it can be disabled.

I work with Puma, and its tests often start a server in a sub-process, and we never found a way to stop the process via a signal.

The CI run did save a log artifact, maybe the screen grabs show any info about whether the tests are working?

Of course, Ubuntu & macOS are passing tests...

@stell
Copy link
Author

stell commented Aug 1, 2023

Installing mailcatcher was now successful, but not running:

c:\Ruby32-x64>gem install mailcatcher --version=0.9.1.beta1 --no-update-sources --no-document
Fetching eventmachine-1.2.7.gem
Fetching mailcatcher-0.9.1.beta1.gem
Temporarily enhancing PATH for MSYS/MINGW...
Building native extensions. This could take a while...
Successfully installed eventmachine-1.2.7
Successfully installed daemons-1.4.1
Building native extensions. This could take a while...
Successfully installed thin-1.8.2
Successfully installed sqlite3-1.6.3-x64-mingw-ucrt
Successfully installed tilt-2.2.0
Successfully installed rack-protection-1.5.5
Successfully installed sinatra-1.4.8
Successfully installed mini_mime-1.1.2
Successfully installed mail-2.8.1
Successfully installed websocket-extensions-0.1.5
Building native extensions. This could take a while...
Successfully installed websocket-driver-0.7.6
Successfully installed faye-websocket-0.11.3
Successfully installed mailcatcher-0.9.1.beta1
13 gems installed
c:\Ruby32-x64>mailcatcher
Starting MailCatcher v0.9.1.beta1
==> smtp://127.0.0.1:1025
==> http://127.0.0.1:1080
C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/mailcatcher-0.9.1.beta1/lib/mail_catcher.rb:197:in `trap': unsupported signal `SIGQUIT' (ArgumentError)

        trap(signal) { EM.add_timer(0) { quit! } }
             ^^^^^^
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/mailcatcher-0.9.1.beta1/lib/mail_catcher.rb:197:in `block (2 levels) in run!'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/mailcatcher-0.9.1.beta1/lib/mail_catcher.rb:196:in `each'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/mailcatcher-0.9.1.beta1/lib/mail_catcher.rb:196:in `block in run!'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/mailcatcher-0.9.1.beta1/lib/mail_catcher.rb:180:in `run!'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/mailcatcher-0.9.1.beta1/bin/mailcatcher:6:in `<top (required)>'
        from C:/Ruby32-x64/bin/mailcatcher:32:in `load'
        from C:/Ruby32-x64/bin/mailcatcher:32:in `<main>'

c:\Ruby32-x64>

@sj26
Copy link
Owner

sj26 commented Aug 4, 2023

Darn. I've pushed a commit which avoids binding SIGQUIT on windows and released v0.9.1.beta2. Give it a go?

@stell
Copy link
Author

stell commented Aug 5, 2023

Whoo-hoo! Thank you for your efforts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants