rapid7 / metasploit-framework

Metasploit Framework
https://www.metasploit.com/
Other
33.35k stars 13.81k forks source link

nio4r gem install error #17834

Closed Saroj7377 closed 1 year ago

Saroj7377 commented 1 year ago

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory: /data/data/com.termux/files/usr/lib/ruby/gems/3.2.0/gems/nio4r-2.5.8/ext/nio4r /data/data/com.termux/files/usr/bin/ruby -I /data/data/com.termux/files/usr/lib/ruby/3.2.0 extconf.rb checking for unistd.h... yes checking for linux/aio_abi.h... yes checking for linux/io_uring.h... yes checking for sys/select.h... yes checking for port_event_t in poll.h... no checking for sys/epoll.h... yes checking for sys/event.h... no checking for port_event_t in port.h... no checking for sys/resource.h... yes creating Makefile

current directory: /data/data/com.termux/files/usr/lib/ruby/gems/3.2.0/gems/nio4r-2.5.8/ext/nio4r make DESTDIR\= sitearchdir\=./.gem.20230330-6604-qv6s4x sitelibdir\=./.gem.20230330-6604-qv6s4x clean

current directory: /data/data/com.termux/files/usr/lib/ruby/gems/3.2.0/gems/nio4r-2.5.8/ext/nio4r make DESTDIR\= sitearchdir\=./.gem.20230330-6604-qv6s4x sitelibdir\=./.gem.20230330-6604-qv6s4x compiling bytebuffer.c bytebuffer.c:308:20: warning: implicit conversion loses integer precision: 'ssize_t' (aka 'long') to 'int' [-Wshorten-64-to-32] return INT2NUM(bytes_read);

bytebuffer.c:338:20: warning: implicit conversion loses integer
precision: 'ssize_t' (aka 'long') to 'int' [-Wshorten-64-to-32]
    return INT2NUM(bytes_written);
           ~~~~~~~ ^~~~~~~~~~~~~
2 warnings generated.
compiling monitor.c
monitor.c:185:40: warning: implicit conversion loses integer
precision: 'VALUE' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    NIO_Monitor_update_interests(self, interest);
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~       ^~~~~~~~
monitor.c:196:40: warning: implicit conversion loses integer
precision: 'VALUE' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    NIO_Monitor_update_interests(self, interest);
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~       ^~~~~~~~
2 warnings generated.
compiling nio4r_ext.c
In file included from nio4r_ext.c:6:
./../libev/ev.c:234:5: warning: 'EV_NO_THREADS' is not defined,
evaluates to 0 [-Wundef]
#if EV_NO_THREADS
    ^
./../libev/ev.c:240:5: warning: 'EV_NO_SMP' is not defined, evaluates
to 0 [-Wundef]
#if EV_NO_SMP
    ^
./../libev/ev.c:292:17: warning: '__GLIBC__' is not defined, evaluates
to 0 [-Wundef]
# if __linux && __GLIBC__ == 2 && __GLIBC_MINOR__ < 17
                ^
./../libev/ev.c:321:6: warning: '_POSIX_C_SOURCE' is not defined,
evaluates to 0 [-Wundef]
# if _POSIX_C_SOURCE >= 199309L
     ^
./../libev/ev.c:365:18: warning: '__GLIBC__' is not defined, evaluates
to 0 [-Wundef]
# if __linux && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__
>= 4))
                 ^
./../libev/ev.c:365:36: warning: '__GLIBC__' is not defined, evaluates
to 0 [-Wundef]
# if __linux && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__
>= 4))
                                   ^
./../libev/ev.c:381:18: warning: '__GLIBC__' is not defined, evaluates
to 0 [-Wundef]
# if __linux && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__
>= 7))
                 ^
./../libev/ev.c:381:36: warning: '__GLIBC__' is not defined, evaluates
to 0 [-Wundef]
# if __linux && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__
>= 7))
                                   ^
./../libev/ev.c:389:18: warning: '__GLIBC__' is not defined, evaluates
to 0 [-Wundef]
# if __linux && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__
>= 7))
                 ^
./../libev/ev.c:389:36: warning: '__GLIBC__' is not defined, evaluates
to 0 [-Wundef]
# if __linux && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__
>= 7))
                                   ^
./../libev/ev.c:397:18: warning: '__GLIBC__' is not defined, evaluates
to 0 [-Wundef]
# if __linux && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__
>= 8))
                 ^
./../libev/ev.c:397:36: warning: '__GLIBC__' is not defined, evaluates
to 0 [-Wundef]
# if __linux && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__
>= 8))
                                   ^
./../libev/ev.c:573:48: warning: '/*' within block comment [-Wcomment]
/*#define MIN_INTERVAL  0.00000095367431640625 /* 1/2**20, good till
2200 */
                                               ^
./../libev/ev.c:691:7: warning: '__OPTIMIZE_SIZE__' is not defined,
evaluates to 0 [-Wundef]
  #if __OPTIMIZE_SIZE__
      ^
./../libev/ev.c:699:5: warning: '__amd64' is not defined, evaluates to
0 [-Wundef]
#if ECB_GCC_AMD64 || ECB_MSVC_AMD64
    ^
./../libev/ev.c:687:24: note: expanded from macro 'ECB_GCC_AMD64'
#define ECB_GCC_AMD64 (__amd64 || __amd64__ || __x86_64 || __x86_64__)
                       ^
./../libev/ev.c:699:5: warning: '__amd64__' is not defined, evaluates
to 0 [-Wundef]
./../libev/ev.c:687:35: note: expanded from macro 'ECB_GCC_AMD64'
#define ECB_GCC_AMD64 (__amd64 || __amd64__ || __x86_64 || __x86_64__)
                                  ^
./../libev/ev.c:699:5: warning: '__x86_64' is not defined, evaluates
to 0 [-Wundef]
./../libev/ev.c:687:48: note: expanded from macro 'ECB_GCC_AMD64'
#define ECB_GCC_AMD64 (__amd64 || __amd64__ || __x86_64 || __x86_64__)
                                               ^
./../libev/ev.c:699:5: warning: '__x86_64__' is not defined, evaluates
to 0 [-Wundef]
./../libev/ev.c:687:60: note: expanded from macro 'ECB_GCC_AMD64'
#define ECB_GCC_AMD64 (__amd64 || __amd64__ || __x86_64 || __x86_64__)
                                                           ^
./../libev/ev.c:699:22: warning: '_M_AMD64' is not defined, evaluates
to 0 [-Wundef]
#if ECB_GCC_AMD64 || ECB_MSVC_AMD64
                     ^
./../libev/ev.c:688:25: note: expanded from macro 'ECB_MSVC_AMD64'
#define ECB_MSVC_AMD64 (_M_AMD64 || _M_X64)
                        ^
./../libev/ev.c:699:22: warning: '_M_X64' is not defined, evaluates to
0 [-Wundef]
./../libev/ev.c:688:37: note: expanded from macro 'ECB_MSVC_AMD64'
#define ECB_MSVC_AMD64 (_M_AMD64 || _M_X64)
                                    ^
./../libev/ev.c:739:5: warning: '__cplusplus' is not defined,
evaluates to 0 [-Wundef]
#if ECB_CPP
    ^
./../libev/ev.c:734:20: note: expanded from macro 'ECB_CPP'
#define ECB_CPP   (__cplusplus+0)
                   ^
./../libev/ev.c:751:5: warning: '__cplusplus' is not defined,
evaluates to 0 [-Wundef]
#if ECB_CPP
    ^
./../libev/ev.c:734:20: note: expanded from macro 'ECB_CPP'
#define ECB_CPP   (__cplusplus+0)
                   ^
./../libev/ev.c:766:5: warning: 'ECB_NO_THREADS' is not defined,
evaluates to 0 [-Wundef]
#if ECB_NO_THREADS
    ^
./../libev/ev.c:770:5: warning: 'ECB_NO_SMP' is not defined, evaluates
to 0 [-Wundef]
#if ECB_NO_SMP
    ^
./../libev/ev.c:775:5: warning: '__xlC__' is not defined, evaluates to
0 [-Wundef]
#if __xlC__ && ECB_CPP
    ^
./../libev/ev.c:779:13: warning: '_MSC_VER' is not defined, evaluates
to 0 [-Wundef]
#if 1400 <= _MSC_VER
            ^
./../libev/ev.c:786:9: warning: '__i386' is not defined, evaluates to
0 [-Wundef]
    #if __i386 || __i386__
        ^
./../libev/ev.c:786:19: warning: '__i386__' is not defined, evaluates
to 0 [-Wundef]
    #if __i386 || __i386__
                  ^
./../libev/ev.c:790:11: warning: '__amd64' is not defined, evaluates
to 0 [-Wundef]
    #elif ECB_GCC_AMD64
          ^
./../libev/ev.c:687:24: note: expanded from macro 'ECB_GCC_AMD64'
#define ECB_GCC_AMD64 (__amd64 || __amd64__ || __x86_64 || __x86_64__)
                       ^
./../libev/ev.c:790:11: warning: '__amd64__' is not defined, evaluates
to 0 [-Wundef]
./../libev/ev.c:687:35: note: expanded from macro 'ECB_GCC_AMD64'
#define ECB_GCC_AMD64 (__amd64 || __amd64__ || __x86_64 || __x86_64__)
                                  ^
./../libev/ev.c:790:11: warning: '__x86_64' is not defined, evaluates
to 0 [-Wundef]
./../libev/ev.c:687:48: note: expanded from macro 'ECB_GCC_AMD64'
#define ECB_GCC_AMD64 (__amd64 || __amd64__ || __x86_64 || __x86_64__)
                                               ^
./../libev/ev.c:790:11: warning: '__x86_64__' is not defined,
evaluates to 0 [-Wundef]
./../libev/ev.c:687:60: note: expanded from macro 'ECB_GCC_AMD64'
#define ECB_GCC_AMD64 (__amd64 || __amd64__ || __x86_64 || __x86_64__)
                                                           ^
./../libev/ev.c:794:11: warning: '__powerpc__' is not defined,
evaluates to 0 [-Wundef]
    #elif __powerpc__ || __ppc__ || __powerpc64__ || __ppc64__
          ^
./../libev/ev.c:794:26: warning: '__ppc__' is not defined, evaluates
to 0 [-Wundef]
    #elif __powerpc__ || __ppc__ || __powerpc64__ || __ppc64__
                         ^
./../libev/ev.c:794:37: warning: '__powerpc64__' is not defined,
evaluates to 0 [-Wundef]
    #elif __powerpc__ || __ppc__ || __powerpc64__ || __ppc64__
                                    ^
./../libev/ev.c:794:54: warning: '__ppc64__' is not defined, evaluates
to 0 [-Wundef]
    #elif __powerpc__ || __ppc__ || __powerpc64__ || __ppc64__
                                                     ^
./../libev/ev.c:924:5: warning: '__cplusplus' is not defined,
evaluates to 0 [-Wundef]
#if ECB_CPP
    ^
./../libev/ev.c:734:20: note: expanded from macro 'ECB_CPP'
#define ECB_CPP   (__cplusplus+0)
                   ^
./../libev/ev.c:981:5: warning: '__cplusplus' is not defined,
evaluates to 0 [-Wundef]
#if ECB_CPP11
    ^
./../libev/ev.c:735:20: note: expanded from macro 'ECB_CPP11'
#define ECB_CPP11 (__cplusplus >= 201103L)
                   ^
./../libev/ev.c:989:5: warning: '_MSC_VER' is not defined, evaluates
to 0 [-Wundef]
#if _MSC_VER >= 1300
    ^
./../libev/ev.c:995:5: warning: '_MSC_VER' is not defined, evaluates
to 0 [-Wundef]
#if _MSC_VER >= 1500
    ^
./../libev/ev.c:1003:5: warning: '_MSC_VER' is not defined, evaluates
to 0 [-Wundef]
#if _MSC_VER >= 1400
    ^
./../libev/ev.c:1192:26: warning: implicit conversion loses integer
precision: 'uint64_t' (aka 'unsigned long') to 'unsigned int'
[-Wshorten-64-to-32]
  return ecb_popcount32 (x) + ecb_popcount32 (x >> 32);
         ~~~~~~~~~~~~~~~~^~
./../libev/ev.c:1054:49: note: expanded from macro 'ecb_popcount32'
  #define ecb_popcount32(x) __builtin_popcount (x)
                            ~~~~~~~~~~~~~~~~~~  ^
./../libev/ev.c:1213:5: warning: '__cplusplus' is not defined,
evaluates to 0 [-Wundef]
#if ECB_CPP
    ^
./../libev/ev.c:734:20: note: expanded from macro 'ECB_CPP'
#define ECB_CPP   (__cplusplus+0)
                   ^
./../libev/ev.c:1335:108: warning: implicit conversion loses integer
precision: 'uint_fast32_t' (aka 'unsigned long') to 'unsigned int'
[-Wshorten-64-to-32]
ecb_inline uint_fast32_t ecb_be_u32_to_host (uint_fast32_t v) { return
ecb_little_endian () ? ecb_bswap32 (v) : v; }
~~~~~~~~~~~~~^~
./../libev/ev.c:1257:46: note: expanded from macro 'ecb_bswap32'
  #define ecb_bswap32(x)  __builtin_bswap32 (x)
                          ~~~~~~~~~~~~~~~~~  ^
./../libev/ev.c:1339:108: warning: implicit conversion loses integer
precision: 'uint_fast32_t' (aka 'unsigned long') to 'unsigned int'
[-Wshorten-64-to-32]
ecb_inline uint_fast32_t ecb_le_u32_to_host (uint_fast32_t v) { return
ecb_big_endian    () ? ecb_bswap32 (v) : v; }
~~~~~~~~~~~~~^~
./../libev/ev.c:1257:46: note: expanded from macro 'ecb_bswap32'
  #define ecb_bswap32(x)  __builtin_bswap32 (x)
                          ~~~~~~~~~~~~~~~~~  ^
./../libev/ev.c:1355:108: warning: implicit conversion loses integer
precision: 'uint_fast32_t' (aka 'unsigned long') to 'unsigned int'
[-Wshorten-64-to-32]
ecb_inline uint_fast32_t ecb_host_to_be_u32 (uint_fast32_t v) { return
ecb_little_endian () ? ecb_bswap32 (v) : v; }
~~~~~~~~~~~~~^~
./../libev/ev.c:1257:46: note: expanded from macro 'ecb_bswap32'
  #define ecb_bswap32(x)  __builtin_bswap32 (x)
                          ~~~~~~~~~~~~~~~~~  ^
./../libev/ev.c:1359:108: warning: implicit conversion loses integer
precision: 'uint_fast32_t' (aka 'unsigned long') to 'unsigned int'
[-Wshorten-64-to-32]
ecb_inline uint_fast32_t ecb_host_to_le_u32 (uint_fast32_t v) { return
ecb_big_endian    () ? ecb_bswap32 (v) : v; }
~~~~~~~~~~~~~^~
./../libev/ev.c:1257:46: note: expanded from macro 'ecb_bswap32'
  #define ecb_bswap32(x)  __builtin_bswap32 (x)
                          ~~~~~~~~~~~~~~~~~  ^
./../libev/ev.c:1367:87: warning: implicit conversion loses integer
precision: 'uint_fast32_t' (aka 'unsigned long') to 'uint32_t' (aka
'unsigned int') [-Wshorten-64-to-32]
ecb_inline void ecb_poke_be_u32_u (void *ptr, uint_fast32_t v) {
ecb_poke_u32_u (ptr, ecb_host_to_be_u32 (v)); }
~~~~~~~~~~~~~~       ^~~~~~~~~~~~~~~~~~~~~~
./../libev/ev.c:1371:87: warning: implicit conversion loses integer
precision: 'uint_fast32_t' (aka 'unsigned long') to 'uint32_t' (aka
'unsigned int') [-Wshorten-64-to-32]
ecb_inline void ecb_poke_le_u32_u (void *ptr, uint_fast32_t v) {
ecb_poke_u32_u (ptr, ecb_host_to_le_u32 (v)); }
~~~~~~~~~~~~~~       ^~~~~~~~~~~~~~~~~~~~~~
./../libev/ev.c:1374:5: warning: '__cplusplus' is not defined,
evaluates to 0 [-Wundef]
#if ECB_CPP
    ^
./../libev/ev.c:734:20: note: expanded from macro 'ECB_CPP'
#define ECB_CPP   (__cplusplus+0)
                   ^
./../libev/ev.c:1409:5: warning: '__cplusplus' is not defined,
evaluates to 0 [-Wundef]
#if ECB_CPP
    ^
./../libev/ev.c:734:20: note: expanded from macro 'ECB_CPP'
#define ECB_CPP   (__cplusplus+0)
                   ^
./../libev/ev.c:1425:5: warning: 'ecb_cplusplus_does_not_suck' is not
defined, evaluates to 0 [-Wundef]
#if ecb_cplusplus_does_not_suck
    ^
./../libev/ev.c:1540:8: warning: '__i386' is not defined, evaluates to
0 [-Wundef]
    || __i386 || __i386__ \
       ^
./../libev/ev.c:1540:18: warning: '__i386__' is not defined, evaluates
to 0 [-Wundef]
    || __i386 || __i386__ \
                 ^
./../libev/ev.c:1541:8: warning: '__amd64' is not defined, evaluates
to 0 [-Wundef]
    || ECB_GCC_AMD64 \
       ^
./../libev/ev.c:687:24: note: expanded from macro 'ECB_GCC_AMD64'
#define ECB_GCC_AMD64 (__amd64 || __amd64__ || __x86_64 || __x86_64__)
                       ^
./../libev/ev.c:1541:8: warning: '__amd64__' is not defined, evaluates
to 0 [-Wundef]
./../libev/ev.c:687:35: note: expanded from macro 'ECB_GCC_AMD64'
#define ECB_GCC_AMD64 (__amd64 || __amd64__ || __x86_64 || __x86_64__)
                                  ^
./../libev/ev.c:1541:8: warning: '__x86_64' is not defined, evaluates
to 0 [-Wundef]
./../libev/ev.c:687:48: note: expanded from macro 'ECB_GCC_AMD64'
#define ECB_GCC_AMD64 (__amd64 || __amd64__ || __x86_64 || __x86_64__)
                                               ^
./../libev/ev.c:1541:8: warning: '__x86_64__' is not defined,
evaluates to 0 [-Wundef]
./../libev/ev.c:687:60: note: expanded from macro 'ECB_GCC_AMD64'
#define ECB_GCC_AMD64 (__amd64 || __amd64__ || __x86_64 || __x86_64__)
                                                           ^
./../libev/ev.c:1542:8: warning: '__powerpc__' is not defined,
evaluates to 0 [-Wundef]
    || __powerpc__ || __ppc__ || __powerpc64__ || __ppc64__ \
       ^
./../libev/ev.c:1542:23: warning: '__ppc__' is not defined, evaluates
to 0 [-Wundef]
    || __powerpc__ || __ppc__ || __powerpc64__ || __ppc64__ \
                      ^
./../libev/ev.c:1542:34: warning: '__powerpc64__' is not defined,
evaluates to 0 [-Wundef]
    || __powerpc__ || __ppc__ || __powerpc64__ || __ppc64__ \
                                 ^
./../libev/ev.c:1542:51: warning: '__ppc64__' is not defined,
evaluates to 0 [-Wundef]
    || __powerpc__ || __ppc__ || __powerpc64__ || __ppc64__ \
                                                  ^
./../libev/ev.c:1510:13: warning: comparison of integers of different
signs: 'unsigned int' and 'int' [-Wsign-compare]
      if (e < (14 - 24)) /* might not be sharp, but is good enough */
          ~ ^  ~~~~~~~
./../libev/ev.c:1746:5: warning: 'ECB_MEMORY_FENCE_NEEDS_PTHREADS' is
not defined, evaluates to 0 [-Wundef]
#if ECB_MEMORY_FENCE_NEEDS_PTHREADS
    ^
./../libev/ev.c:1786:28: warning: 'ECB_AMD64' is not defined,
evaluates to 0 [-Wundef]
#if __GNUC__ && __linux && ECB_AMD64 && !EV_FEATURE_CODE
                           ^
./../libev/ev.c:1976:5: warning: 'EV_AVOID_STDIO' is not defined,
evaluates to 0 [-Wundef]
#if EV_AVOID_STDIO
    ^
./../libev/ev.c:2005:5: warning: 'EV_AVOID_STDIO' is not defined,
evaluates to 0 [-Wundef]
#if EV_AVOID_STDIO
    ^
./../libev/ev.c:2050:5: warning: 'EV_AVOID_STDIO' is not defined,
evaluates to 0 [-Wundef]
#if EV_AVOID_STDIO
    ^
./../libev/ev.c:2080:5: warning: 'EV_SELECT_IS_WINSOCKET' is not
defined, evaluates to 0 [-Wundef]
#if EV_SELECT_IS_WINSOCKET || EV_USE_IOCP
    ^
./../libev/ev.c:2080:31: warning: 'EV_USE_IOCP' is not defined,
evaluates to 0 [-Wundef]
#if EV_SELECT_IS_WINSOCKET || EV_USE_IOCP
                              ^
./../libev/ev.c:2083:5: warning: 'EV_USE_IOCP' is not defined,
evaluates to 0 [-Wundef]
#if EV_USE_IOCP
    ^
In file included from nio4r_ext.c:6:
In file included from ./../libev/ev.c:2130:
./../libev/ev_vars.h:83:22: warning: 'EV_GENWRAP' is not defined,
evaluates to 0 [-Wundef]
#if EV_USE_SELECT || EV_GENWRAP
                     ^
./../libev/ev_vars.h:150:22: warning: 'EV_GENWRAP' is not defined,
evaluates to 0 [-Wundef]
#if EV_USE_KQUEUE || EV_GENWRAP
                     ^
./../libev/ev_vars.h:159:20: warning: 'EV_GENWRAP' is not defined,
evaluates to 0 [-Wundef]
#if EV_USE_PORT || EV_GENWRAP
                   ^
./../libev/ev_vars.h:164:5: warning: 'EV_USE_IOCP' is not defined,
evaluates to 0 [-Wundef]
#if EV_USE_IOCP || EV_GENWRAP
    ^
./../libev/ev_vars.h:164:20: warning: 'EV_GENWRAP' is not defined,
evaluates to 0 [-Wundef]
#if EV_USE_IOCP || EV_GENWRAP
                   ^
./../libev/ev_vars.h:216:23: warning: 'EV_GENWRAP' is not defined,
evaluates to 0 [-Wundef]
#if EV_USE_INOTIFY || EV_GENWRAP
                      ^
./../libev/ev_vars.h:224:24: warning: 'EV_GENWRAP' is not defined,
evaluates to 0 [-Wundef]
#if EV_USE_SIGNALFD || EV_GENWRAP
                       ^
./../libev/ev_vars.h:230:23: warning: 'EV_GENWRAP' is not defined,
evaluates to 0 [-Wundef]
#if EV_USE_TIMERFD || EV_GENWRAP
                      ^
In file included from nio4r_ext.c:6:
./../libev/ev.c:2136:31: warning: 'extern' variable has an initializer
[-Wextern-initializer]
EV_API_DECL struct ev_loop *ev_default_loop_ptr = 0; /* needs to be
initialised to make it a definition despite extern */
                              ^
./../libev/ev.c:2249:19: warning: comparison of integers of different
signs: 'int' and 'unsigned long' [-Wsign-compare]
  if (elem * ncur > MALLOC_ROUND - sizeof (void *) * 4)
      ~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./../libev/ev.c:2402:5: warning: 'EV_SELECT_IS_WINSOCKET' is not
defined, evaluates to 0 [-Wundef]
#if EV_SELECT_IS_WINSOCKET || EV_USE_IOCP
    ^
./../libev/ev.c:2402:31: warning: 'EV_USE_IOCP' is not defined,
evaluates to 0 [-Wundef]
#if EV_SELECT_IS_WINSOCKET || EV_USE_IOCP
                              ^
./../libev/ev.c:2619:18: warning: implicit conversion loses integer
precision: 'long' to 'int' [-Wshorten-64-to-32]
      k = minpos - heap;
        ~ ~~~~~~~^~~~~~
./../libev/ev.c:3073:5: warning: 'EV_USE_IOCP' is not defined,
evaluates to 0 [-Wundef]
#if EV_USE_IOCP
    ^
In file included from nio4r_ext.c:6:
In file included from ./../libev/ev.c:3086:
./../libev/ev_linuxaio.c:125:10: warning: implicit conversion loses
integer precision: 'long' to 'int' [-Wshorten-64-to-32]
  return ev_syscall2 (SYS_io_setup, nr_events, ctx_idp);
  ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./../libev/ev.c:1826:57: note: expanded from macro 'ev_syscall2'
#define ev_syscall2(nr,arg1,arg2)                     syscall (nr,
arg1, arg2)
^~~~~~~~~~~~~~~~~~~~~~~~
In file included from nio4r_ext.c:6:
In file included from ./../libev/ev.c:3086:
./../libev/ev_linuxaio.c:132:10: warning: implicit conversion loses
integer precision: 'long' to 'int' [-Wshorten-64-to-32]
  return ev_syscall1 (SYS_io_destroy, ctx_id);
  ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./../libev/ev.c:1825:57: note: expanded from macro 'ev_syscall1'
#define ev_syscall1(nr,arg1)                          syscall (nr,
arg1)
^~~~~~~~~~~~~~~~~~
In file included from nio4r_ext.c:6:
In file included from ./../libev/ev.c:3086:
./../libev/ev_linuxaio.c:139:10: warning: implicit conversion loses
integer precision: 'long' to 'int' [-Wshorten-64-to-32]
  return ev_syscall3 (SYS_io_submit, ctx_id, nr, cbp);
  ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./../libev/ev.c:1827:57: note: expanded from macro 'ev_syscall3'
#define ev_syscall3(nr,arg1,arg2,arg3)                syscall (nr,
arg1, arg2, arg3)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from nio4r_ext.c:6:
In file included from ./../libev/ev.c:3086:
./../libev/ev_linuxaio.c:146:10: warning: implicit conversion loses
integer precision: 'long' to 'int' [-Wshorten-64-to-32]
  return ev_syscall3 (SYS_io_cancel, ctx_id, cbp, result);
  ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./../libev/ev.c:1827:57: note: expanded from macro 'ev_syscall3'
#define ev_syscall3(nr,arg1,arg2,arg3)                syscall (nr,
arg1, arg2, arg3)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from nio4r_ext.c:6:
In file included from ./../libev/ev.c:3086:
./../libev/ev_linuxaio.c:153:10: warning: implicit conversion loses
integer precision: 'long' to 'int' [-Wshorten-64-to-32]
return ev_syscall5 (SYS_io_getevents, ctx_id, min_nr, nr, events,
timeout);

^~~~~~~~~~~~~~~ ./../libev/ev.c:1829:57: note: expanded from macro 'ev_syscall5'

define ev_syscall5(nr,arg1,arg2,arg3,arg4,arg5) syscall (nr,

arg1, arg2, arg3, arg4, arg5) ^~~~~~~~~~ In file included from nio4r_ext.c:6: In file included from ./../libev/ev.c:3086: ./../libev/ev_linuxaio.c:310:26: warning: implicit conversion loses integer precision: '__s64' (aka 'long long') to 'int' [-Wshorten-64-to-32] int res = ev->res;

./../libev/ev_linuxaio.c:483:9: warning: add explicit braces to avoid
dangling else [-Wdangling-else]
        else if (errno == EAGAIN)
        ^
In file included from nio4r_ext.c:6:
In file included from ./../libev/ev.c:3089:
./../libev/ev_iouring.c:205:10: warning: implicit conversion loses
integer precision: 'long' to 'int' [-Wshorten-64-to-32]
  return ev_syscall2 (SYS_io_uring_setup, entries, params);
  ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./../libev/ev.c:1826:57: note: expanded from macro 'ev_syscall2'
#define ev_syscall2(nr,arg1,arg2)                     syscall (nr,
arg1, arg2)
^~~~~~~~~~~~~~~~~~~~~~~~
In file included from nio4r_ext.c:6:
In file included from ./../libev/ev.c:3089:
./../libev/ev_iouring.c:212:10: warning: implicit conversion loses
integer precision: 'long' to 'int' [-Wshorten-64-to-32]
return ev_syscall6 (SYS_io_uring_enter, fd, to_submit, min_complete,
flags, sig, sigsz);

^~~~~~~~~~~~~~~~~~~~ ./../libev/ev.c:1830:57: note: expanded from macro 'ev_syscall6'

define ev_syscall6(nr,arg1,arg2,arg3,arg4,arg5,arg6) syscall (nr,

arg1, arg2, arg3, arg4, arg5,arg6) ^~~~~~~~~~~ In file included from nio4r_ext.c:6: In file included from ./../libev/ev.c:3089: ./../libev/ev_iouring.c:298:31: warning: '/' within block comment [-Wcomment] /ECB_MEMORY_FENCE_RELEASE; / for the time being we assume this is not needed / ^ ./../libev/ev_iouring.c:293:22: warning: implicit conversion loses integer precision: 'long' to 'unsigned int' [-Wshorten-64-to-32] unsigned idx = sqe - EV_SQES;


./../libev/ev_iouring.c:359:5: warning: 'TODO' is not defined,
evaluates to 0 [-Wundef]
#if TODO
    ^
In file included from nio4r_ext.c:6:
./../libev/ev.c:3318:5: warning: 'EV_USE_IOCP' is not defined,
evaluates to 0 [-Wundef]
#if EV_USE_IOCP
    ^
./../libev/ev.c:3409:5: warning: 'EV_USE_IOCP' is not defined,
evaluates to 0 [-Wundef]
#if EV_USE_IOCP
    ^
./../libev/ev.c:4417:34: warning: '&' within '|'
[-Wbitwise-op-parentheses]
  fd_change (EV_A_ fd, w->events & EV__IOFDSET | EV_ANFD_REIFY);
                       ~~~~~~~~~~^~~~~~~~~~~~~ ~
./../libev/ev.c:4417:34: note: place parentheses around the '&'
expression to silence this warning
  fd_change (EV_A_ fd, w->events & EV__IOFDSET | EV_ANFD_REIFY);
                                 ^
                       (                      )
100 warnings generated.
compiling selector.c
selector.c:301:26: error: incompatible function pointer types passing
'VALUE (*)(VALUE *)' (aka 'unsigned long (*)(unsigned long *)') to
parameter of type 'VALUE (*)(VALUE)' (aka 'unsigned long (*)(unsigned
long)') [-Wincompatible-function-pointer-types]
return rb_ensure(func, (VALUE)args, NIO_Selector_unlock,
self);
                         ^~~~
/data/data/com.termux/files/usr/include/ruby-3.2.0/ruby/internal/iterator.h:425:25:
note: passing argument to parameter 'b_proc' here
VALUE rb_ensure(VALUE (*b_proc)(VALUE), VALUE data1, VALUE
(*e_proc)(VALUE), VALUE data2);
                        ^
1 error generated.
make: *** [Makefile:248: selector.o] Error 1

make failed, exit code 2

Gem files will remain installed in
/data/data/com.termux/files/usr/lib/ruby/gems/3.2.0/gems/nio4r-2.5.8
for inspection.
Results logged to
/data/data/com.termux/files/usr/lib/ruby/gems/3.2.0/extensions/aarch64-linux-android/3.2.0/nio4r-2.5.8/gem_make.out

An error occurred while installing nio4r (2.5.8), and Bundler
cannot continue.
Make sure that `gem install nio4r -v '2.5.8' --source
'https://rubygems.org/'` succeeds before bundling.

In Gemfile:
  metasploit-framework was resolved to 6.3.10, which depends on
    puma was resolved to 6.1.1, which depends on
      nio4r
github-actions[bot] commented 1 year ago

Metasploit installation on Termux is not supported. Refer to the following for more information: