<86>Feb 29 11:42:54 userdel[1926848]: delete user 'rooter'
<86>Feb 29 11:42:54 userdel[1926848]: removed group 'rooter' owned by 'rooter'
<86>Feb 29 11:42:54 userdel[1926848]: removed shadow group 'rooter' owned by 'rooter'
<86>Feb 29 11:42:54 groupadd[1926861]: group added to /etc/group: name=rooter, GID=591
<86>Feb 29 11:42:54 groupadd[1926861]: group added to /etc/gshadow: name=rooter
<86>Feb 29 11:42:54 groupadd[1926861]: new group: name=rooter, GID=591
<86>Feb 29 11:42:54 useradd[1926874]: new user: name=rooter, UID=591, GID=591, home=/root, shell=/bin/bash
<86>Feb 29 11:42:54 userdel[1926890]: delete user 'builder'
<86>Feb 29 11:42:54 userdel[1926890]: removed group 'builder' owned by 'builder'
<86>Feb 29 11:42:54 userdel[1926890]: removed shadow group 'builder' owned by 'builder'
<86>Feb 29 11:42:54 groupadd[1926901]: group added to /etc/group: name=builder, GID=592
<86>Feb 29 11:42:54 groupadd[1926901]: group added to /etc/gshadow: name=builder
<86>Feb 29 11:42:54 groupadd[1926901]: new group: name=builder, GID=592
<86>Feb 29 11:42:54 useradd[1926916]: new user: name=builder, UID=592, GID=592, home=/usr/src, shell=/bin/bash
<13>Feb 29 11:42:58 rpmi: libidn2-2.3.0-alt1 sisyphus+240846.100.1.2 1573870475 installed
<13>Feb 29 11:42:58 rpmi: libruby-2.5.5-alt4.2 sisyphus+246908.100.1.1 1582630167 installed
<13>Feb 29 11:42:58 rpmi: rpm-macros-ruby-1:1.0.0-alt9 sisyphus+246603.300.1.1 1582058468 installed
<13>Feb 29 11:42:58 rpmi: libexpat-2.2.4-alt1 1503305345 installed
<13>Feb 29 11:42:58 rpmi: publicsuffix-list-dafsa-20200106-alt1 sisyphus+244007.100.1.1 1578588044 installed
<13>Feb 29 11:42:58 rpmi: libpsl-0.21.0-alt2 sisyphus+237083.100.1.1 1567531657 installed
<13>Feb 29 11:42:58 rpmi: libnghttp2-1.40.0-alt1 sisyphus+244416.100.1.1 1579241942 installed
<13>Feb 29 11:42:58 rpmi: libbrotlicommon-1.0.7-alt1 sisyphus+226738.100.2.1 1554554568 installed
<13>Feb 29 11:42:58 rpmi: libbrotlidec-1.0.7-alt1 sisyphus+226738.100.2.1 1554554568 installed
<13>Feb 29 11:42:58 rpmi: rsync-3.1.3-alt1 1518721086 installed
<13>Feb 29 11:42:58 rpmi: libverto-0.3.0-alt1_7 sisyphus+225932.100.1.1 1553994919 installed
<13>Feb 29 11:42:58 rpmi: libkeyutils-1.6-alt2 sisyphus+226520.100.2.1 1554512089 installed
<13>Feb 29 11:42:58 rpmi: libcom_err-1.44.6-alt1 sisyphus+224154.100.1.1 1552091678 installed
<13>Feb 29 11:42:58 rpmi: libedit3-3.1.20190324-alt1 sisyphus+236523.100.1.1 1566578247 installed
<13>Feb 29 11:42:58 rpmi: less-530-alt1 sisyphus+226367.200.2.2 1554151813 installed
<13>Feb 29 11:42:58 rpmi: diffstat-1.63-alt1 sisyphus+243663.100.1.1 1577480060 installed
<13>Feb 29 11:42:58 rpmi: chrpath-0.16-alt1 1453066316 installed
<13>Feb 29 11:42:58 rpmi: libp11-kit-0.23.15-alt1 sisyphus+226408.100.2.1 1554288204 installed
<13>Feb 29 11:42:58 rpmi: libtasn1-4.16.0-alt1 sisyphus+245480.100.1.1 1580825062 installed
<13>Feb 29 11:42:58 rpmi: libgdbm-1.8.3-alt10 1454943334 installed
<13>Feb 29 11:42:58 rpmi: libyaml2-0.2.2-alt1 sisyphus+229134.100.1.1 1557342721 installed
<13>Feb 29 11:42:58 rpmi: rpm-macros-alternatives-0.5.1-alt1 sisyphus+226946.100.1.1 1554830426 installed
<13>Feb 29 11:42:58 rpmi: alternatives-0.5.1-alt1 sisyphus+226946.100.1.1 1554830426 installed
<13>Feb 29 11:42:58 rpmi: ca-certificates-2020.01.23-alt1 sisyphus+244791.300.2.1 1580285500 installed
<13>Feb 29 11:42:58 rpmi: ca-trust-0.1.2-alt1 sisyphus+233348.100.1.1 1561653823 installed
<13>Feb 29 11:42:58 rpmi: p11-kit-trust-0.23.15-alt1 sisyphus+226408.100.2.1 1554288204 installed
<13>Feb 29 11:42:58 rpmi: libcrypto1.1-1.1.1d-alt1.1 sisyphus+237931.100.2.1 1569235729 installed
<13>Feb 29 11:42:58 rpmi: libssl1.1-1.1.1d-alt1.1 sisyphus+237931.100.2.1 1569235729 installed
<86>Feb 29 11:42:58 groupadd[1931638]: group added to /etc/group: name=_keytab, GID=499
<86>Feb 29 11:42:58 groupadd[1931638]: group added to /etc/gshadow: name=_keytab
<86>Feb 29 11:42:58 groupadd[1931638]: new group: name=_keytab, GID=499
<13>Feb 29 11:42:58 rpmi: libkrb5-1.17.1-alt1 sisyphus+242784.100.1.1 1576137330 installed
<86>Feb 29 11:42:58 groupadd[1931788]: group added to /etc/group: name=sasl, GID=498
<86>Feb 29 11:42:58 groupadd[1931788]: group added to /etc/gshadow: name=sasl
<86>Feb 29 11:42:58 groupadd[1931788]: new group: name=sasl, GID=498
<13>Feb 29 11:42:58 rpmi: libsasl2-3-2.1.27-alt2 sisyphus+228101.100.1.1 1556139863 installed
<13>Feb 29 11:42:59 rpmi: libldap-2.4.48-alt3 sisyphus+238816.100.1.1 1570449022 installed
<13>Feb 29 11:42:59 rpmi: libcurl-7.68.0-alt1 sisyphus+244054.100.1.1 1578655327 installed
<13>Feb 29 11:42:59 rpmi: openssl-1.1.1d-alt1.1 sisyphus+237931.100.2.1 1569235729 installed
<13>Feb 29 11:42:59 rpmi: ruby-rubygems-update-3.0.4-alt1 sisyphus+231621.240.57.1 1567243682 installed
<13>Feb 29 11:42:59 rpmi: gem-did-you-mean-1.3.0-alt2.1 sisyphus+237310.1100.2.1 1568211939 installed
<13>Feb 29 11:42:59 rpmi: ruby-minitest-5.11.3-alt1 sisyphus+219345.3500.8.1 1547631954 installed
<13>Feb 29 11:42:59 rpmi: ruby-net-telnet-0.2.0-alt1 sisyphus+219345.2700.8.1 1547631566 installed
<13>Feb 29 11:42:59 rpmi: gem-power-assert-1.1.4-alt1 sisyphus+226411.3200.6.1 1554380195 installed
<13>Feb 29 11:42:59 rpmi: ruby-test-unit-1:3.3.1-alt1 sisyphus+226411.5300.6.1 1554381151 installed
<13>Feb 29 11:42:59 rpmi: ruby-xmlrpc-0.3.0-alt1 sisyphus+219345.3300.8.1 1547631818 installed
<13>Feb 29 11:42:59 rpmi: gem-2.5.5-alt4.2 sisyphus+246908.100.1.1 1582630116 installed
<13>Feb 29 11:42:59 rpmi: ri-6.1.1-alt3 sisyphus+220149.7500.44.1 1552167568 installed
<13>Feb 29 11:42:59 rpmi: rdoc-6.1.1-alt3 sisyphus+220149.7500.44.1 1552167568 installed
<13>Feb 29 11:42:59 rpmi: ruby-rdoc-6.1.1-alt3 sisyphus+220149.7500.44.1 1552167568 installed
<13>Feb 29 11:42:59 rpmi: erb-2.5.5-alt4.2 sisyphus+246908.100.1.1 1582630116 installed
<13>Feb 29 11:42:59 rpmi: irb-2.5.5-alt4.2 sisyphus+246908.100.1.1 1582630116 installed
<13>Feb 29 11:42:59 rpmi: rake-12.3.3-alt1 sisyphus+238087.3100.11.1 1569616589 installed
<13>Feb 29 11:42:59 rpmi: ruby-rake-12.3.3-alt1 sisyphus+238087.3100.11.1 1569616589 installed
<13>Feb 29 11:42:59 rpmi: ruby-stdlibs-2.5.5-alt4.2 sisyphus+246908.100.1.1 1582630167 installed
<13>Feb 29 11:42:59 rpmi: bundle-2.0.2-alt2 sisyphus+237310.400.2.1 1568211679 installed
<13>Feb 29 11:42:59 rpmi: ruby-2.5.5-alt4.2 sisyphus+246908.100.1.1 1582630167 installed
<13>Feb 29 11:43:01 rpmi: ruby-bundler-2.0.2-alt2 sisyphus+237310.400.2.1 1568211679 installed
<13>Feb 29 11:43:01 rpmi: ruby-coderay-1.1.2-alt1.1 sisyphus.209945.5500 1537064013 installed
<13>Feb 29 11:43:01 rpmi: ruby-method_source-0.9.0-alt1 sisyphus.209945.31420 1537073074 installed
<13>Feb 29 11:43:01 rpmi: ruby-pry-0.12.2-alt3.1 sisyphus+237310.3600.2.1 1568214271 installed
<13>Feb 29 11:43:01 rpmi: gem-setup-5.999.3-alt9 sisyphus+237309.100.1.1 1568042127 installed
<13>Feb 29 11:43:01 rpmi: openssh-common-7.9p1-alt1 sisyphus+233206.100.1.1 1561507843 installed
<86>Feb 29 11:43:01 groupadd[1934944]: group added to /etc/group: name=sshagent, GID=497
<86>Feb 29 11:43:01 groupadd[1934944]: group added to /etc/gshadow: name=sshagent
<86>Feb 29 11:43:01 groupadd[1934944]: new group: name=sshagent, GID=497
<13>Feb 29 11:43:02 rpmi: openssh-clients-7.9p1-alt1 sisyphus+233206.100.1.1 1561507843 installed
<13>Feb 29 11:43:02 rpmi: git-core-2.24.1-alt1 sisyphus+242631.100.1.1 1576008130 installed
<13>Feb 29 11:43:02 rpmi: ruby-tool-setup-3.4.1-alt15 sisyphus+224756.300.2.1 1552290808 installed
<13>Feb 29 11:43:02 rpmi: libruby-devel-2.5.5-alt4.2 sisyphus+246908.100.1.1 1582630167 installed
<13>Feb 29 11:43:02 rpmi: rpm-build-ruby-1:1.0.0-alt9 sisyphus+246603.300.1.1 1582058468 installed
Building target platforms: i586
Building for target i586
Wrote: /usr/src/in/nosrpm/ruby-nio4r-2.5.1-alt1.nosrc.rpm
Installing ruby-nio4r-2.5.1-alt1.src.rpm
Building target platforms: i586
Building for target i586
Executing(%prep): /bin/sh -e /usr/src/tmp/rpm-tmp.61661
+ umask 022
+ /bin/mkdir -p /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ rm -rf ruby-nio4r-2.5.1
+ echo 'Source #0 (ruby-nio4r-2.5.1.tar):'
Source #0 (ruby-nio4r-2.5.1.tar):
+ /bin/tar -xf /usr/src/RPM/SOURCES/ruby-nio4r-2.5.1.tar
+ cd ruby-nio4r-2.5.1
+ /bin/chmod -c -Rf u+rwX,go-w .
+ exit 0
Executing(%build): /bin/sh -e /usr/src/tmp/rpm-tmp.35418
+ umask 022
+ /bin/mkdir -p /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ cd ruby-nio4r-2.5.1
+ /usr/bin/ruby -rvendor-specific /usr/bin/setup.rb build --prefixes=gem,ruby,rails-engine --gem-version-replace=
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
gem 'nio4r' at /usr/src/RPM/BUILD/ruby-nio4r-2.5.1
(ruby 2.5.5 i586-linux)

- - PRECONFIG - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

SetupConfig was saved. Edit to customize configuration.

- - COMPILE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

checking for unistd.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
checking for unistd.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
[/usr/src/RPM/BUILD/ruby-nio4r-2.5.1/ext/nio4r/.]$ make make
make: Entering directory '/usr/src/RPM/BUILD/ruby-nio4r-2.5.1/ext/nio4r'
compiling bytebuffer.c
compiling monitor.c
In file included from libev.h:9,
                 from nio4r.h:11,
                 from monitor.c:6:
monitor.c: In function 'NIO_Monitor_initialize':
../libev/ev.h:689:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  689 |   ((ev_watcher *)(void *)(ev))->active  = \
      |   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:709:51: note: in expansion of macro 'ev_init'
  709 | #define ev_io_init(ev,cb,fd,events)          do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0)
      |                                                   ^~~~~~~
monitor.c:99:5: note: in expansion of macro 'ev_io_init'
   99 |     ev_io_init(&monitor->ev_io, NIO_Selector_monitor_callback, FPTR_TO_FD(fptr), monitor->interests);
      |     ^~~~~~~~~~
../libev/ev.h:690:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  690 |   ((ev_watcher *)(void *)(ev))->pending = 0; \
      |   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:709:51: note: in expansion of macro 'ev_init'
  709 | #define ev_io_init(ev,cb,fd,events)          do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0)
      |                                                   ^~~~~~~
monitor.c:99:5: note: in expansion of macro 'ev_io_init'
   99 |     ev_io_init(&monitor->ev_io, NIO_Selector_monitor_callback, FPTR_TO_FD(fptr), monitor->interests);
      |     ^~~~~~~~~~
../libev/ev.h:734:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  734 | # define ev_set_priority(ev,pri)             (   (ev_watcher *)(void *)(ev))->priority = (pri)
      |                                              ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:691:3: note: in expansion of macro 'ev_set_priority'
  691 |   ev_set_priority ((ev), 0);   \
      |   ^~~~~~~~~~~~~~~
../libev/ev.h:709:51: note: in expansion of macro 'ev_init'
  709 | #define ev_io_init(ev,cb,fd,events)          do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0)
      |                                                   ^~~~~~~
monitor.c:99:5: note: in expansion of macro 'ev_io_init'
   99 |     ev_io_init(&monitor->ev_io, NIO_Selector_monitor_callback, FPTR_TO_FD(fptr), monitor->interests);
      |     ^~~~~~~~~~
../libev/ev.h:740:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  740 | # define ev_set_cb(ev,cb_)                   (ev_cb_ (ev) = (cb_), memmove (&((ev_watcher *)(ev))->cb, &ev_cb_ (ev), sizeof (ev_cb_ (ev))))
      |                                                                              ~^~~~~~~~~~~~~~~~~~~
../libev/ev.h:692:3: note: in expansion of macro 'ev_set_cb'
  692 |   ev_set_cb ((ev), cb_);   \
      |   ^~~~~~~~~
../libev/ev.h:709:51: note: in expansion of macro 'ev_init'
  709 | #define ev_io_init(ev,cb,fd,events)          do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0)
      |                                                   ^~~~~~~
monitor.c:99:5: note: in expansion of macro 'ev_io_init'
   99 |     ev_io_init(&monitor->ev_io, NIO_Selector_monitor_callback, FPTR_TO_FD(fptr), monitor->interests);
      |     ^~~~~~~~~~
compiling nio4r_ext.c
In file included from nio4r_ext.c:7:
../libev/ev.c:519:48: warning: "/*" within comment [-Wcomment]
  519 | /*#define MIN_INTERVAL  0.00000095367431640625 /* 1/2**20, good till 2200 */
      |                                                 
In file included from nio4r_ext.c:7:
../libev/ev.c:1875:31: warning: 'ev_default_loop_ptr' initialized and declared 'extern'
 1875 |   EV_API_DECL struct ev_loop *ev_default_loop_ptr = 0; /* needs to be initialised to make it a definition despite extern */
      |                               ^~~~~~~~~~~~~~~~~~~
In file included from libev.h:9,
                 from nio4r.h:11,
                 from nio4r_ext.c:6:
../libev/ev.c: In function 'evpipe_init':
../libev/ev.h:724:52: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  724 | #define ev_is_active(ev)                     (0 + ((ev_watcher *)(void *)(ev))->active) /* ro, true when the watcher has been started */
      |                                                   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.c:2446:8: note: in expansion of macro 'ev_is_active'
 2446 |   if (!ev_is_active (&pipe_w))
      |        ^~~~~~~~~~~~
In file included from ../libev/ev.c:202,
                 from nio4r_ext.c:7:
../libev/ev_epoll.c: In function 'epoll_modify':
../libev/ev_epoll.c:134:69: warning: left-hand operand of comma expression has no effect [-Wunused-value]
  134 |     assert (("libev: I/O watcher with invalid fd found in epoll_ctl", errno != EBADF && errno != ELOOP && errno != EINVAL));
      |                                                                     ^
../libev/ev_epoll.c:134:69: warning: left-hand operand of comma expression has no effect [-Wunused-value]
  134 |     assert (("libev: I/O watcher with invalid fd found in epoll_ctl", errno != EBADF && errno != ELOOP && errno != EINVAL));
      |                                                                     ^
../libev/ev_linuxaio.c: In function 'linuxaio_modify':
../libev/ev_linuxaio.c:304:61: warning: left-hand operand of comma expression has no effect [-Wunused-value]
  304 |       assert (("libev: linuxaio unexpected io_cancel failed", errno == EINPROGRESS));
      |                                                             ^
../libev/ev_linuxaio.c:304:61: warning: left-hand operand of comma expression has no effect [-Wunused-value]
  304 |       assert (("libev: linuxaio unexpected io_cancel failed", errno == EINPROGRESS));
      |                                                             ^
../libev/ev_linuxaio.c: In function 'linuxaio_parse_events':
../libev/ev_linuxaio.c:344:50: warning: left-hand operand of comma expression has no effect [-Wunused-value]
  344 |       assert (("libev: iocb fd must be in-bounds", fd >= 0 && fd < anfdmax));
      |                                                  ^
../libev/ev_linuxaio.c:344:50: warning: left-hand operand of comma expression has no effect [-Wunused-value]
  344 |       assert (("libev: iocb fd must be in-bounds", fd >= 0 && fd < anfdmax));
      |                                                  ^
../libev/ev_linuxaio.c: In function 'linuxaio_poll':
../libev/ev_linuxaio.c:553:57: warning: left-hand operand of comma expression has no effect [-Wunused-value]
  553 |             assert (("libev: event loop rejected bad fd", errno != EBADF));
      |                                                         ^
../libev/ev_linuxaio.c:553:57: warning: left-hand operand of comma expression has no effect [-Wunused-value]
  553 |             assert (("libev: event loop rejected bad fd", errno != EBADF));
      |                                                         ^
In file included from ../libev/ev.c:2753,
                 from nio4r_ext.c:7:
../libev/ev_linuxaio.c:498:10: warning: suggest explicit braces to avoid ambiguous 'else' [-Wdangling-else]
  498 |       if (expect_false (res < 0))
      |          ^
In file included from libev.h:9,
                 from nio4r.h:11,
                 from nio4r_ext.c:6:
../libev/ev_linuxaio.c: In function 'linuxaio_init':
../libev/ev.h:177:20: warning: left-hand operand of comma expression has no effect [-Wunused-value]
  177 | # define EV_A_ EV_A,                              /* a loop as first of multiple arguments */
      |                    ^
../libev/ev.h:689:27: note: in definition of macro 'ev_init'
  689 |   ((ev_watcher *)(void *)(ev))->active  = \
      |                           ^~
../libev/ev_linuxaio.c:592:3: note: in expansion of macro 'ev_io_init'
  592 |   ev_io_init  (EV_A_ &linuxaio_epoll_w, linuxaio_epoll_cb, backend_fd, EV_READ);
      |   ^~~~~~~~~~
../libev/ev_linuxaio.c:592:16: note: in expansion of macro 'EV_A_'
  592 |   ev_io_init  (EV_A_ &linuxaio_epoll_w, linuxaio_epoll_cb, backend_fd, EV_READ);
      |                ^~~~~
../libev/ev.h:689:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  689 |   ((ev_watcher *)(void *)(ev))->active  = \
      |   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:709:51: note: in expansion of macro 'ev_init'
  709 | #define ev_io_init(ev,cb,fd,events)          do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0)
      |                                                   ^~~~~~~
../libev/ev_linuxaio.c:592:3: note: in expansion of macro 'ev_io_init'
  592 |   ev_io_init  (EV_A_ &linuxaio_epoll_w, linuxaio_epoll_cb, backend_fd, EV_READ);
      |   ^~~~~~~~~~
../libev/ev.h:177:20: warning: left-hand operand of comma expression has no effect [-Wunused-value]
  177 | # define EV_A_ EV_A,                              /* a loop as first of multiple arguments */
      |                    ^
../libev/ev.h:690:27: note: in definition of macro 'ev_init'
  690 |   ((ev_watcher *)(void *)(ev))->pending = 0; \
      |                           ^~
../libev/ev_linuxaio.c:592:3: note: in expansion of macro 'ev_io_init'
  592 |   ev_io_init  (EV_A_ &linuxaio_epoll_w, linuxaio_epoll_cb, backend_fd, EV_READ);
      |   ^~~~~~~~~~
../libev/ev_linuxaio.c:592:16: note: in expansion of macro 'EV_A_'
  592 |   ev_io_init  (EV_A_ &linuxaio_epoll_w, linuxaio_epoll_cb, backend_fd, EV_READ);
      |                ^~~~~
../libev/ev.h:690:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  690 |   ((ev_watcher *)(void *)(ev))->pending = 0; \
      |   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:709:51: note: in expansion of macro 'ev_init'
  709 | #define ev_io_init(ev,cb,fd,events)          do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0)
      |                                                   ^~~~~~~
../libev/ev_linuxaio.c:592:3: note: in expansion of macro 'ev_io_init'
  592 |   ev_io_init  (EV_A_ &linuxaio_epoll_w, linuxaio_epoll_cb, backend_fd, EV_READ);
      |   ^~~~~~~~~~
../libev/ev.h:177:20: warning: left-hand operand of comma expression has no effect [-Wunused-value]
  177 | # define EV_A_ EV_A,                              /* a loop as first of multiple arguments */
      |                    ^
../libev/ev.h:734:73: note: in definition of macro 'ev_set_priority'
  734 | # define ev_set_priority(ev,pri)             (   (ev_watcher *)(void *)(ev))->priority = (pri)
      |                                                                         ^~
../libev/ev.h:709:51: note: in expansion of macro 'ev_init'
  709 | #define ev_io_init(ev,cb,fd,events)          do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0)
      |                                                   ^~~~~~~
../libev/ev_linuxaio.c:592:3: note: in expansion of macro 'ev_io_init'
  592 |   ev_io_init  (EV_A_ &linuxaio_epoll_w, linuxaio_epoll_cb, backend_fd, EV_READ);
      |   ^~~~~~~~~~
../libev/ev_linuxaio.c:592:16: note: in expansion of macro 'EV_A_'
  592 |   ev_io_init  (EV_A_ &linuxaio_epoll_w, linuxaio_epoll_cb, backend_fd, EV_READ);
      |                ^~~~~
../libev/ev.h:734:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  734 | # define ev_set_priority(ev,pri)             (   (ev_watcher *)(void *)(ev))->priority = (pri)
      |                                              ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:691:3: note: in expansion of macro 'ev_set_priority'
  691 |   ev_set_priority ((ev), 0);   \
      |   ^~~~~~~~~~~~~~~
../libev/ev.h:709:51: note: in expansion of macro 'ev_init'
  709 | #define ev_io_init(ev,cb,fd,events)          do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0)
      |                                                   ^~~~~~~
../libev/ev_linuxaio.c:592:3: note: in expansion of macro 'ev_io_init'
  592 |   ev_io_init  (EV_A_ &linuxaio_epoll_w, linuxaio_epoll_cb, backend_fd, EV_READ);
      |   ^~~~~~~~~~
../libev/ev.h:177:20: warning: left-hand operand of comma expression has no effect [-Wunused-value]
  177 | # define EV_A_ EV_A,                              /* a loop as first of multiple arguments */
      |                    ^
../libev/ev.h:726:47: note: in definition of macro 'ev_cb_'
  726 | #define ev_cb_(ev)                           (ev)->cb /* rw */
      |                                               ^~
../libev/ev.h:692:3: note: in expansion of macro 'ev_set_cb'
  692 |   ev_set_cb ((ev), cb_);   \
      |   ^~~~~~~~~
../libev/ev.h:709:51: note: in expansion of macro 'ev_init'
  709 | #define ev_io_init(ev,cb,fd,events)          do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0)
      |                                                   ^~~~~~~
../libev/ev_linuxaio.c:592:3: note: in expansion of macro 'ev_io_init'
  592 |   ev_io_init  (EV_A_ &linuxaio_epoll_w, linuxaio_epoll_cb, backend_fd, EV_READ);
      |   ^~~~~~~~~~
../libev/ev_linuxaio.c:592:16: note: in expansion of macro 'EV_A_'
  592 |   ev_io_init  (EV_A_ &linuxaio_epoll_w, linuxaio_epoll_cb, backend_fd, EV_READ);
      |                ^~~~~
../libev/ev.h:177:20: warning: left-hand operand of comma expression has no effect [-Wunused-value]
  177 | # define EV_A_ EV_A,                              /* a loop as first of multiple arguments */
      |                    ^
../libev/ev.h:740:94: note: in definition of macro 'ev_set_cb'
  740 | # define ev_set_cb(ev,cb_)                   (ev_cb_ (ev) = (cb_), memmove (&((ev_watcher *)(ev))->cb, &ev_cb_ (ev), sizeof (ev_cb_ (ev))))
      |                                                                                              ^~
../libev/ev.h:709:51: note: in expansion of macro 'ev_init'
  709 | #define ev_io_init(ev,cb,fd,events)          do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0)
      |                                                   ^~~~~~~
../libev/ev_linuxaio.c:592:3: note: in expansion of macro 'ev_io_init'
  592 |   ev_io_init  (EV_A_ &linuxaio_epoll_w, linuxaio_epoll_cb, backend_fd, EV_READ);
      |   ^~~~~~~~~~
../libev/ev_linuxaio.c:592:16: note: in expansion of macro 'EV_A_'
  592 |   ev_io_init  (EV_A_ &linuxaio_epoll_w, linuxaio_epoll_cb, backend_fd, EV_READ);
      |                ^~~~~
../libev/ev.h:740:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  740 | # define ev_set_cb(ev,cb_)                   (ev_cb_ (ev) = (cb_), memmove (&((ev_watcher *)(ev))->cb, &ev_cb_ (ev), sizeof (ev_cb_ (ev))))
      |                                                                              ~^~~~~~~~~~~~~~~~~~~
../libev/ev.h:692:3: note: in expansion of macro 'ev_set_cb'
  692 |   ev_set_cb ((ev), cb_);   \
      |   ^~~~~~~~~
../libev/ev.h:709:51: note: in expansion of macro 'ev_init'
  709 | #define ev_io_init(ev,cb,fd,events)          do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0)
      |                                                   ^~~~~~~
../libev/ev_linuxaio.c:592:3: note: in expansion of macro 'ev_io_init'
  592 |   ev_io_init  (EV_A_ &linuxaio_epoll_w, linuxaio_epoll_cb, backend_fd, EV_READ);
      |   ^~~~~~~~~~
../libev/ev.h:177:20: warning: left-hand operand of comma expression has no effect [-Wunused-value]
  177 | # define EV_A_ EV_A,                              /* a loop as first of multiple arguments */
      |                    ^
../libev/ev.h:726:47: note: in definition of macro 'ev_cb_'
  726 | #define ev_cb_(ev)                           (ev)->cb /* rw */
      |                                               ^~
../libev/ev.h:692:3: note: in expansion of macro 'ev_set_cb'
  692 |   ev_set_cb ((ev), cb_);   \
      |   ^~~~~~~~~
../libev/ev.h:709:51: note: in expansion of macro 'ev_init'
  709 | #define ev_io_init(ev,cb,fd,events)          do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0)
      |                                                   ^~~~~~~
../libev/ev_linuxaio.c:592:3: note: in expansion of macro 'ev_io_init'
  592 |   ev_io_init  (EV_A_ &linuxaio_epoll_w, linuxaio_epoll_cb, backend_fd, EV_READ);
      |   ^~~~~~~~~~
../libev/ev_linuxaio.c:592:16: note: in expansion of macro 'EV_A_'
  592 |   ev_io_init  (EV_A_ &linuxaio_epoll_w, linuxaio_epoll_cb, backend_fd, EV_READ);
      |                ^~~~~
../libev/ev.h:177:20: warning: left-hand operand of comma expression has no effect [-Wunused-value]
  177 | # define EV_A_ EV_A,                              /* a loop as first of multiple arguments */
      |                    ^
../libev/ev.h:726:47: note: in definition of macro 'ev_cb_'
  726 | #define ev_cb_(ev)                           (ev)->cb /* rw */
      |                                               ^~
../libev/ev.h:692:3: note: in expansion of macro 'ev_set_cb'
  692 |   ev_set_cb ((ev), cb_);   \
      |   ^~~~~~~~~
../libev/ev.h:709:51: note: in expansion of macro 'ev_init'
  709 | #define ev_io_init(ev,cb,fd,events)          do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0)
      |                                                   ^~~~~~~
../libev/ev_linuxaio.c:592:3: note: in expansion of macro 'ev_io_init'
  592 |   ev_io_init  (EV_A_ &linuxaio_epoll_w, linuxaio_epoll_cb, backend_fd, EV_READ);
      |   ^~~~~~~~~~
../libev/ev_linuxaio.c:592:16: note: in expansion of macro 'EV_A_'
  592 |   ev_io_init  (EV_A_ &linuxaio_epoll_w, linuxaio_epoll_cb, backend_fd, EV_READ);
      |                ^~~~~
../libev/ev.h:177:20: warning: left-hand operand of comma expression has no effect [-Wunused-value]
  177 | # define EV_A_ EV_A,                              /* a loop as first of multiple arguments */
      |                    ^
../libev/ev.h:695:52: note: in definition of macro 'ev_io_set'
  695 | #define ev_io_set(ev,fd_,events_)            do { (ev)->fd = (fd_); (ev)->events = (events_) | EV__IOFDSET; } while (0)
      |                                                    ^~
../libev/ev_linuxaio.c:592:3: note: in expansion of macro 'ev_io_init'
  592 |   ev_io_init  (EV_A_ &linuxaio_epoll_w, linuxaio_epoll_cb, backend_fd, EV_READ);
      |   ^~~~~~~~~~
../libev/ev_linuxaio.c:592:16: note: in expansion of macro 'EV_A_'
  592 |   ev_io_init  (EV_A_ &linuxaio_epoll_w, linuxaio_epoll_cb, backend_fd, EV_READ);
      |                ^~~~~
../libev/ev.h:177:20: warning: left-hand operand of comma expression has no effect [-Wunused-value]
  177 | # define EV_A_ EV_A,                              /* a loop as first of multiple arguments */
      |                    ^
../libev/ev.h:695:70: note: in definition of macro 'ev_io_set'
  695 | #define ev_io_set(ev,fd_,events_)            do { (ev)->fd = (fd_); (ev)->events = (events_) | EV__IOFDSET; } while (0)
      |                                                                      ^~
../libev/ev_linuxaio.c:592:3: note: in expansion of macro 'ev_io_init'
  592 |   ev_io_init  (EV_A_ &linuxaio_epoll_w, linuxaio_epoll_cb, backend_fd, EV_READ);
      |   ^~~~~~~~~~
../libev/ev_linuxaio.c:592:16: note: in expansion of macro 'EV_A_'
  592 |   ev_io_init  (EV_A_ &linuxaio_epoll_w, linuxaio_epoll_cb, backend_fd, EV_READ);
      |                ^~~~~
../libev/ev.h:734:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  734 | # define ev_set_priority(ev,pri)             (   (ev_watcher *)(void *)(ev))->priority = (pri)
      |                                              ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev_linuxaio.c:593:3: note: in expansion of macro 'ev_set_priority'
  593 |   ev_set_priority (&linuxaio_epoll_w, EV_MAXPRI);
      |   ^~~~~~~~~~~~~~~
../libev/ev_linuxaio.c: In function 'linuxaio_fork':
../libev/ev.h:177:20: warning: left-hand operand of comma expression has no effect [-Wunused-value]
  177 | # define EV_A_ EV_A,                              /* a loop as first of multiple arguments */
      |                    ^
../libev/ev.h:695:52: note: in definition of macro 'ev_io_set'
  695 | #define ev_io_set(ev,fd_,events_)            do { (ev)->fd = (fd_); (ev)->events = (events_) | EV__IOFDSET; } while (0)
      |                                                    ^~
../libev/ev_linuxaio.c:636:16: note: in expansion of macro 'EV_A_'
  636 |   ev_io_set   (EV_A_ &linuxaio_epoll_w, backend_fd, EV_READ);
      |                ^~~~~
../libev/ev.h:177:20: warning: left-hand operand of comma expression has no effect [-Wunused-value]
  177 | # define EV_A_ EV_A,                              /* a loop as first of multiple arguments */
      |                    ^
../libev/ev.h:695:70: note: in definition of macro 'ev_io_set'
  695 | #define ev_io_set(ev,fd_,events_)            do { (ev)->fd = (fd_); (ev)->events = (events_) | EV__IOFDSET; } while (0)
      |                                                                      ^~
../libev/ev_linuxaio.c:636:16: note: in expansion of macro 'EV_A_'
  636 |   ev_io_set   (EV_A_ &linuxaio_epoll_w, backend_fd, EV_READ);
      |                ^~~~~
In file included from ../libev/ev.c:202,
                 from nio4r_ext.c:7:
../libev/ev_poll.c: In function 'poll_poll':
../libev/ev_poll.c:113:75: warning: left-hand operand of comma expression has no effect [-Wunused-value]
  113 |         assert (("libev: poll returned illegal result, broken BSD kernel?", p < polls + pollcnt));
      |                                                                           ^
../libev/ev_poll.c:113:75: warning: left-hand operand of comma expression has no effect [-Wunused-value]
  113 |         assert (("libev: poll returned illegal result, broken BSD kernel?", p < polls + pollcnt));
      |                                                                           ^
../libev/ev_poll.c:121:68: warning: left-hand operand of comma expression has no effect [-Wunused-value]
  121 |                 assert (("libev: poll found invalid fd in poll set", 0));
      |                                                                    ^
../libev/ev_poll.c:121:68: warning: left-hand operand of comma expression has no effect [-Wunused-value]
  121 |                 assert (("libev: poll found invalid fd in poll set", 0));
      |                                                                    ^
In file included from libev.h:9,
                 from nio4r.h:11,
                 from nio4r_ext.c:6:
../libev/ev.c: In function 'loop_init':
../libev/ev.h:689:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  689 |   ((ev_watcher *)(void *)(ev))->active  = \
      |   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:716:51: note: in expansion of macro 'ev_init'
  716 | #define ev_prepare_init(ev,cb)               do { ev_init ((ev), (cb)); ev_prepare_set ((ev)); } while (0)
      |                                                   ^~~~~~~
../libev/ev.c:2993:7: note: in expansion of macro 'ev_prepare_init'
 2993 |       ev_prepare_init (&pending_w, pendingcb);
      |       ^~~~~~~~~~~~~~~
../libev/ev.h:690:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  690 |   ((ev_watcher *)(void *)(ev))->pending = 0; \
      |   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:716:51: note: in expansion of macro 'ev_init'
  716 | #define ev_prepare_init(ev,cb)               do { ev_init ((ev), (cb)); ev_prepare_set ((ev)); } while (0)
      |                                                   ^~~~~~~
../libev/ev.c:2993:7: note: in expansion of macro 'ev_prepare_init'
 2993 |       ev_prepare_init (&pending_w, pendingcb);
      |       ^~~~~~~~~~~~~~~
../libev/ev.h:734:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  734 | # define ev_set_priority(ev,pri)             (   (ev_watcher *)(void *)(ev))->priority = (pri)
      |                                              ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:691:3: note: in expansion of macro 'ev_set_priority'
  691 |   ev_set_priority ((ev), 0);   \
      |   ^~~~~~~~~~~~~~~
../libev/ev.h:716:51: note: in expansion of macro 'ev_init'
  716 | #define ev_prepare_init(ev,cb)               do { ev_init ((ev), (cb)); ev_prepare_set ((ev)); } while (0)
      |                                                   ^~~~~~~
../libev/ev.c:2993:7: note: in expansion of macro 'ev_prepare_init'
 2993 |       ev_prepare_init (&pending_w, pendingcb);
      |       ^~~~~~~~~~~~~~~
../libev/ev.h:740:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  740 | # define ev_set_cb(ev,cb_)                   (ev_cb_ (ev) = (cb_), memmove (&((ev_watcher *)(ev))->cb, &ev_cb_ (ev), sizeof (ev_cb_ (ev))))
      |                                                                              ~^~~~~~~~~~~~~~~~~~~
../libev/ev.h:692:3: note: in expansion of macro 'ev_set_cb'
  692 |   ev_set_cb ((ev), cb_);   \
      |   ^~~~~~~~~
../libev/ev.h:716:51: note: in expansion of macro 'ev_init'
  716 | #define ev_prepare_init(ev,cb)               do { ev_init ((ev), (cb)); ev_prepare_set ((ev)); } while (0)
      |                                                   ^~~~~~~
../libev/ev.c:2993:7: note: in expansion of macro 'ev_prepare_init'
 2993 |       ev_prepare_init (&pending_w, pendingcb);
      |       ^~~~~~~~~~~~~~~
../libev/ev.h:689:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  689 |   ((ev_watcher *)(void *)(ev))->active  = \
      |   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.c:2996:7: note: in expansion of macro 'ev_init'
 2996 |       ev_init (&pipe_w, pipecb);
      |       ^~~~~~~
../libev/ev.h:690:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  690 |   ((ev_watcher *)(void *)(ev))->pending = 0; \
      |   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.c:2996:7: note: in expansion of macro 'ev_init'
 2996 |       ev_init (&pipe_w, pipecb);
      |       ^~~~~~~
../libev/ev.h:734:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  734 | # define ev_set_priority(ev,pri)             (   (ev_watcher *)(void *)(ev))->priority = (pri)
      |                                              ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:691:3: note: in expansion of macro 'ev_set_priority'
  691 |   ev_set_priority ((ev), 0);   \
      |   ^~~~~~~~~~~~~~~
../libev/ev.c:2996:7: note: in expansion of macro 'ev_init'
 2996 |       ev_init (&pipe_w, pipecb);
      |       ^~~~~~~
../libev/ev.h:740:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  740 | # define ev_set_cb(ev,cb_)                   (ev_cb_ (ev) = (cb_), memmove (&((ev_watcher *)(ev))->cb, &ev_cb_ (ev), sizeof (ev_cb_ (ev))))
      |                                                                              ~^~~~~~~~~~~~~~~~~~~
../libev/ev.h:692:3: note: in expansion of macro 'ev_set_cb'
  692 |   ev_set_cb ((ev), cb_);   \
      |   ^~~~~~~~~
../libev/ev.c:2996:7: note: in expansion of macro 'ev_init'
 2996 |       ev_init (&pipe_w, pipecb);
      |       ^~~~~~~
../libev/ev.h:734:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  734 | # define ev_set_priority(ev,pri)             (   (ev_watcher *)(void *)(ev))->priority = (pri)
      |                                              ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.c:2997:7: note: in expansion of macro 'ev_set_priority'
 2997 |       ev_set_priority (&pipe_w, EV_MAXPRI);
      |       ^~~~~~~~~~~~~~~
../libev/ev.c: In function 'ev_loop_destroy':
../libev/ev.h:724:52: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  724 | #define ev_is_active(ev)                     (0 + ((ev_watcher *)(void *)(ev))->active) /* ro, true when the watcher has been started */
      |                                                   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.c:3025:36: note: in expansion of macro 'ev_is_active'
 3025 |   if (ev_is_default_loop (EV_A) && ev_is_active (&childev))
      |                                    ^~~~~~~~~~~~
../libev/ev.h:724:52: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  724 | #define ev_is_active(ev)                     (0 + ((ev_watcher *)(void *)(ev))->active) /* ro, true when the watcher has been started */
      |                                                   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.c:3032:7: note: in expansion of macro 'ev_is_active'
 3032 |   if (ev_is_active (&pipe_w))
      |       ^~~~~~~~~~~~
../libev/ev.h:724:52: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  724 | #define ev_is_active(ev)                     (0 + ((ev_watcher *)(void *)(ev))->active) /* ro, true when the watcher has been started */
      |                                                   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.c:3042:7: note: in expansion of macro 'ev_is_active'
 3042 |   if (ev_is_active (&sigfd_w))
      |       ^~~~~~~~~~~~
../libev/ev.c: In function 'loop_fork':
../libev/ev.h:724:52: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  724 | #define ev_is_active(ev)                     (0 + ((ev_watcher *)(void *)(ev))->active) /* ro, true when the watcher has been started */
      |                                                   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.c:3141:7: note: in expansion of macro 'ev_is_active'
 3141 |   if (ev_is_active (&pipe_w) && postfork != 2)
      |       ^~~~~~~~~~~~
In file included from ../libev/ev.c:202,
                 from nio4r_ext.c:7:
../libev/ev.c: In function 'verify_watcher':
../libev/ev.c:3185:49: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 3185 |   assert (("libev: watcher has invalid priority", ABSPRI (w) >= 0 && ABSPRI (w) < NUMPRI));
      |                                                 ^
../libev/ev.c:3185:49: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 3185 |   assert (("libev: watcher has invalid priority", ABSPRI (w) >= 0 && ABSPRI (w) < NUMPRI));
      |                                                 ^
../libev/ev.c:3188:59: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 3188 |     assert (("libev: pending watcher not on pending queue", pendings [ABSPRI (w)][w->pending - 1].w == w));
      |                                                           ^
../libev/ev.c:3188:59: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 3188 |     assert (("libev: pending watcher not on pending queue", pendings [ABSPRI (w)][w->pending - 1].w == w));
      |                                                           ^
../libev/ev.c: In function 'verify_heap':
../libev/ev.c:3199:54: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 3199 |       assert (("libev: active index mismatch in heap", ev_active (ANHE_w (heap [i])) == i));
      |                                                      ^
../libev/ev.c:3199:54: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 3199 |       assert (("libev: active index mismatch in heap", ev_active (ANHE_w (heap [i])) == i));
      |                                                      ^
../libev/ev.c:3200:48: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 3200 |       assert (("libev: heap condition violated", i == HEAP0 || ANHE_at (heap [HPARENT (i)]) <= ANHE_at (heap [i])));
      |                                                ^
../libev/ev.c:3200:48: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 3200 |       assert (("libev: heap condition violated", i == HEAP0 || ANHE_at (heap [HPARENT (i)]) <= ANHE_at (heap [i])));
      |                                                ^
../libev/ev.c:3201:47: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 3201 |       assert (("libev: heap at cache mismatch", ANHE_at (heap [i]) == ev_at (ANHE_w (heap [i]))));
      |                                               ^
../libev/ev.c:3201:47: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 3201 |       assert (("libev: heap at cache mismatch", ANHE_at (heap [i]) == ev_at (ANHE_w (heap [i]))));
      |                                               ^
../libev/ev.c: In function 'array_verify':
../libev/ev.c:3213:46: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 3213 |       assert (("libev: active index mismatch", ev_active (ws [cnt]) == cnt + 1));
      |                                              ^
../libev/ev.c:3213:46: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 3213 |       assert (("libev: active index mismatch", ev_active (ws [cnt]) == cnt + 1));
      |                                              ^
../libev/ev.c: In function 'ev_verify':
../libev/ev.c:3231:47: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 3231 |     assert (("libev: negative fd in fdchanges", fdchanges [i] >= 0));
      |                                               ^
../libev/ev.c:3231:47: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 3231 |     assert (("libev: negative fd in fdchanges", fdchanges [i] >= 0));
      |                                               ^
../libev/ev.c:3244:64: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 3244 |               assert (("libev: io watcher list contains a loop", w != w2));
      |                                                                ^
../libev/ev.c:3244:64: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 3244 |               assert (("libev: io watcher list contains a loop", w != w2));
      |                                                                ^
../libev/ev.c:3248:61: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 3248 |           assert (("libev: inactive fd watcher on anfd list", ev_active (w) == 1));
      |                                                             ^
../libev/ev.c:3248:61: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 3248 |           assert (("libev: inactive fd watcher on anfd list", ev_active (w) == 1));
      |                                                             ^
../libev/ev.c:3249:65: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 3249 |           assert (("libev: fd mismatch between watcher and anfd", ((ev_io *)w)->fd == i));
      |                                                                 ^
../libev/ev.c:3249:65: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 3249 |           assert (("libev: fd mismatch between watcher and anfd", ((ev_io *)w)->fd == i));
      |                                                                 ^
In file included from libev.h:9,
                 from nio4r.h:11,
                 from nio4r_ext.c:6:
../libev/ev.c: In function 'ev_default_loop':
../libev/ev.h:689:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  689 |   ((ev_watcher *)(void *)(ev))->active  = \
      |   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:712:51: note: in expansion of macro 'ev_init'
  712 | #define ev_signal_init(ev,cb,signum)         do { ev_init ((ev), (cb)); ev_signal_set ((ev), (signum)); } while (0)
      |                                                   ^~~~~~~
../libev/ev.c:3327:11: note: in expansion of macro 'ev_signal_init'
 3327 |           ev_signal_init (&childev, childcb, SIGCHLD);
      |           ^~~~~~~~~~~~~~
../libev/ev.h:690:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  690 |   ((ev_watcher *)(void *)(ev))->pending = 0; \
      |   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:712:51: note: in expansion of macro 'ev_init'
  712 | #define ev_signal_init(ev,cb,signum)         do { ev_init ((ev), (cb)); ev_signal_set ((ev), (signum)); } while (0)
      |                                                   ^~~~~~~
../libev/ev.c:3327:11: note: in expansion of macro 'ev_signal_init'
 3327 |           ev_signal_init (&childev, childcb, SIGCHLD);
      |           ^~~~~~~~~~~~~~
../libev/ev.h:734:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  734 | # define ev_set_priority(ev,pri)             (   (ev_watcher *)(void *)(ev))->priority = (pri)
      |                                              ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:691:3: note: in expansion of macro 'ev_set_priority'
  691 |   ev_set_priority ((ev), 0);   \
      |   ^~~~~~~~~~~~~~~
../libev/ev.h:712:51: note: in expansion of macro 'ev_init'
  712 | #define ev_signal_init(ev,cb,signum)         do { ev_init ((ev), (cb)); ev_signal_set ((ev), (signum)); } while (0)
      |                                                   ^~~~~~~
../libev/ev.c:3327:11: note: in expansion of macro 'ev_signal_init'
 3327 |           ev_signal_init (&childev, childcb, SIGCHLD);
      |           ^~~~~~~~~~~~~~
../libev/ev.h:740:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  740 | # define ev_set_cb(ev,cb_)                   (ev_cb_ (ev) = (cb_), memmove (&((ev_watcher *)(ev))->cb, &ev_cb_ (ev), sizeof (ev_cb_ (ev))))
      |                                                                              ~^~~~~~~~~~~~~~~~~~~
../libev/ev.h:692:3: note: in expansion of macro 'ev_set_cb'
  692 |   ev_set_cb ((ev), cb_);   \
      |   ^~~~~~~~~
../libev/ev.h:712:51: note: in expansion of macro 'ev_init'
  712 | #define ev_signal_init(ev,cb,signum)         do { ev_init ((ev), (cb)); ev_signal_set ((ev), (signum)); } while (0)
      |                                                   ^~~~~~~
../libev/ev.c:3327:11: note: in expansion of macro 'ev_signal_init'
 3327 |           ev_signal_init (&childev, childcb, SIGCHLD);
      |           ^~~~~~~~~~~~~~
../libev/ev.h:734:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  734 | # define ev_set_priority(ev,pri)             (   (ev_watcher *)(void *)(ev))->priority = (pri)
      |                                              ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.c:3328:11: note: in expansion of macro 'ev_set_priority'
 3328 |           ev_set_priority (&childev, EV_MAXPRI);
      |           ^~~~~~~~~~~~~~~
In file included from ../libev/ev.c:202,
                 from nio4r_ext.c:7:
../libev/ev.c: In function 'timers_reify':
../libev/ev.c:3435:93: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 3435 |               assert (("libev: negative ev_timer repeat value found while processing timers", w->repeat > 0.));
      |                                                                                             ^
../libev/ev.c:3435:93: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 3435 |               assert (("libev: negative ev_timer repeat value found while processing timers", w->repeat > 0.));
      |                                                                                             ^
../libev/ev.c: In function 'periodics_reify':
../libev/ev.c:3498:90: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 3498 |               assert (("libev: ev_periodic reschedule callback returned time in the past", ev_at (w) >= ev_rt_now));
      |                                                                                          ^
../libev/ev.c:3498:90: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 3498 |               assert (("libev: ev_periodic reschedule callback returned time in the past", ev_at (w) >= ev_rt_now));
      |                                                                                          ^
In file included from nio4r_ext.c:7:
../libev/ev.c: In function 'ev_backend_poll':
../libev/ev.c:3644:1: warning: no return statement in function returning non-void [-Wreturn-type]
 3644 | }
      | ^
In file included from ../libev/ev.c:202,
                 from nio4r_ext.c:7:
../libev/ev.c: In function 'ev_run':
../libev/ev.c:3658:62: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 3658 |   assert (("libev: ev_loop recursion during release detected", loop_done != EVBREAK_RECURSE));
      |                                                              ^
../libev/ev.c:3658:62: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 3658 |   assert (("libev: ev_loop recursion during release detected", loop_done != EVBREAK_RECURSE));
      |                                                              ^
In file included from nio4r_ext.c:7:
../libev/ev.c:3814:36: warning: passing argument 1 of 'rb_thread_call_without_gvl' from incompatible pointer type [-Wincompatible-pointer-types]
 3814 |         rb_thread_call_without_gvl(ev_backend_poll, (void *)&poll_args, RUBY_UBF_IO, 0);
      |                                    ^~~~~~~~~~~~~~~
      |                                    |
      |                                    VALUE (*)(void *) {aka long unsigned int (*)(void *)}
In file included from ../libev/ev.c:42,
                 from nio4r_ext.c:7:
/usr/include/ruby/thread.h:28:7: note: expected 'void * (*)(void *)' but argument is of type 'VALUE (*)(void *)' {aka 'long unsigned int (*)(void *)'}
   28 | void *rb_thread_call_without_gvl(void *(*func)(void *), void *data1,
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../libev/ev.c:202,
                 from nio4r_ext.c:7:
../libev/ev.h:724:52: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  724 | #define ev_is_active(ev)                     (0 + ((ev_watcher *)(void *)(ev))->active) /* ro, true when the watcher has been started */
      |                                                   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.c:3826:72: note: in expansion of macro 'ev_is_active'
 3826 |             assert (("libev: pipe_w not active, but pipe not written", ev_is_active (&pipe_w)));
      |                                                                        ^~~~~~~~~~~~
../libev/ev.c:3826:70: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 3826 |             assert (("libev: pipe_w not active, but pipe not written", ev_is_active (&pipe_w)));
      |                                                                      ^
../libev/ev.h:724:52: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  724 | #define ev_is_active(ev)                     (0 + ((ev_watcher *)(void *)(ev))->active) /* ro, true when the watcher has been started */
      |                                                   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.c:3826:72: note: in expansion of macro 'ev_is_active'
 3826 |             assert (("libev: pipe_w not active, but pipe not written", ev_is_active (&pipe_w)));
      |                                                                        ^~~~~~~~~~~~
../libev/ev.c:3826:70: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 3826 |             assert (("libev: pipe_w not active, but pipe not written", ev_is_active (&pipe_w)));
      |                                                                      ^
../libev/ev.c: In function 'ev_io_start':
../libev/ev.c:4001:56: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 4001 |   assert (("libev: ev_io_start called with negative fd", fd >= 0));
      |                                                        ^
../libev/ev.c:4001:56: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 4001 |   assert (("libev: ev_io_start called with negative fd", fd >= 0));
      |                                                        ^
../libev/ev.c:4002:63: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 4002 |   assert (("libev: ev_io_start called with illegal event mask", !(w->events & ~(EV__IOFDSET | EV_READ | EV_WRITE))));
      |                                                               ^
../libev/ev.c:4002:63: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 4002 |   assert (("libev: ev_io_start called with illegal event mask", !(w->events & ~(EV__IOFDSET | EV_READ | EV_WRITE))));
      |                                                               ^
../libev/ev.c:4014:62: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 4014 |   assert (("libev: ev_io_start called with corrupted watcher", ((WL)w)->next != (WL)w));
      |                                                              ^
../libev/ev.c:4014:62: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 4014 |   assert (("libev: ev_io_start called with corrupted watcher", ((WL)w)->next != (WL)w));
      |                                                              ^
In file included from nio4r_ext.c:7:
../libev/ev.c:4016:34: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses]
 4016 |   fd_change (EV_A_ fd, w->events & EV__IOFDSET | EV_ANFD_REIFY);
      |                        ~~~~~~~~~~^~~~~~~~~~~~~
In file included from ../libev/ev.c:202,
                 from nio4r_ext.c:7:
../libev/ev.c: In function 'ev_io_stop':
../libev/ev.c:4030:88: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 4030 |   assert (("libev: ev_io_stop called with illegal fd (must stay constant after start!)", w->fd >= 0 && w->fd < anfdmax));
      |                                                                                        ^
../libev/ev.c:4030:88: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 4030 |   assert (("libev: ev_io_stop called with illegal fd (must stay constant after start!)", w->fd >= 0 && w->fd < anfdmax));
      |                                                                                        ^
../libev/ev.c: In function 'ev_timer_start':
../libev/ev.c:4054:75: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 4054 |   assert (("libev: ev_timer_start called with negative timer repeat value", w->repeat >= 0.));
      |                                                                           ^
../libev/ev.c:4054:75: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 4054 |   assert (("libev: ev_timer_start called with negative timer repeat value", w->repeat >= 0.));
      |                                                                           ^
../libev/ev.c: In function 'ev_timer_stop':
../libev/ev.c:4083:53: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 4083 |     assert (("libev: internal timer heap corruption", ANHE_w (timers [active]) == (WT)w));
      |                                                     ^
../libev/ev.c:4083:53: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 4083 |     assert (("libev: internal timer heap corruption", ANHE_w (timers [active]) == (WT)w));
      |                                                     ^
../libev/ev.c: In function 'ev_periodic_start':
../libev/ev.c:4147:78: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 4147 |       assert (("libev: ev_periodic_start called with negative interval value", w->interval >= 0.));
      |                                                                              ^
../libev/ev.c:4147:78: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 4147 |       assert (("libev: ev_periodic_start called with negative interval value", w->interval >= 0.));
      |                                                                              ^
../libev/ev.c: In function 'ev_periodic_stop':
../libev/ev.c:4180:56: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 4180 |     assert (("libev: internal periodic heap corruption", ANHE_w (periodics [active]) == (WT)w));
      |                                                        ^
../libev/ev.c:4180:56: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 4180 |     assert (("libev: internal periodic heap corruption", ANHE_w (periodics [active]) == (WT)w));
      |                                                        ^
../libev/ev.c: In function 'ev_signal_start':
../libev/ev.c:4219:70: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 4219 |   assert (("libev: ev_signal_start called with illegal signal number", w->signum > 0 && w->signum < EV_NSIG));
      |                                                                      ^
../libev/ev.c:4219:70: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 4219 |   assert (("libev: ev_signal_start called with illegal signal number", w->signum > 0 && w->signum < EV_NSIG));
      |                                                                      ^
../libev/ev.c:4222:73: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 4222 |   assert (("libev: a signal must not be attached to two different loops",
      |                                                                         ^
../libev/ev.c:4222:73: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 4222 |   assert (("libev: a signal must not be attached to two different loops",
      |                                                                         ^
In file included from libev.h:9,
                 from nio4r.h:11,
                 from nio4r_ext.c:6:
../libev/ev.h:689:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  689 |   ((ev_watcher *)(void *)(ev))->active  = \
      |   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:709:51: note: in expansion of macro 'ev_init'
  709 | #define ev_io_init(ev,cb,fd,events)          do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0)
      |                                                   ^~~~~~~
../libev/ev.c:4244:11: note: in expansion of macro 'ev_io_init'
 4244 |           ev_io_init (&sigfd_w, sigfdcb, sigfd, EV_READ);
      |           ^~~~~~~~~~
../libev/ev.h:690:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  690 |   ((ev_watcher *)(void *)(ev))->pending = 0; \
      |   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:709:51: note: in expansion of macro 'ev_init'
  709 | #define ev_io_init(ev,cb,fd,events)          do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0)
      |                                                   ^~~~~~~
../libev/ev.c:4244:11: note: in expansion of macro 'ev_io_init'
 4244 |           ev_io_init (&sigfd_w, sigfdcb, sigfd, EV_READ);
      |           ^~~~~~~~~~
../libev/ev.h:734:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  734 | # define ev_set_priority(ev,pri)             (   (ev_watcher *)(void *)(ev))->priority = (pri)
      |                                              ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:691:3: note: in expansion of macro 'ev_set_priority'
  691 |   ev_set_priority ((ev), 0);   \
      |   ^~~~~~~~~~~~~~~
../libev/ev.h:709:51: note: in expansion of macro 'ev_init'
  709 | #define ev_io_init(ev,cb,fd,events)          do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0)
      |                                                   ^~~~~~~
../libev/ev.c:4244:11: note: in expansion of macro 'ev_io_init'
 4244 |           ev_io_init (&sigfd_w, sigfdcb, sigfd, EV_READ);
      |           ^~~~~~~~~~
../libev/ev.h:740:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  740 | # define ev_set_cb(ev,cb_)                   (ev_cb_ (ev) = (cb_), memmove (&((ev_watcher *)(ev))->cb, &ev_cb_ (ev), sizeof (ev_cb_ (ev))))
      |                                                                              ~^~~~~~~~~~~~~~~~~~~
../libev/ev.h:692:3: note: in expansion of macro 'ev_set_cb'
  692 |   ev_set_cb ((ev), cb_);   \
      |   ^~~~~~~~~
../libev/ev.h:709:51: note: in expansion of macro 'ev_init'
  709 | #define ev_io_init(ev,cb,fd,events)          do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0)
      |                                                   ^~~~~~~
../libev/ev.c:4244:11: note: in expansion of macro 'ev_io_init'
 4244 |           ev_io_init (&sigfd_w, sigfdcb, sigfd, EV_READ);
      |           ^~~~~~~~~~
../libev/ev.h:734:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  734 | # define ev_set_priority(ev,pri)             (   (ev_watcher *)(void *)(ev))->priority = (pri)
      |                                              ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.c:4245:11: note: in expansion of macro 'ev_set_priority'
 4245 |           ev_set_priority (&sigfd_w, EV_MAXPRI);
      |           ^~~~~~~~~~~~~~~
In file included from ../libev/ev.c:202,
                 from nio4r_ext.c:7:
../libev/ev.c: In function 'ev_child_start':
../libev/ev.c:4341:74: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 4341 |   assert (("libev: child watchers are only supported in the default loop", loop == ev_default_loop_ptr));
      |                                                                          ^
../libev/ev.c:4341:74: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 4341 |   assert (("libev: child watchers are only supported in the default loop", loop == ev_default_loop_ptr));
      |                                                                          ^
In file included from libev.h:9,
                 from nio4r.h:11,
                 from nio4r_ext.c:6:
../libev/ev.c: In function 'infy_add':
../libev/ev.h:724:52: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  724 | #define ev_is_active(ev)                     (0 + ((ev_watcher *)(void *)(ev))->active) /* ro, true when the watcher has been started */
      |                                                   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.c:4459:7: note: in expansion of macro 'ev_is_active'
 4459 |   if (ev_is_active (&w->timer)) ev_ref (EV_A);
      |       ^~~~~~~~~~~~
../libev/ev.h:724:52: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  724 | #define ev_is_active(ev)                     (0 + ((ev_watcher *)(void *)(ev))->active) /* ro, true when the watcher has been started */
      |                                                   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.c:4461:7: note: in expansion of macro 'ev_is_active'
 4461 |   if (ev_is_active (&w->timer)) ev_unref (EV_A);
      |       ^~~~~~~~~~~~
../libev/ev.c: In function 'infy_init':
../libev/ev.h:689:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  689 |   ((ev_watcher *)(void *)(ev))->active  = \
      |   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:709:51: note: in expansion of macro 'ev_init'
  709 | #define ev_io_init(ev,cb,fd,events)          do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0)
      |                                                   ^~~~~~~
../libev/ev.c:4568:7: note: in expansion of macro 'ev_io_init'
 4568 |       ev_io_init (&fs_w, infy_cb, fs_fd, EV_READ);
      |       ^~~~~~~~~~
../libev/ev.h:690:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  690 |   ((ev_watcher *)(void *)(ev))->pending = 0; \
      |   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:709:51: note: in expansion of macro 'ev_init'
  709 | #define ev_io_init(ev,cb,fd,events)          do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0)
      |                                                   ^~~~~~~
../libev/ev.c:4568:7: note: in expansion of macro 'ev_io_init'
 4568 |       ev_io_init (&fs_w, infy_cb, fs_fd, EV_READ);
      |       ^~~~~~~~~~
../libev/ev.h:734:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  734 | # define ev_set_priority(ev,pri)             (   (ev_watcher *)(void *)(ev))->priority = (pri)
      |                                              ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:691:3: note: in expansion of macro 'ev_set_priority'
  691 |   ev_set_priority ((ev), 0);   \
      |   ^~~~~~~~~~~~~~~
../libev/ev.h:709:51: note: in expansion of macro 'ev_init'
  709 | #define ev_io_init(ev,cb,fd,events)          do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0)
      |                                                   ^~~~~~~
../libev/ev.c:4568:7: note: in expansion of macro 'ev_io_init'
 4568 |       ev_io_init (&fs_w, infy_cb, fs_fd, EV_READ);
      |       ^~~~~~~~~~
../libev/ev.h:740:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  740 | # define ev_set_cb(ev,cb_)                   (ev_cb_ (ev) = (cb_), memmove (&((ev_watcher *)(ev))->cb, &ev_cb_ (ev), sizeof (ev_cb_ (ev))))
      |                                                                              ~^~~~~~~~~~~~~~~~~~~
../libev/ev.h:692:3: note: in expansion of macro 'ev_set_cb'
  692 |   ev_set_cb ((ev), cb_);   \
      |   ^~~~~~~~~
../libev/ev.h:709:51: note: in expansion of macro 'ev_init'
  709 | #define ev_io_init(ev,cb,fd,events)          do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0)
      |                                                   ^~~~~~~
../libev/ev.c:4568:7: note: in expansion of macro 'ev_io_init'
 4568 |       ev_io_init (&fs_w, infy_cb, fs_fd, EV_READ);
      |       ^~~~~~~~~~
../libev/ev.h:734:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  734 | # define ev_set_priority(ev,pri)             (   (ev_watcher *)(void *)(ev))->priority = (pri)
      |                                              ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.c:4569:7: note: in expansion of macro 'ev_set_priority'
 4569 |       ev_set_priority (&fs_w, EV_MAXPRI);
      |       ^~~~~~~~~~~~~~~
../libev/ev.c: In function 'infy_fork':
../libev/ev.h:724:52: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  724 | #define ev_is_active(ev)                     (0 + ((ev_watcher *)(void *)(ev))->active) /* ro, true when the watcher has been started */
      |                                                   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.c:4613:19: note: in expansion of macro 'ev_is_active'
 4613 |               if (ev_is_active (&w->timer)) ev_ref (EV_A);
      |                   ^~~~~~~~~~~~
../libev/ev.h:724:52: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  724 | #define ev_is_active(ev)                     (0 + ((ev_watcher *)(void *)(ev))->active) /* ro, true when the watcher has been started */
      |                                                   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.c:4615:19: note: in expansion of macro 'ev_is_active'
 4615 |               if (ev_is_active (&w->timer)) ev_unref (EV_A);
      |                   ^~~~~~~~~~~~
../libev/ev.c: In function 'ev_stat_start':
../libev/ev.h:689:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  689 |   ((ev_watcher *)(void *)(ev))->active  = \
      |   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:710:51: note: in expansion of macro 'ev_init'
  710 | #define ev_timer_init(ev,cb,after,repeat)    do { ev_init ((ev), (cb)); ev_timer_set ((ev),(after),(repeat)); } while (0)
      |                                                   ^~~~~~~
../libev/ev.c:4690:3: note: in expansion of macro 'ev_timer_init'
 4690 |   ev_timer_init (&w->timer, stat_timer_cb, 0., w->interval ? w->interval : DEF_STAT_INTERVAL);
      |   ^~~~~~~~~~~~~
../libev/ev.h:690:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  690 |   ((ev_watcher *)(void *)(ev))->pending = 0; \
      |   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:710:51: note: in expansion of macro 'ev_init'
  710 | #define ev_timer_init(ev,cb,after,repeat)    do { ev_init ((ev), (cb)); ev_timer_set ((ev),(after),(repeat)); } while (0)
      |                                                   ^~~~~~~
../libev/ev.c:4690:3: note: in expansion of macro 'ev_timer_init'
 4690 |   ev_timer_init (&w->timer, stat_timer_cb, 0., w->interval ? w->interval : DEF_STAT_INTERVAL);
      |   ^~~~~~~~~~~~~
../libev/ev.h:734:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  734 | # define ev_set_priority(ev,pri)             (   (ev_watcher *)(void *)(ev))->priority = (pri)
      |                                              ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:691:3: note: in expansion of macro 'ev_set_priority'
  691 |   ev_set_priority ((ev), 0);   \
      |   ^~~~~~~~~~~~~~~
../libev/ev.h:710:51: note: in expansion of macro 'ev_init'
  710 | #define ev_timer_init(ev,cb,after,repeat)    do { ev_init ((ev), (cb)); ev_timer_set ((ev),(after),(repeat)); } while (0)
      |                                                   ^~~~~~~
../libev/ev.c:4690:3: note: in expansion of macro 'ev_timer_init'
 4690 |   ev_timer_init (&w->timer, stat_timer_cb, 0., w->interval ? w->interval : DEF_STAT_INTERVAL);
      |   ^~~~~~~~~~~~~
../libev/ev.h:740:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  740 | # define ev_set_cb(ev,cb_)                   (ev_cb_ (ev) = (cb_), memmove (&((ev_watcher *)(ev))->cb, &ev_cb_ (ev), sizeof (ev_cb_ (ev))))
      |                                                                              ~^~~~~~~~~~~~~~~~~~~
../libev/ev.h:692:3: note: in expansion of macro 'ev_set_cb'
  692 |   ev_set_cb ((ev), cb_);   \
      |   ^~~~~~~~~
../libev/ev.h:710:51: note: in expansion of macro 'ev_init'
  710 | #define ev_timer_init(ev,cb,after,repeat)    do { ev_init ((ev), (cb)); ev_timer_set ((ev),(after),(repeat)); } while (0)
      |                                                   ^~~~~~~
../libev/ev.c:4690:3: note: in expansion of macro 'ev_timer_init'
 4690 |   ev_timer_init (&w->timer, stat_timer_cb, 0., w->interval ? w->interval : DEF_STAT_INTERVAL);
      |   ^~~~~~~~~~~~~
../libev/ev.h:696:52: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  696 | #define ev_timer_set(ev,after_,repeat_)      do { ((ev_watcher_time *)(ev))->at = (after_); (ev)->repeat = (repeat_); } while (0)
      |                                                   ~^~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:710:73: note: in expansion of macro 'ev_timer_set'
  710 | #define ev_timer_init(ev,cb,after,repeat)    do { ev_init ((ev), (cb)); ev_timer_set ((ev),(after),(repeat)); } while (0)
      |                                                                         ^~~~~~~~~~~~
../libev/ev.c:4690:3: note: in expansion of macro 'ev_timer_init'
 4690 |   ev_timer_init (&w->timer, stat_timer_cb, 0., w->interval ? w->interval : DEF_STAT_INTERVAL);
      |   ^~~~~~~~~~~~~
../libev/ev.h:734:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  734 | # define ev_set_priority(ev,pri)             (   (ev_watcher *)(void *)(ev))->priority = (pri)
      |                                              ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.c:4691:3: note: in expansion of macro 'ev_set_priority'
 4691 |   ev_set_priority (&w->timer, ev_priority (w));
      |   ^~~~~~~~~~~~~~~
../libev/ev.c: In function 'ev_stat_stop':
../libev/ev.h:724:52: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  724 | #define ev_is_active(ev)                     (0 + ((ev_watcher *)(void *)(ev))->active) /* ro, true when the watcher has been started */
      |                                                   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.c:4723:7: note: in expansion of macro 'ev_is_active'
 4723 |   if (ev_is_active (&w->timer))
      |       ^~~~~~~~~~~~
In file included from ../libev/ev.c:202,
                 from nio4r_ext.c:7:
../libev/ev.c: In function 'ev_embed_start':
../libev/ev.c:4926:60: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 4926 |     assert (("libev: loop to be embedded is not embeddable", backend & ev_embeddable_backends ()));
      |                                                            ^
../libev/ev.c:4926:60: warning: left-hand operand of comma expression has no effect [-Wunused-value]
 4926 |     assert (("libev: loop to be embedded is not embeddable", backend & ev_embeddable_backends ()));
      |                                                            ^
In file included from libev.h:9,
                 from nio4r.h:11,
                 from nio4r_ext.c:6:
../libev/ev.h:689:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  689 |   ((ev_watcher *)(void *)(ev))->active  = \
      |   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:709:51: note: in expansion of macro 'ev_init'
  709 | #define ev_io_init(ev,cb,fd,events)          do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0)
      |                                                   ^~~~~~~
../libev/ev.c:4927:5: note: in expansion of macro 'ev_io_init'
 4927 |     ev_io_init (&w->io, embed_io_cb, backend_fd, EV_READ);
      |     ^~~~~~~~~~
../libev/ev.h:690:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  690 |   ((ev_watcher *)(void *)(ev))->pending = 0; \
      |   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:709:51: note: in expansion of macro 'ev_init'
  709 | #define ev_io_init(ev,cb,fd,events)          do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0)
      |                                                   ^~~~~~~
../libev/ev.c:4927:5: note: in expansion of macro 'ev_io_init'
 4927 |     ev_io_init (&w->io, embed_io_cb, backend_fd, EV_READ);
      |     ^~~~~~~~~~
../libev/ev.h:734:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  734 | # define ev_set_priority(ev,pri)             (   (ev_watcher *)(void *)(ev))->priority = (pri)
      |                                              ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:691:3: note: in expansion of macro 'ev_set_priority'
  691 |   ev_set_priority ((ev), 0);   \
      |   ^~~~~~~~~~~~~~~
../libev/ev.h:709:51: note: in expansion of macro 'ev_init'
  709 | #define ev_io_init(ev,cb,fd,events)          do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0)
      |                                                   ^~~~~~~
../libev/ev.c:4927:5: note: in expansion of macro 'ev_io_init'
 4927 |     ev_io_init (&w->io, embed_io_cb, backend_fd, EV_READ);
      |     ^~~~~~~~~~
../libev/ev.h:740:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  740 | # define ev_set_cb(ev,cb_)                   (ev_cb_ (ev) = (cb_), memmove (&((ev_watcher *)(ev))->cb, &ev_cb_ (ev), sizeof (ev_cb_ (ev))))
      |                                                                              ~^~~~~~~~~~~~~~~~~~~
../libev/ev.h:692:3: note: in expansion of macro 'ev_set_cb'
  692 |   ev_set_cb ((ev), cb_);   \
      |   ^~~~~~~~~
../libev/ev.h:709:51: note: in expansion of macro 'ev_init'
  709 | #define ev_io_init(ev,cb,fd,events)          do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0)
      |                                                   ^~~~~~~
../libev/ev.c:4927:5: note: in expansion of macro 'ev_io_init'
 4927 |     ev_io_init (&w->io, embed_io_cb, backend_fd, EV_READ);
      |     ^~~~~~~~~~
../libev/ev.h:734:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  734 | # define ev_set_priority(ev,pri)             (   (ev_watcher *)(void *)(ev))->priority = (pri)
      |                                              ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.c:4932:3: note: in expansion of macro 'ev_set_priority'
 4932 |   ev_set_priority (&w->io, ev_priority (w));
      |   ^~~~~~~~~~~~~~~
../libev/ev.h:689:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  689 |   ((ev_watcher *)(void *)(ev))->active  = \
      |   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:716:51: note: in expansion of macro 'ev_init'
  716 | #define ev_prepare_init(ev,cb)               do { ev_init ((ev), (cb)); ev_prepare_set ((ev)); } while (0)
      |                                                   ^~~~~~~
../libev/ev.c:4935:3: note: in expansion of macro 'ev_prepare_init'
 4935 |   ev_prepare_init (&w->prepare, embed_prepare_cb);
      |   ^~~~~~~~~~~~~~~
../libev/ev.h:690:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  690 |   ((ev_watcher *)(void *)(ev))->pending = 0; \
      |   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:716:51: note: in expansion of macro 'ev_init'
  716 | #define ev_prepare_init(ev,cb)               do { ev_init ((ev), (cb)); ev_prepare_set ((ev)); } while (0)
      |                                                   ^~~~~~~
../libev/ev.c:4935:3: note: in expansion of macro 'ev_prepare_init'
 4935 |   ev_prepare_init (&w->prepare, embed_prepare_cb);
      |   ^~~~~~~~~~~~~~~
../libev/ev.h:734:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  734 | # define ev_set_priority(ev,pri)             (   (ev_watcher *)(void *)(ev))->priority = (pri)
      |                                              ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:691:3: note: in expansion of macro 'ev_set_priority'
  691 |   ev_set_priority ((ev), 0);   \
      |   ^~~~~~~~~~~~~~~
../libev/ev.h:716:51: note: in expansion of macro 'ev_init'
  716 | #define ev_prepare_init(ev,cb)               do { ev_init ((ev), (cb)); ev_prepare_set ((ev)); } while (0)
      |                                                   ^~~~~~~
../libev/ev.c:4935:3: note: in expansion of macro 'ev_prepare_init'
 4935 |   ev_prepare_init (&w->prepare, embed_prepare_cb);
      |   ^~~~~~~~~~~~~~~
../libev/ev.h:740:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  740 | # define ev_set_cb(ev,cb_)                   (ev_cb_ (ev) = (cb_), memmove (&((ev_watcher *)(ev))->cb, &ev_cb_ (ev), sizeof (ev_cb_ (ev))))
      |                                                                              ~^~~~~~~~~~~~~~~~~~~
../libev/ev.h:692:3: note: in expansion of macro 'ev_set_cb'
  692 |   ev_set_cb ((ev), cb_);   \
      |   ^~~~~~~~~
../libev/ev.h:716:51: note: in expansion of macro 'ev_init'
  716 | #define ev_prepare_init(ev,cb)               do { ev_init ((ev), (cb)); ev_prepare_set ((ev)); } while (0)
      |                                                   ^~~~~~~
../libev/ev.c:4935:3: note: in expansion of macro 'ev_prepare_init'
 4935 |   ev_prepare_init (&w->prepare, embed_prepare_cb);
      |   ^~~~~~~~~~~~~~~
../libev/ev.h:734:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  734 | # define ev_set_priority(ev,pri)             (   (ev_watcher *)(void *)(ev))->priority = (pri)
      |                                              ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.c:4936:3: note: in expansion of macro 'ev_set_priority'
 4936 |   ev_set_priority (&w->prepare, EV_MINPRI);
      |   ^~~~~~~~~~~~~~~
../libev/ev.h:689:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  689 |   ((ev_watcher *)(void *)(ev))->active  = \
      |   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:719:51: note: in expansion of macro 'ev_init'
  719 | #define ev_fork_init(ev,cb)                  do { ev_init ((ev), (cb)); ev_fork_set ((ev)); } while (0)
      |                                                   ^~~~~~~
../libev/ev.c:4939:3: note: in expansion of macro 'ev_fork_init'
 4939 |   ev_fork_init (&w->fork, embed_fork_cb);
      |   ^~~~~~~~~~~~
../libev/ev.h:690:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  690 |   ((ev_watcher *)(void *)(ev))->pending = 0; \
      |   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:719:51: note: in expansion of macro 'ev_init'
  719 | #define ev_fork_init(ev,cb)                  do { ev_init ((ev), (cb)); ev_fork_set ((ev)); } while (0)
      |                                                   ^~~~~~~
../libev/ev.c:4939:3: note: in expansion of macro 'ev_fork_init'
 4939 |   ev_fork_init (&w->fork, embed_fork_cb);
      |   ^~~~~~~~~~~~
../libev/ev.h:734:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  734 | # define ev_set_priority(ev,pri)             (   (ev_watcher *)(void *)(ev))->priority = (pri)
      |                                              ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:691:3: note: in expansion of macro 'ev_set_priority'
  691 |   ev_set_priority ((ev), 0);   \
      |   ^~~~~~~~~~~~~~~
../libev/ev.h:719:51: note: in expansion of macro 'ev_init'
  719 | #define ev_fork_init(ev,cb)                  do { ev_init ((ev), (cb)); ev_fork_set ((ev)); } while (0)
      |                                                   ^~~~~~~
../libev/ev.c:4939:3: note: in expansion of macro 'ev_fork_init'
 4939 |   ev_fork_init (&w->fork, embed_fork_cb);
      |   ^~~~~~~~~~~~
../libev/ev.h:740:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  740 | # define ev_set_cb(ev,cb_)                   (ev_cb_ (ev) = (cb_), memmove (&((ev_watcher *)(ev))->cb, &ev_cb_ (ev), sizeof (ev_cb_ (ev))))
      |                                                                              ~^~~~~~~~~~~~~~~~~~~
../libev/ev.h:692:3: note: in expansion of macro 'ev_set_cb'
  692 |   ev_set_cb ((ev), cb_);   \
      |   ^~~~~~~~~
../libev/ev.h:719:51: note: in expansion of macro 'ev_init'
  719 | #define ev_fork_init(ev,cb)                  do { ev_init ((ev), (cb)); ev_fork_set ((ev)); } while (0)
      |                                                   ^~~~~~~
../libev/ev.c:4939:3: note: in expansion of macro 'ev_fork_init'
 4939 |   ev_fork_init (&w->fork, embed_fork_cb);
      |   ^~~~~~~~~~~~
../libev/ev.c: In function 'ev_once':
../libev/ev.h:689:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  689 |   ((ev_watcher *)(void *)(ev))->active  = \
      |   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.c:5143:3: note: in expansion of macro 'ev_init'
 5143 |   ev_init (&once->io, once_cb_io);
      |   ^~~~~~~
../libev/ev.h:690:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  690 |   ((ev_watcher *)(void *)(ev))->pending = 0; \
      |   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.c:5143:3: note: in expansion of macro 'ev_init'
 5143 |   ev_init (&once->io, once_cb_io);
      |   ^~~~~~~
../libev/ev.h:734:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  734 | # define ev_set_priority(ev,pri)             (   (ev_watcher *)(void *)(ev))->priority = (pri)
      |                                              ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:691:3: note: in expansion of macro 'ev_set_priority'
  691 |   ev_set_priority ((ev), 0);   \
      |   ^~~~~~~~~~~~~~~
../libev/ev.c:5143:3: note: in expansion of macro 'ev_init'
 5143 |   ev_init (&once->io, once_cb_io);
      |   ^~~~~~~
../libev/ev.h:740:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  740 | # define ev_set_cb(ev,cb_)                   (ev_cb_ (ev) = (cb_), memmove (&((ev_watcher *)(ev))->cb, &ev_cb_ (ev), sizeof (ev_cb_ (ev))))
      |                                                                              ~^~~~~~~~~~~~~~~~~~~
../libev/ev.h:692:3: note: in expansion of macro 'ev_set_cb'
  692 |   ev_set_cb ((ev), cb_);   \
      |   ^~~~~~~~~
../libev/ev.c:5143:3: note: in expansion of macro 'ev_init'
 5143 |   ev_init (&once->io, once_cb_io);
      |   ^~~~~~~
../libev/ev.h:689:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  689 |   ((ev_watcher *)(void *)(ev))->active  = \
      |   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.c:5150:3: note: in expansion of macro 'ev_init'
 5150 |   ev_init (&once->to, once_cb_to);
      |   ^~~~~~~
../libev/ev.h:690:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  690 |   ((ev_watcher *)(void *)(ev))->pending = 0; \
      |   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.c:5150:3: note: in expansion of macro 'ev_init'
 5150 |   ev_init (&once->to, once_cb_to);
      |   ^~~~~~~
../libev/ev.h:734:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  734 | # define ev_set_priority(ev,pri)             (   (ev_watcher *)(void *)(ev))->priority = (pri)
      |                                              ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:691:3: note: in expansion of macro 'ev_set_priority'
  691 |   ev_set_priority ((ev), 0);   \
      |   ^~~~~~~~~~~~~~~
../libev/ev.c:5150:3: note: in expansion of macro 'ev_init'
 5150 |   ev_init (&once->to, once_cb_to);
      |   ^~~~~~~
../libev/ev.h:740:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  740 | # define ev_set_cb(ev,cb_)                   (ev_cb_ (ev) = (cb_), memmove (&((ev_watcher *)(ev))->cb, &ev_cb_ (ev), sizeof (ev_cb_ (ev))))
      |                                                                              ~^~~~~~~~~~~~~~~~~~~
../libev/ev.h:692:3: note: in expansion of macro 'ev_set_cb'
  692 |   ev_set_cb ((ev), cb_);   \
      |   ^~~~~~~~~
../libev/ev.c:5150:3: note: in expansion of macro 'ev_init'
 5150 |   ev_init (&once->to, once_cb_to);
      |   ^~~~~~~
../libev/ev.h:696:52: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  696 | #define ev_timer_set(ev,after_,repeat_)      do { ((ev_watcher_time *)(ev))->at = (after_); (ev)->repeat = (repeat_); } while (0)
      |                                                   ~^~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.c:5153:7: note: in expansion of macro 'ev_timer_set'
 5153 |       ev_timer_set (&once->to, timeout, 0.);
      |       ^~~~~~~~~~~~
In file included from nio4r_ext.c:7:
../libev/ev.c: At top level:
../libev/ev.c:5270:27: warning: "/*" within comment [-Wcomment]
 5270 | /* EV_STAT     0x00001000 /* stat data changed */
      |                            
../libev/ev.c:5271:27: warning: "/*" within comment [-Wcomment]
 5271 | /* EV_EMBED    0x00010000 /* embedded event loop needs sweep */
      |                            
nio4r_ext.c: In function 'Init_nio4r_ext':
nio4r_ext.c:15:22: warning: passing argument 1 of 'ev_set_allocator' from incompatible pointer type [-Wincompatible-pointer-types]
   15 |     ev_set_allocator(xrealloc);
      |                      ^~~~~~~~
      |                      |
      |                      void * (*)(void *, size_t) {aka void * (*)(void *, unsigned int)}
In file included from nio4r_ext.c:7:
../libev/ev.c:1777:27: note: expected 'void * (*)(void *, long int)' but argument is of type 'void * (*)(void *, size_t)' {aka 'void * (*)(void *, unsigned int)'}
 1777 | ev_set_allocator (void *(*cb)(void *ptr, long size) EV_NOEXCEPT) EV_NOEXCEPT
      |                   ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from nio4r_ext.c:7:
../libev/ev.c: In function 'evpipe_write':
../libev/ev.c:2516:11: warning: ignoring return value of 'write', declared with attribute warn_unused_result [-Wunused-result]
 2516 |           write (evpipe [1], &counter, sizeof (uint64_t));
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.c:2528:11: warning: ignoring return value of 'write', declared with attribute warn_unused_result [-Wunused-result]
 2528 |           write (evpipe [1], &(evpipe [1]), 1);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.c: In function 'pipecb':
../libev/ev.c:2549:11: warning: ignoring return value of 'read', declared with attribute warn_unused_result [-Wunused-result]
 2549 |           read (evpipe [1], &counter, sizeof (uint64_t));
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.c:2563:11: warning: ignoring return value of 'read', declared with attribute warn_unused_result [-Wunused-result]
 2563 |           read (evpipe [0], &dummy, sizeof (dummy));
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compiling selector.c
In file included from libev.h:9,
                 from nio4r.h:11,
                 from selector.c:6:
selector.c: In function 'NIO_Selector_allocate':
../libev/ev.h:689:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  689 |   ((ev_watcher *)(void *)(ev))->active  = \
      |   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
selector.c:113:5: note: in expansion of macro 'ev_init'
  113 |     ev_init(&selector->timer, NIO_Selector_timeout_callback);
      |     ^~~~~~~
../libev/ev.h:690:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  690 |   ((ev_watcher *)(void *)(ev))->pending = 0; \
      |   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
selector.c:113:5: note: in expansion of macro 'ev_init'
  113 |     ev_init(&selector->timer, NIO_Selector_timeout_callback);
      |     ^~~~~~~
../libev/ev.h:734:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  734 | # define ev_set_priority(ev,pri)             (   (ev_watcher *)(void *)(ev))->priority = (pri)
      |                                              ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:691:3: note: in expansion of macro 'ev_set_priority'
  691 |   ev_set_priority ((ev), 0);   \
      |   ^~~~~~~~~~~~~~~
selector.c:113:5: note: in expansion of macro 'ev_init'
  113 |     ev_init(&selector->timer, NIO_Selector_timeout_callback);
      |     ^~~~~~~
../libev/ev.h:740:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  740 | # define ev_set_cb(ev,cb_)                   (ev_cb_ (ev) = (cb_), memmove (&((ev_watcher *)(ev))->cb, &ev_cb_ (ev), sizeof (ev_cb_ (ev))))
      |                                                                              ~^~~~~~~~~~~~~~~~~~~
../libev/ev.h:692:3: note: in expansion of macro 'ev_set_cb'
  692 |   ev_set_cb ((ev), cb_);   \
      |   ^~~~~~~~~
selector.c:113:5: note: in expansion of macro 'ev_init'
  113 |     ev_init(&selector->timer, NIO_Selector_timeout_callback);
      |     ^~~~~~~
../libev/ev.h:689:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  689 |   ((ev_watcher *)(void *)(ev))->active  = \
      |   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:709:51: note: in expansion of macro 'ev_init'
  709 | #define ev_io_init(ev,cb,fd,events)          do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0)
      |                                                   ^~~~~~~
selector.c:118:5: note: in expansion of macro 'ev_io_init'
  118 |     ev_io_init(&selector->wakeup, NIO_Selector_wakeup_callback, selector->wakeup_reader, EV_READ);
      |     ^~~~~~~~~~
../libev/ev.h:690:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  690 |   ((ev_watcher *)(void *)(ev))->pending = 0; \
      |   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:709:51: note: in expansion of macro 'ev_init'
  709 | #define ev_io_init(ev,cb,fd,events)          do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0)
      |                                                   ^~~~~~~
selector.c:118:5: note: in expansion of macro 'ev_io_init'
  118 |     ev_io_init(&selector->wakeup, NIO_Selector_wakeup_callback, selector->wakeup_reader, EV_READ);
      |     ^~~~~~~~~~
../libev/ev.h:734:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  734 | # define ev_set_priority(ev,pri)             (   (ev_watcher *)(void *)(ev))->priority = (pri)
      |                                              ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libev/ev.h:691:3: note: in expansion of macro 'ev_set_priority'
  691 |   ev_set_priority ((ev), 0);   \
      |   ^~~~~~~~~~~~~~~
../libev/ev.h:709:51: note: in expansion of macro 'ev_init'
  709 | #define ev_io_init(ev,cb,fd,events)          do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0)
      |                                                   ^~~~~~~
selector.c:118:5: note: in expansion of macro 'ev_io_init'
  118 |     ev_io_init(&selector->wakeup, NIO_Selector_wakeup_callback, selector->wakeup_reader, EV_READ);
      |     ^~~~~~~~~~
../libev/ev.h:740:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  740 | # define ev_set_cb(ev,cb_)                   (ev_cb_ (ev) = (cb_), memmove (&((ev_watcher *)(ev))->cb, &ev_cb_ (ev), sizeof (ev_cb_ (ev))))
      |                                                                              ~^~~~~~~~~~~~~~~~~~~
../libev/ev.h:692:3: note: in expansion of macro 'ev_set_cb'
  692 |   ev_set_cb ((ev), cb_);   \
      |   ^~~~~~~~~
../libev/ev.h:709:51: note: in expansion of macro 'ev_init'
  709 | #define ev_io_init(ev,cb,fd,events)          do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0)
      |                                                   ^~~~~~~
selector.c:118:5: note: in expansion of macro 'ev_io_init'
  118 |     ev_io_init(&selector->wakeup, NIO_Selector_wakeup_callback, selector->wakeup_reader, EV_READ);
      |     ^~~~~~~~~~
selector.c: In function 'NIO_Selector_wakeup':
selector.c:484:5: warning: ignoring return value of 'write', declared with attribute warn_unused_result [-Wunused-result]
  484 |     write(selector->wakeup_writer, "\0", 1);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
linking shared-object nio4r_ext.so
make: Leaving directory '/usr/src/RPM/BUILD/ruby-nio4r-2.5.1/ext/nio4r'
make: Entering directory '/usr/src/RPM/BUILD/ruby-nio4r-2.5.1/ext/nio4r'
/bin/install -c -m 0755 nio4r_ext.so /usr/src/RPM/BUILD/ruby-nio4r-2.5.1/.so.nio4r/usr/lib/ruby/site_ruby/2.5.5/i586-linux
make: Leaving directory '/usr/src/RPM/BUILD/ruby-nio4r-2.5.1/ext/nio4r'
[/usr/src/RPM/BUILD/ruby-nio4r-2.5.1/./ext/nio4r]$ make make
make: Entering directory '/usr/src/RPM/BUILD/ruby-nio4r-2.5.1/ext/nio4r'
make: Nothing to be done for 'all'.
make: Leaving directory '/usr/src/RPM/BUILD/ruby-nio4r-2.5.1/ext/nio4r'
make: Entering directory '/usr/src/RPM/BUILD/ruby-nio4r-2.5.1/ext/nio4r'
/bin/install -c -m 0755 nio4r_ext.so /usr/src/RPM/BUILD/ruby-nio4r-2.5.1/.so.nio4r/usr/lib/ruby/site_ruby/2.5.5/i586-linux
make: Leaving directory '/usr/src/RPM/BUILD/ruby-nio4r-2.5.1/ext/nio4r'

- - DOCUMENT- - - - - - - - - - - - - - - - - - - - - - - - - - - - - 


+ exit 0
Executing(%install): /bin/sh -e /usr/src/tmp/rpm-tmp.63732
+ umask 022
+ /bin/mkdir -p /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ /bin/chmod -Rf u+rwX -- /usr/src/tmp/ruby-nio4r-buildroot
+ :
+ /bin/rm -rf -- /usr/src/tmp/ruby-nio4r-buildroot
+ cd ruby-nio4r-2.5.1
+ /usr/bin/ruby -rvendor-specific /usr/bin/setup.rb install --install_prefix=/usr/src/tmp/ruby-nio4r-buildroot --gem-version-replace=
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
gem 'nio4r' at /usr/src/RPM/BUILD/ruby-nio4r-2.5.1
(ruby 2.5.5 i586-linux)

- - INSTALL - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

* {exe} ->
* {dl} ->
  % nio4r < .so.nio4r/usr/lib/ruby/site_ruby/2.5.5/i586-linux
    nio4r_ext.so => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/extensions/x86-linux/2.5.0/nio4r-2.5.1/nio4r_ext.so
    gem.build_complete => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/extensions/x86-linux/2.5.0/nio4r-2.5.1/gem.build_complete
    /usr/lib/ruby/gems/2.5.0/extensions/x86-linux/2.5.0/nio4r-2.5.1 -> [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/i586-linux
* {lib} ->
  % nio4r < lib
    nio/version.rb => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/lib/nio/version.rb
    nio/selector.rb => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/lib/nio/selector.rb
    nio/monitor.rb => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/lib/nio/monitor.rb
    nio/bytebuffer.rb => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/lib/nio/bytebuffer.rb
    nio.rb => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/lib/nio.rb
* {man} ->
* {ri} ->
  % nio4r < .ri.nio4r
    cache.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/cache.ri
    NIO/engine-c.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/engine-c.ri
    NIO/cdesc-NIO.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/cdesc-NIO.ri
    NIO/Selector/wakeup-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/Selector/wakeup-i.ri
    NIO/Selector/select-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/Selector/select-i.ri
    NIO/Selector/registered%3f-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/Selector/registered%3f-i.ri
    NIO/Selector/register-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/Selector/register-i.ri
    NIO/Selector/empty%3f-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/Selector/empty%3f-i.ri
    NIO/Selector/deregister-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/Selector/deregister-i.ri
    NIO/Selector/closed%3f-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/Selector/closed%3f-i.ri
    NIO/Selector/close-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/Selector/close-i.ri
    NIO/Selector/backend-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/Selector/backend-i.ri
    NIO/Selector/new-c.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/Selector/new-c.ri
    NIO/Selector/backends-c.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/Selector/backends-c.ri
    NIO/Selector/cdesc-Selector.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/Selector/cdesc-Selector.ri
    NIO/Monitor/readiness-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/Monitor/readiness-i.ri
    NIO/Monitor/value-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/Monitor/value-i.ri
    NIO/Monitor/selector-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/Monitor/selector-i.ri
    NIO/Monitor/interests-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/Monitor/interests-i.ri
    NIO/Monitor/io-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/Monitor/io-i.ri
    NIO/Monitor/cdesc-Monitor.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/Monitor/cdesc-Monitor.ri
    NIO/ByteBuffer/capacity-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/ByteBuffer/capacity-i.ri
    NIO/ByteBuffer/limit-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/ByteBuffer/limit-i.ri
    NIO/ByteBuffer/position-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/ByteBuffer/position-i.ri
    NIO/ByteBuffer/write_to-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/ByteBuffer/write_to-i.ri
    NIO/ByteBuffer/rewind-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/ByteBuffer/rewind-i.ri
    NIO/ByteBuffer/reset-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/ByteBuffer/reset-i.ri
    NIO/ByteBuffer/remaining-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/ByteBuffer/remaining-i.ri
    NIO/ByteBuffer/read_from-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/ByteBuffer/read_from-i.ri
    NIO/ByteBuffer/put-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/ByteBuffer/put-i.ri
    NIO/ByteBuffer/position%3d-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/ByteBuffer/position%3d-i.ri
    NIO/ByteBuffer/mark-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/ByteBuffer/mark-i.ri
    NIO/ByteBuffer/limit%3d-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/ByteBuffer/limit%3d-i.ri
    NIO/ByteBuffer/inspect-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/ByteBuffer/inspect-i.ri
    NIO/ByteBuffer/get-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/ByteBuffer/get-i.ri
    NIO/ByteBuffer/full%3f-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/ByteBuffer/full%3f-i.ri
    NIO/ByteBuffer/flip-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/ByteBuffer/flip-i.ri
    NIO/ByteBuffer/each-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/ByteBuffer/each-i.ri
    NIO/ByteBuffer/compact-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/ByteBuffer/compact-i.ri
    NIO/ByteBuffer/clear-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/ByteBuffer/clear-i.ri
    NIO/ByteBuffer/%5b%5d-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/ByteBuffer/%5b%5d-i.ri
    NIO/ByteBuffer/%3c%3c-i.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/ByteBuffer/%3c%3c-i.ri
    NIO/ByteBuffer/new-c.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/ByteBuffer/new-c.ri
    NIO/ByteBuffer/cdesc-ByteBuffer.ri => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/doc/nio4r-2.5.1/ri/NIO/ByteBuffer/cdesc-ByteBuffer.ri
* {inc} ->
  % nio4r < ext
    nio4r/nio4r.h => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/include/nio4r/nio4r.h
    nio4r/libev.h => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/include/nio4r/libev.h
    libev/ev_wrap.h => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/include/libev/ev_wrap.h
    libev/ev_vars.h => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/include/libev/ev_vars.h
    libev/ev.h => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/include/libev/ev.h
    /usr/include -> [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/ext
* {app} ->
* {log} ->
* {state} ->
* {test} ->
  % nio4r < spec
    support/selectable_examples.rb => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/spec/support/selectable_examples.rb
    spec_helper.rb => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/spec/spec_helper.rb
    nio/selector_spec.rb => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/spec/nio/selector_spec.rb
    nio/selectables/udp_socket_spec.rb => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/spec/nio/selectables/udp_socket_spec.rb
    nio/selectables/tcp_socket_spec.rb => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/spec/nio/selectables/tcp_socket_spec.rb
    nio/selectables/ssl_socket_spec.rb => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/spec/nio/selectables/ssl_socket_spec.rb
    nio/selectables/pipe_spec.rb => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/spec/nio/selectables/pipe_spec.rb
    nio/monitor_spec.rb => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/spec/nio/monitor_spec.rb
    nio/bytebuffer_spec.rb => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/spec/nio/bytebuffer_spec.rb
    nio/acceptables_spec.rb => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/spec/nio/acceptables_spec.rb
* {sup} ->
  % nio4r < examples
    echo_server.rb => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/examples/echo_server.rb
* {conf} ->
* {data} ->
  % nio4r < .
    .gitignore => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/.gitignore
    .rspec => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/.rspec
    .rubocop.yml => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/.rubocop.yml
    .travis.yml => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/.travis.yml
    CHANGES.md => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/CHANGES.md
    Gemfile => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/Gemfile
    Guardfile => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/Guardfile
    README.md => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/README.md
    Rakefile => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/Rakefile
    appveyor.yml => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/appveyor.yml
    logo.png => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/logo.png
    nio4r.gemspec => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/nio4r.gemspec
    rakelib/extension.rake => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/rakelib/extension.rake
    rakelib/rspec.rake => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/rakelib/rspec.rake
    rakelib/rubocop.rake => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/rakelib/rubocop.rake
* {.gemspec} ->
  %nio4r
    /usr/src/tmp/gem.20200229-1957580-1ucgia4 => [/usr/src/tmp/ruby-nio4r-buildroot]/usr/lib/ruby/gems/2.5.0/specifications/nio4r-2.5.1.gemspec
* {gemfile} ->

+ /usr/lib/rpm/brp-alt
Cleaning files in /usr/src/tmp/ruby-nio4r-buildroot (auto)
removed './usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/.gitignore'
mode of './usr/lib/ruby/gems/2.5.0/extensions/x86-linux/2.5.0/nio4r-2.5.1/nio4r_ext.so' changed from 0755 (rwxr-xr-x) to 0644 (rw-r--r--)
Verifying and fixing files in /usr/src/tmp/ruby-nio4r-buildroot (binconfig,pkgconfig,libtool,desktop)
Checking contents of files in /usr/src/tmp/ruby-nio4r-buildroot/ (default)
Compressing files in /usr/src/tmp/ruby-nio4r-buildroot (auto)
Adjusting library links in /usr/src/tmp/ruby-nio4r-buildroot
./usr/lib:
./usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/lib:
/usr/lib/rpm/debugedit: ./usr/lib/ruby/gems/2.5.0/extensions/x86-linux/2.5.0/nio4r-2.5.1/nio4r_ext.so: DWARF version 21023 unhandled
Verifying ELF objects in /usr/src/tmp/ruby-nio4r-buildroot (arch=normal,fhs=normal,lfs=relaxed,lint=relaxed,rpath=normal,stack=normal,textrel=normal,unresolved=normal)
Hardlinking identical .pyc and .pyo files
Executing(%check): /bin/sh -e /usr/src/tmp/rpm-tmp.38640
+ umask 022
+ /bin/mkdir -p /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ cd ruby-nio4r-2.5.1
+ true
+ exit 0
Processing files: ruby-nio4r-2.5.1-alt1
Executing(%doc): /bin/sh -e /usr/src/tmp/rpm-tmp.38102
+ umask 022
+ /bin/mkdir -p /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ cd ruby-nio4r-2.5.1
+ DOCDIR=/usr/src/tmp/ruby-nio4r-buildroot/usr/share/doc/ruby-nio4r-2.5.1
+ export DOCDIR
+ rm -rf /usr/src/tmp/ruby-nio4r-buildroot/usr/share/doc/ruby-nio4r-2.5.1
+ /bin/mkdir -p /usr/src/tmp/ruby-nio4r-buildroot/usr/share/doc/ruby-nio4r-2.5.1
+ cp -prL README.md /usr/src/tmp/ruby-nio4r-buildroot/usr/share/doc/ruby-nio4r-2.5.1
+ chmod -R go-w /usr/src/tmp/ruby-nio4r-buildroot/usr/share/doc/ruby-nio4r-2.5.1
+ chmod -R a+rX /usr/src/tmp/ruby-nio4r-buildroot/usr/share/doc/ruby-nio4r-2.5.1
+ exit 0
Finding Provides (using /usr/lib/rpm/find-provides)
Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.xYokIc
find-provides: absolute symbolic link /usr/src/tmp/ruby-nio4r-buildroot/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/ext -> /usr/include is not going to provide anything
find-provides: absolute symbolic link /usr/src/tmp/ruby-nio4r-buildroot/usr/lib/ruby/gems/2.5.0/gems/nio4r-2.5.1/i586-linux -> /usr/lib/ruby/gems/2.5.0/extensions/x86-linux/2.5.0/nio4r-2.5.1 is not going to provide anything
find-provides: running scripts (alternatives,debuginfo,lib,pam,perl,pkgconfig,python,ruby,shell)
ruby.prov: detecting ruby provides for ruby-nio4r...
ruby.prov: project file is '/usr/src/RPM/BUILD/ruby-nio4r-2.5.1/SetupConfig'
ruby.prov: setup.rb provides --install_prefix=/usr/src/tmp/ruby-nio4r-buildroot --package=ruby-nio4r -q
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
gem 'nio4r' at /usr/src/RPM/BUILD/ruby-nio4r-2.5.1
(ruby 2.5.5 i586-linux)
* provs ->
  - [nio4r]
    [lib]:
      gem(nio4r) = 2.5.1
      ruby-gem(nio4r) = 2.5.1
      rubygem(nio4r) = 2.5.1
Finding Requires (using /usr/lib/rpm/find-requires)
Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.vQeZte
find-requires: running scripts (cpp,debuginfo,files,lib,pam,perl,pkgconfig,pkgconfiglib,python,rpmlib,ruby,shebang,shell,static,symlinks,systemd-services)
ruby.req: detecting ruby requires for ruby-nio4r...
ruby.req: ruby project file is '/usr/src/RPM/BUILD/ruby-nio4r-2.5.1/SetupConfig'
ruby.req: setup.rb requires --install_prefix=/usr/src/tmp/ruby-nio4r-buildroot --package=ruby-nio4r -q
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
gem 'nio4r' at /usr/src/RPM/BUILD/ruby-nio4r-2.5.1
(ruby 2.5.5 i586-linux)
* reqs ->
  - [nio4r]
    [lib]:
      ruby(2.5.0)
      ruby >= 2.3
      rubygems >= 0
find-requires: FINDPACKAGE-COMMANDS: ruby
Provides: gem(nio4r) = 2.5.1, ruby-gem(nio4r) = 2.5.1, rubygem(nio4r) = 2.5.1
Requires: /usr/bin/env, /usr/include, libc.so.6(GLIBC_2.0), libc.so.6(GLIBC_2.1), libc.so.6(GLIBC_2.1.3), libc.so.6(GLIBC_2.17), libc.so.6(GLIBC_2.2), libc.so.6(GLIBC_2.28), libc.so.6(GLIBC_2.3.2), libc.so.6(GLIBC_2.3.4), libc.so.6(GLIBC_2.4), libc.so.6(GLIBC_2.7), libc.so.6(GLIBC_2.9), libpthread.so.0(GLIBC_2.0), libruby.so.2.5 >= set:oiObjWIzRXdVeqjfWxoIA4Av18yZyHOBVknfNumnXpySVfnsF2VObM6XkNtSaLURdiKrsL1FkdQsuyGknZtL2gVvN8cdiwINoqtCKoVyP9gk5C9s1EWuI3xA4vVsdkxodKDhGJTZrzAzSTxedSBELQsY8OMx2brsiZu91, rtld(GNU_HASH), ruby >= 2.3, ruby(2.5.0), rubygems >= 0
Requires(rpmlib): rpmlib(SetVersions)
Finding debuginfo files (using /usr/lib/rpm/find-debuginfo-files)
Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.2QGOsc
/usr/lib/rpm/debugedit: ./usr/lib/debug/usr/lib/ruby/gems/2.5.0/extensions/x86-linux/2.5.0/nio4r-2.5.1/nio4r_ext.so.debug: DWARF version 21023 unhandled
Creating ruby-nio4r-debuginfo package
Processing files: gem-nio4r-doc-2.5.1-alt1
Finding Provides (using /usr/lib/rpm/find-provides)
Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.DkftXd
find-provides: running scripts (alternatives,debuginfo,lib,pam,perl,pkgconfig,python,ruby,shell)
ruby.prov: detecting ruby provides for gem-nio4r-doc...
ruby.prov: project file is '/usr/src/RPM/BUILD/ruby-nio4r-2.5.1/SetupConfig'
ruby.prov: setup.rb provides --install_prefix=/usr/src/tmp/ruby-nio4r-buildroot --package=gem-nio4r-doc -q
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
gem 'nio4r' at /usr/src/RPM/BUILD/ruby-nio4r-2.5.1
(ruby 2.5.5 i586-linux)
* provs ->
  - [nio4r]
Finding Requires (using /usr/lib/rpm/find-requires)
Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.aUU8je
find-requires: running scripts (cpp,debuginfo,files,lib,pam,perl,pkgconfig,pkgconfiglib,python,rpmlib,ruby,shebang,shell,static,symlinks,systemd-services)
ruby.req: detecting ruby requires for gem-nio4r-doc...
ruby.req: ruby project file is '/usr/src/RPM/BUILD/ruby-nio4r-2.5.1/SetupConfig'
ruby.req: setup.rb requires --install_prefix=/usr/src/tmp/ruby-nio4r-buildroot --package=gem-nio4r-doc -q
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
gem 'nio4r' at /usr/src/RPM/BUILD/ruby-nio4r-2.5.1
(ruby 2.5.5 i586-linux)
* reqs ->
  - [nio4r]
    [doc]:
      gem(nio4r) = 2.5.1
Provides: ruby-nio4r-doc
Requires: gem(nio4r) = 2.5.1
Obsoletes: ruby-nio4r-doc
Processing files: gem-nio4r-devel-2.5.1-alt1
Finding Provides (using /usr/lib/rpm/find-provides)
Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.56QMlc
find-provides: running scripts (alternatives,debuginfo,lib,pam,perl,pkgconfig,python,ruby,shell)
ruby.prov: detecting ruby provides for gem-nio4r-devel...
ruby.prov: project file is '/usr/src/RPM/BUILD/ruby-nio4r-2.5.1/SetupConfig'
ruby.prov: setup.rb provides --install_prefix=/usr/src/tmp/ruby-nio4r-buildroot --package=gem-nio4r-devel -q
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
gem 'nio4r' at /usr/src/RPM/BUILD/ruby-nio4r-2.5.1
(ruby 2.5.5 i586-linux)
* provs ->
  - [nio4r]
Finding Requires (using /usr/lib/rpm/find-requires)
Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.QmWSve
find-requires: running scripts (cpp,debuginfo,files,lib,pam,perl,pkgconfig,pkgconfiglib,python,rpmlib,ruby,shebang,shell,static,symlinks,systemd-services)
ruby.req: detecting ruby requires for gem-nio4r-devel...
ruby.req: ruby project file is '/usr/src/RPM/BUILD/ruby-nio4r-2.5.1/SetupConfig'
ruby.req: setup.rb requires --install_prefix=/usr/src/tmp/ruby-nio4r-buildroot --package=gem-nio4r-devel -q
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
gem 'nio4r' at /usr/src/RPM/BUILD/ruby-nio4r-2.5.1
(ruby 2.5.5 i586-linux)
* reqs ->
  - [nio4r]
    [devel]:
      gem(nio4r) = 2.5.1
Requires: gem(nio4r) = 2.5.1, libruby-devel
Processing files: ruby-nio4r-debuginfo-2.5.1-alt1
Finding Provides (using /usr/lib/rpm/find-provides)
Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.4h0F4a
find-provides: running scripts (debuginfo)
Finding Requires (using /usr/lib/rpm/find-requires)
Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.Kb67fb
find-requires: running scripts (debuginfo)
Requires: ruby-nio4r = 2.5.1-alt1, debug(libc.so.6), debug(libpthread.so.0), debug(libruby.so.2.5)
Adding to ruby-nio4r-debuginfo a strict dependency on ruby-nio4r
Adding to gem-nio4r-doc a strict dependency on ruby-nio4r
Adding to gem-nio4r-devel a strict dependency on ruby-nio4r
Removing 1 extra deps from gem-nio4r-doc due to dependency on ruby-nio4r
Removing 1 extra deps from gem-nio4r-devel due to dependency on ruby-nio4r
Wrote: /usr/src/RPM/RPMS/i586/ruby-nio4r-2.5.1-alt1.i586.rpm
Wrote: /usr/src/RPM/RPMS/noarch/gem-nio4r-doc-2.5.1-alt1.noarch.rpm
Wrote: /usr/src/RPM/RPMS/noarch/gem-nio4r-devel-2.5.1-alt1.noarch.rpm
Wrote: /usr/src/RPM/RPMS/i586/ruby-nio4r-debuginfo-2.5.1-alt1.i586.rpm
25.26user 3.52system 0:37.20elapsed 77%CPU (0avgtext+0avgdata 48896maxresident)k
0inputs+0outputs (0major+479789minor)pagefaults 0swaps
39.42user 10.64system 0:58.35elapsed 85%CPU (0avgtext+0avgdata 108936maxresident)k
0inputs+0outputs (0major+888017minor)pagefaults 0swaps
--- ruby-nio4r-2.5.1-alt1.i586.rpm.repo	2019-09-16 19:19:09.000000000 +0000
+++ ruby-nio4r-2.5.1-alt1.i586.rpm.hasher	2020-02-29 11:43:49.125203880 +0000
@@ -54,2 +54,3 @@
 Requires: libc.so.6(GLIBC_2.2)  
+Requires: libc.so.6(GLIBC_2.28)  
 Requires: libc.so.6(GLIBC_2.3.2)