Mock Version: 4.1 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target x86_64 --nodeps /builddir/build/SPECS/rubygem-nio4r.spec'], chrootPath='/var/lib/mock/rhel-8-x86_64-1686869640.620670/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=0uid=1000gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.soxrtgo7:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']unshare_net=TrueprintOutput=True) Using nspawn with args ['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.soxrtgo7:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11'] Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', 'a00ac66f88f7498283cfe96ea63b1583', '-D', '/var/lib/mock/rhel-8-x86_64-1686869640.620670/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.soxrtgo7:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;\\007"', '--setenv=PS1= \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', 'bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target x86_64 --nodeps /builddir/build/SPECS/rubygem-nio4r.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0', 'SYSTEMD_SECCOMP': '0'} and shell False Building target platforms: x86_64 Building for target x86_64 Wrote: /builddir/build/SRPMS/rubygem-nio4r-2.5.8-3.el8.src.rpm Child return code was: 0 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bb --target x86_64 --nodeps /builddir/build/SPECS/rubygem-nio4r.spec'], chrootPath='/var/lib/mock/rhel-8-x86_64-1686869640.620670/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=0uid=1000gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.soxrtgo7:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']unshare_net=TrueprintOutput=True) Using nspawn with args ['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.soxrtgo7:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11'] Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', '8a67625464a04cb5bedbcda2c40186b1', '-D', '/var/lib/mock/rhel-8-x86_64-1686869640.620670/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.soxrtgo7:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;\\007"', '--setenv=PS1= \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', 'bash', '--login', '-c', '/usr/bin/rpmbuild -bb --target x86_64 --nodeps /builddir/build/SPECS/rubygem-nio4r.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0', 'SYSTEMD_SECCOMP': '0'} and shell False Building target platforms: x86_64 Building for target x86_64 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.tNoYBp + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf nio4r-2.5.8 + /usr/bin/gem unpack /builddir/build/SOURCES/nio4r-2.5.8.gem Unpacked gem: '/builddir/build/BUILD/nio4r-2.5.8' + /usr/bin/gem spec /builddir/build/SOURCES/nio4r-2.5.8.gem --ruby + STATUS=0 + '[' 0 -ne 0 ']' + cd nio4r-2.5.8 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.dZ2EAt + umask 022 + cd /builddir/build/BUILD + cd nio4r-2.5.8 + gem build ../nio4r-2.5.8.gemspec WARNING: open-ended dependency on bundler (>= 0, development) is not recommended if bundler is semantically versioned, use: add_development_dependency 'bundler', '~> 0' WARNING: open-ended dependency on rake (>= 0, development) is not recommended if rake is semantically versioned, use: add_development_dependency 'rake', '~> 0' WARNING: See http://guides.rubygems.org/specification-reference/ for help Successfully built RubyGem Name: nio4r Version: 2.5.8 File: nio4r-2.5.8.gem + mkdir -p ./usr/share/gems + CONFIGURE_ARGS='--with-cflags='\''-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection'\'' ' + gem install -V --local --build-root . --force --document=ri,rdoc nio4r-2.5.8.gem WARNING: You build with buildroot. Build root: /builddir/build/BUILD/nio4r-2.5.8 Bin dir: /builddir/build/BUILD/nio4r-2.5.8/usr/bin Gem home: /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/.github/workflows/workflow.yml /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/.gitignore /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/.rspec /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/.rubocop.yml /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/CHANGES.md /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/Gemfile /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/README.md /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/Rakefile /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/examples/echo_server.rb /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/ext/libev/Changes /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/ext/libev/LICENSE /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/ext/libev/README /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/ext/libev/ev.c /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/ext/libev/ev.h /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/ext/libev/ev_epoll.c /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/ext/libev/ev_iouring.c /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/ext/libev/ev_kqueue.c /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/ext/libev/ev_linuxaio.c /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/ext/libev/ev_poll.c /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/ext/libev/ev_port.c /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/ext/libev/ev_select.c /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/ext/libev/ev_vars.h /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/ext/libev/ev_win32.c /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/ext/libev/ev_wrap.h /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/ext/nio4r/.clang-format /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/ext/nio4r/bytebuffer.c /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/ext/nio4r/extconf.rb /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/ext/nio4r/libev.h /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/ext/nio4r/monitor.c /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/ext/nio4r/nio4r.h /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/ext/nio4r/nio4r_ext.c /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/ext/nio4r/org/nio4r/ByteBuffer.java /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/ext/nio4r/org/nio4r/Monitor.java /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/ext/nio4r/org/nio4r/Nio4r.java /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/ext/nio4r/org/nio4r/Selector.java /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/ext/nio4r/selector.c /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/lib/nio.rb /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/lib/nio/bytebuffer.rb /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/lib/nio/monitor.rb /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/lib/nio/selector.rb /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/lib/nio/version.rb /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/logo.png /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/nio4r.gemspec /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/rakelib/extension.rake /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/rakelib/rspec.rake /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/rakelib/rubocop.rake /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/spec/nio/acceptables_spec.rb /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/spec/nio/bytebuffer_spec.rb /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/spec/nio/monitor_spec.rb /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/spec/nio/selectables/pipe_spec.rb /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/spec/nio/selectables/ssl_socket_spec.rb /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/spec/nio/selectables/tcp_socket_spec.rb /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/spec/nio/selectables/udp_socket_spec.rb /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/spec/nio/selector_spec.rb /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/spec/spec_helper.rb /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/spec/support/selectable_examples.rb Building native extensions. This could take a while... current directory: /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/ext/nio4r /usr/bin/ruby -r ./siteconf20230615-40-p51vmg.rb extconf.rb checking for unistd.h... yes checking for linux/aio_abi.h... yes checking for linux/io_uring.h... yes checking for sys/select.h... yes checking for port_event_t in poll.h... no checking for sys/epoll.h... yes checking for sys/event.h... no checking for port_event_t in port.h... no checking for sys/resource.h... yes creating Makefile current directory: /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/ext/nio4r make "DESTDIR=" clean rm -f rm -f nio4r_ext.so *.o *.bak mkmf.log .*.time current directory: /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/ext/nio4r make "DESTDIR=" gcc -I. -I/usr/include -I/usr/include/ruby/backward -I/usr/include -I. -DHAVE_UNISTD_H -DHAVE_LINUX_AIO_ABI_H -DEV_USE_LINUXAIO -DHAVE_LINUX_IO_URING_H -DEV_USE_IOURING -DHAVE_SYS_SELECT_H -DEV_USE_SELECT -DHAVE_SYS_EPOLL_H -DEV_USE_EPOLL -DHAVE_SYS_RESOURCE_H -DHAVE_SYS_RESOURCE_H -DEV_STANDALONE -fPIC -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -m64 -o bytebuffer.o -c bytebuffer.c gcc -I. -I/usr/include -I/usr/include/ruby/backward -I/usr/include -I. -DHAVE_UNISTD_H -DHAVE_LINUX_AIO_ABI_H -DEV_USE_LINUXAIO -DHAVE_LINUX_IO_URING_H -DEV_USE_IOURING -DHAVE_SYS_SELECT_H -DEV_USE_SELECT -DHAVE_SYS_EPOLL_H -DEV_USE_EPOLL -DHAVE_SYS_RESOURCE_H -DHAVE_SYS_RESOURCE_H -DEV_STANDALONE -fPIC -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -m64 -o monitor.o -c monitor.c In file included from libev.h:7, from nio4r.h:9, from monitor.c:6: monitor.c: In function 'NIO_Monitor_initialize': ../libev/ev.h:691:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ((ev_watcher *)(void *)(ev))->active = \ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:712:51: note: in expansion of macro 'ev_init' #define ev_io_init(ev,cb,fd,events) do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0) ^~~~~~~ monitor.c:101:5: note: in expansion of macro 'ev_io_init' ev_io_init(&monitor->ev_io, NIO_Selector_monitor_callback, FPTR_TO_FD(fptr), monitor->interests); ^~~~~~~~~~ ../libev/ev.h:692:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ((ev_watcher *)(void *)(ev))->pending = 0; \ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:712:51: note: in expansion of macro 'ev_init' #define ev_io_init(ev,cb,fd,events) do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0) ^~~~~~~ monitor.c:101:5: note: in expansion of macro 'ev_io_init' ev_io_init(&monitor->ev_io, NIO_Selector_monitor_callback, FPTR_TO_FD(fptr), monitor->interests); ^~~~~~~~~~ ../libev/ev.h:737:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # define ev_set_priority(ev,pri) ( (ev_watcher *)(void *)(ev))->priority = (pri) ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:693:3: note: in expansion of macro 'ev_set_priority' ev_set_priority ((ev), 0); \ ^~~~~~~~~~~~~~~ ../libev/ev.h:712:51: note: in expansion of macro 'ev_init' #define ev_io_init(ev,cb,fd,events) do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0) ^~~~~~~ monitor.c:101:5: note: in expansion of macro 'ev_io_init' ev_io_init(&monitor->ev_io, NIO_Selector_monitor_callback, FPTR_TO_FD(fptr), monitor->interests); ^~~~~~~~~~ ../libev/ev.h:744:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # 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:694:3: note: in expansion of macro 'ev_set_cb' ev_set_cb ((ev), cb_); \ ^~~~~~~~~ ../libev/ev.h:712:51: note: in expansion of macro 'ev_init' #define ev_io_init(ev,cb,fd,events) do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0) ^~~~~~~ monitor.c:101:5: note: in expansion of macro 'ev_io_init' ev_io_init(&monitor->ev_io, NIO_Selector_monitor_callback, FPTR_TO_FD(fptr), monitor->interests); ^~~~~~~~~~ gcc -I. -I/usr/include -I/usr/include/ruby/backward -I/usr/include -I. -DHAVE_UNISTD_H -DHAVE_LINUX_AIO_ABI_H -DEV_USE_LINUXAIO -DHAVE_LINUX_IO_URING_H -DEV_USE_IOURING -DHAVE_SYS_SELECT_H -DEV_USE_SELECT -DHAVE_SYS_EPOLL_H -DEV_USE_EPOLL -DHAVE_SYS_RESOURCE_H -DHAVE_SYS_RESOURCE_H -DEV_STANDALONE -fPIC -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -m64 -o nio4r_ext.o -c nio4r_ext.c In file included from nio4r_ext.c:6: ../libev/ev.c:573:48: warning: "/*" within comment [-Wcomment] /*#define MIN_INTERVAL 0.00000095367431640625 /* 1/2**20, good till 2200 */ In file included from nio4r_ext.c:6: ../libev/ev.c:2136:31: warning: 'ev_default_loop_ptr' initialized and declared 'extern' 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/ev.c:231, from nio4r_ext.c:6: ../libev/ev.c: In function 'evpipe_init': ../libev/ev.h:727:52: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] #define ev_is_active(ev) (0 + ((ev_watcher *)(void *)(ev))->active) /* ro, true when the watcher has been started */ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.c:2728:8: note: in expansion of macro 'ev_is_active' if (!ev_is_active (&pipe_w)) ^~~~~~~~~~~~ ../libev/ev.c: In function 'evtimerfd_init': ../libev/ev.h:727:52: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] #define ev_is_active(ev) (0 + ((ev_watcher *)(void *)(ev))->active) /* ro, true when the watcher has been started */ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.c:3050:8: note: in expansion of macro 'ev_is_active' if (!ev_is_active (&timerfd_w)) ^~~~~~~~~~~~ ../libev/ev.h:691:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ((ev_watcher *)(void *)(ev))->active = \ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:712:51: note: in expansion of macro 'ev_init' #define ev_io_init(ev,cb,fd,events) do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0) ^~~~~~~ ../libev/ev.c:3058:11: note: in expansion of macro 'ev_io_init' ev_io_init (&timerfd_w, timerfdcb, timerfd, EV_READ); ^~~~~~~~~~ ../libev/ev.h:692:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ((ev_watcher *)(void *)(ev))->pending = 0; \ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:712:51: note: in expansion of macro 'ev_init' #define ev_io_init(ev,cb,fd,events) do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0) ^~~~~~~ ../libev/ev.c:3058:11: note: in expansion of macro 'ev_io_init' ev_io_init (&timerfd_w, timerfdcb, timerfd, EV_READ); ^~~~~~~~~~ ../libev/ev.h:737:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # define ev_set_priority(ev,pri) ( (ev_watcher *)(void *)(ev))->priority = (pri) ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:693:3: note: in expansion of macro 'ev_set_priority' ev_set_priority ((ev), 0); \ ^~~~~~~~~~~~~~~ ../libev/ev.h:712:51: note: in expansion of macro 'ev_init' #define ev_io_init(ev,cb,fd,events) do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0) ^~~~~~~ ../libev/ev.c:3058:11: note: in expansion of macro 'ev_io_init' ev_io_init (&timerfd_w, timerfdcb, timerfd, EV_READ); ^~~~~~~~~~ ../libev/ev.h:744:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # 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:694:3: note: in expansion of macro 'ev_set_cb' ev_set_cb ((ev), cb_); \ ^~~~~~~~~ ../libev/ev.h:712:51: note: in expansion of macro 'ev_init' #define ev_io_init(ev,cb,fd,events) do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0) ^~~~~~~ ../libev/ev.c:3058:11: note: in expansion of macro 'ev_io_init' ev_io_init (&timerfd_w, timerfdcb, timerfd, EV_READ); ^~~~~~~~~~ ../libev/ev.h:737:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # define ev_set_priority(ev,pri) ( (ev_watcher *)(void *)(ev))->priority = (pri) ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.c:3059:11: note: in expansion of macro 'ev_set_priority' ev_set_priority (&timerfd_w, EV_MINPRI); ^~~~~~~~~~~~~~~ In file included from ../libev/ev.c:220, from nio4r_ext.c:6: ../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] 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] 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:264:69: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: linuxaio unexpected io_cancel failed", errno != EINTR && errno != EINPROGRESS)); ^ ../libev/ev_linuxaio.c:264:69: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: linuxaio unexpected io_cancel failed", errno != EINTR && errno != EINPROGRESS)); ^ ../libev/ev_linuxaio.c: In function 'linuxaio_parse_events': ../libev/ev_linuxaio.c:312:50: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: iocb fd must be in-bounds", fd >= 0 && fd < anfdmax)); ^ ../libev/ev_linuxaio.c:312:50: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: iocb fd must be in-bounds", fd >= 0 && fd < anfdmax)); ^ ../libev/ev_linuxaio.c: In function 'linuxaio_poll': ../libev/ev_linuxaio.c:527:57: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: event loop rejected bad fd", errno != EBADF)); ^ ../libev/ev_linuxaio.c:527:57: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: event loop rejected bad fd", errno != EBADF)); ^ In file included from ../libev/ev.c:3086, from nio4r_ext.c:6: ../libev/ev_linuxaio.c:467:10: warning: suggest explicit braces to avoid ambiguous 'else' [-Wdangling-else] if (ecb_expect_false (res < 0)) ^ In file included from ../libev/ev.c:231, from nio4r_ext.c:6: ../libev/ev_linuxaio.c: In function 'linuxaio_init': ../libev/ev.h:691:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ((ev_watcher *)(void *)(ev))->active = \ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:712:51: note: in expansion of macro 'ev_init' #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:571:3: note: in expansion of macro 'ev_io_init' ev_io_init (&linuxaio_epoll_w, linuxaio_epoll_cb, backend_fd, EV_READ); ^~~~~~~~~~ ../libev/ev.h:692:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ((ev_watcher *)(void *)(ev))->pending = 0; \ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:712:51: note: in expansion of macro 'ev_init' #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:571:3: note: in expansion of macro 'ev_io_init' ev_io_init (&linuxaio_epoll_w, linuxaio_epoll_cb, backend_fd, EV_READ); ^~~~~~~~~~ ../libev/ev.h:737:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # define ev_set_priority(ev,pri) ( (ev_watcher *)(void *)(ev))->priority = (pri) ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:693:3: note: in expansion of macro 'ev_set_priority' ev_set_priority ((ev), 0); \ ^~~~~~~~~~~~~~~ ../libev/ev.h:712:51: note: in expansion of macro 'ev_init' #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:571:3: note: in expansion of macro 'ev_io_init' ev_io_init (&linuxaio_epoll_w, linuxaio_epoll_cb, backend_fd, EV_READ); ^~~~~~~~~~ ../libev/ev.h:744:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # 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:694:3: note: in expansion of macro 'ev_set_cb' ev_set_cb ((ev), cb_); \ ^~~~~~~~~ ../libev/ev.h:712:51: note: in expansion of macro 'ev_init' #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:571:3: note: in expansion of macro 'ev_io_init' ev_io_init (&linuxaio_epoll_w, linuxaio_epoll_cb, backend_fd, EV_READ); ^~~~~~~~~~ ../libev/ev.h:737:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # define ev_set_priority(ev,pri) ( (ev_watcher *)(void *)(ev))->priority = (pri) ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev_linuxaio.c:572:3: note: in expansion of macro 'ev_set_priority' ev_set_priority (&linuxaio_epoll_w, EV_MAXPRI); ^~~~~~~~~~~~~~~ ../libev/ev_linuxaio.c: In function 'linuxaio_fork': ../libev/ev.h:180:20: warning: left-hand operand of comma expression has no effect [-Wunused-value] # define EV_A_ EV_A, /* a loop as first of multiple arguments */ ^ ../libev/ev.h:698:52: note: in definition of macro 'ev_io_set' #define ev_io_set(ev,fd_,events_) do { (ev)->fd = (fd_); (ev)->events = (events_) | EV__IOFDSET; } while (0) ^~ ../libev/ev_linuxaio.c:617:16: note: in expansion of macro 'EV_A_' ev_io_set (EV_A_ &linuxaio_epoll_w, backend_fd, EV_READ); ^~~~~ ../libev/ev.h:180:20: warning: left-hand operand of comma expression has no effect [-Wunused-value] # define EV_A_ EV_A, /* a loop as first of multiple arguments */ ^ ../libev/ev.h:698:70: note: in definition of macro 'ev_io_set' #define ev_io_set(ev,fd_,events_) do { (ev)->fd = (fd_); (ev)->events = (events_) | EV__IOFDSET; } while (0) ^~ ../libev/ev_linuxaio.c:617:16: note: in expansion of macro 'EV_A_' ev_io_set (EV_A_ &linuxaio_epoll_w, backend_fd, EV_READ); ^~~~~ In file included from ../libev/ev.c:220, from nio4r_ext.c:6: ../libev/ev_iouring.c: In function 'iouring_enter': ../libev/ev_iouring.c:240:60: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: io_uring_enter did not consume all sqes", (res < 0 || res == iouring_to_submit))); ^ ../libev/ev_iouring.c:240:60: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: io_uring_enter did not consume all sqes", (res < 0 || res == iouring_to_submit))); ^ In file included from ../libev/ev.c:3089, from nio4r_ext.c:6: ../libev/ev_iouring.c: In function 'iouring_sqe_submit': ../libev/ev_iouring.c:298:31: warning: "/*" within comment [-Wcomment] /*ECB_MEMORY_FENCE_RELEASE; /* for the time being we assume this is not needed */ In file included from ../libev/ev.c:231, from nio4r_ext.c:6: ../libev/ev_iouring.c: In function 'iouring_internal_destroy': ../libev/ev.h:727:52: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] #define ev_is_active(ev) (0 + ((ev_watcher *)(void *)(ev))->active) /* ro, true when the watcher has been started */ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev_iouring.c:326:7: note: in expansion of macro 'ev_is_active' if (ev_is_active (&iouring_tfd_w)) ^~~~~~~~~~~~ ../libev/ev_iouring.c: In function 'iouring_fork': ../libev/ev.h:180:20: warning: left-hand operand of comma expression has no effect [-Wunused-value] # define EV_A_ EV_A, /* a loop as first of multiple arguments */ ^ ../libev/ev.h:698:52: note: in definition of macro 'ev_io_set' #define ev_io_set(ev,fd_,events_) do { (ev)->fd = (fd_); (ev)->events = (events_) | EV__IOFDSET; } while (0) ^~ ../libev/ev_iouring.c:428:16: note: in expansion of macro 'EV_A_' ev_io_set (EV_A_ &iouring_tfd_w, iouring_tfd, EV_READ); ^~~~~ ../libev/ev.h:180:20: warning: left-hand operand of comma expression has no effect [-Wunused-value] # define EV_A_ EV_A, /* a loop as first of multiple arguments */ ^ ../libev/ev.h:698:70: note: in definition of macro 'ev_io_set' #define ev_io_set(ev,fd_,events_) do { (ev)->fd = (fd_); (ev)->events = (events_) | EV__IOFDSET; } while (0) ^~ ../libev/ev_iouring.c:428:16: note: in expansion of macro 'EV_A_' ev_io_set (EV_A_ &iouring_tfd_w, iouring_tfd, EV_READ); ^~~~~ In file included from ../libev/ev.c:220, from nio4r_ext.c:6: ../libev/ev_iouring.c: In function 'iouring_tfd_update': ../libev/ev_iouring.c:489:58: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: iouring timerfd_settime failed", 0)); ^ ../libev/ev_iouring.c:489:58: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: iouring timerfd_settime failed", 0)); ^ ../libev/ev_iouring.c: In function 'iouring_process_cqe': ../libev/ev_iouring.c:505:50: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: io_uring fd must be in-bounds", fd >= 0 && fd < anfdmax)); ^ ../libev/ev_iouring.c:505:50: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: io_uring fd must be in-bounds", fd >= 0 && fd < anfdmax)); ^ ../libev/ev_iouring.c:525:55: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: event loop rejected bad fd", res != -EBADF)); ^ ../libev/ev_iouring.c:525:55: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: event loop rejected bad fd", res != -EBADF)); ^ In file included from ../libev/ev.c:231, from nio4r_ext.c:6: ../libev/ev_iouring.c: In function 'iouring_init': ../libev/ev.h:691:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ((ev_watcher *)(void *)(ev))->active = \ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:712:51: note: in expansion of macro 'ev_init' #define ev_io_init(ev,cb,fd,events) do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0) ^~~~~~~ ../libev/ev_iouring.c:677:3: note: in expansion of macro 'ev_io_init' ev_io_init (&iouring_tfd_w, iouring_tfd_cb, iouring_tfd, EV_READ); ^~~~~~~~~~ ../libev/ev.h:692:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ((ev_watcher *)(void *)(ev))->pending = 0; \ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:712:51: note: in expansion of macro 'ev_init' #define ev_io_init(ev,cb,fd,events) do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0) ^~~~~~~ ../libev/ev_iouring.c:677:3: note: in expansion of macro 'ev_io_init' ev_io_init (&iouring_tfd_w, iouring_tfd_cb, iouring_tfd, EV_READ); ^~~~~~~~~~ ../libev/ev.h:737:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # define ev_set_priority(ev,pri) ( (ev_watcher *)(void *)(ev))->priority = (pri) ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:693:3: note: in expansion of macro 'ev_set_priority' ev_set_priority ((ev), 0); \ ^~~~~~~~~~~~~~~ ../libev/ev.h:712:51: note: in expansion of macro 'ev_init' #define ev_io_init(ev,cb,fd,events) do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0) ^~~~~~~ ../libev/ev_iouring.c:677:3: note: in expansion of macro 'ev_io_init' ev_io_init (&iouring_tfd_w, iouring_tfd_cb, iouring_tfd, EV_READ); ^~~~~~~~~~ ../libev/ev.h:744:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # 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:694:3: note: in expansion of macro 'ev_set_cb' ev_set_cb ((ev), cb_); \ ^~~~~~~~~ ../libev/ev.h:712:51: note: in expansion of macro 'ev_init' #define ev_io_init(ev,cb,fd,events) do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0) ^~~~~~~ ../libev/ev_iouring.c:677:3: note: in expansion of macro 'ev_io_init' ev_io_init (&iouring_tfd_w, iouring_tfd_cb, iouring_tfd, EV_READ); ^~~~~~~~~~ ../libev/ev.h:737:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # define ev_set_priority(ev,pri) ( (ev_watcher *)(void *)(ev))->priority = (pri) ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev_iouring.c:678:3: note: in expansion of macro 'ev_set_priority' ev_set_priority (&iouring_tfd_w, EV_MINPRI); ^~~~~~~~~~~~~~~ In file included from ../libev/ev.c:220, from nio4r_ext.c:6: ../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] 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] 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] 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] assert (("libev: poll found invalid fd in poll set", 0)); ^ In file included from ../libev/ev.c:231, from nio4r_ext.c:6: ../libev/ev.c: In function 'loop_init': ../libev/ev.h:691:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ((ev_watcher *)(void *)(ev))->active = \ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:719:51: note: in expansion of macro 'ev_init' #define ev_prepare_init(ev,cb) do { ev_init ((ev), (cb)); ev_prepare_set ((ev)); } while (0) ^~~~~~~ ../libev/ev.c:3343:7: note: in expansion of macro 'ev_prepare_init' ev_prepare_init (&pending_w, pendingcb); ^~~~~~~~~~~~~~~ ../libev/ev.h:692:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ((ev_watcher *)(void *)(ev))->pending = 0; \ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:719:51: note: in expansion of macro 'ev_init' #define ev_prepare_init(ev,cb) do { ev_init ((ev), (cb)); ev_prepare_set ((ev)); } while (0) ^~~~~~~ ../libev/ev.c:3343:7: note: in expansion of macro 'ev_prepare_init' ev_prepare_init (&pending_w, pendingcb); ^~~~~~~~~~~~~~~ ../libev/ev.h:737:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # define ev_set_priority(ev,pri) ( (ev_watcher *)(void *)(ev))->priority = (pri) ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:693:3: note: in expansion of macro 'ev_set_priority' ev_set_priority ((ev), 0); \ ^~~~~~~~~~~~~~~ ../libev/ev.h:719:51: note: in expansion of macro 'ev_init' #define ev_prepare_init(ev,cb) do { ev_init ((ev), (cb)); ev_prepare_set ((ev)); } while (0) ^~~~~~~ ../libev/ev.c:3343:7: note: in expansion of macro 'ev_prepare_init' ev_prepare_init (&pending_w, pendingcb); ^~~~~~~~~~~~~~~ ../libev/ev.h:744:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # 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:694:3: note: in expansion of macro 'ev_set_cb' ev_set_cb ((ev), cb_); \ ^~~~~~~~~ ../libev/ev.h:719:51: note: in expansion of macro 'ev_init' #define ev_prepare_init(ev,cb) do { ev_init ((ev), (cb)); ev_prepare_set ((ev)); } while (0) ^~~~~~~ ../libev/ev.c:3343:7: note: in expansion of macro 'ev_prepare_init' ev_prepare_init (&pending_w, pendingcb); ^~~~~~~~~~~~~~~ ../libev/ev.h:691:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ((ev_watcher *)(void *)(ev))->active = \ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.c:3346:7: note: in expansion of macro 'ev_init' ev_init (&pipe_w, pipecb); ^~~~~~~ ../libev/ev.h:692:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ((ev_watcher *)(void *)(ev))->pending = 0; \ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.c:3346:7: note: in expansion of macro 'ev_init' ev_init (&pipe_w, pipecb); ^~~~~~~ ../libev/ev.h:737:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # define ev_set_priority(ev,pri) ( (ev_watcher *)(void *)(ev))->priority = (pri) ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:693:3: note: in expansion of macro 'ev_set_priority' ev_set_priority ((ev), 0); \ ^~~~~~~~~~~~~~~ ../libev/ev.c:3346:7: note: in expansion of macro 'ev_init' ev_init (&pipe_w, pipecb); ^~~~~~~ ../libev/ev.h:744:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # 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:694:3: note: in expansion of macro 'ev_set_cb' ev_set_cb ((ev), cb_); \ ^~~~~~~~~ ../libev/ev.c:3346:7: note: in expansion of macro 'ev_init' ev_init (&pipe_w, pipecb); ^~~~~~~ ../libev/ev.h:737:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # define ev_set_priority(ev,pri) ( (ev_watcher *)(void *)(ev))->priority = (pri) ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.c:3347:7: note: in expansion of macro 'ev_set_priority' ev_set_priority (&pipe_w, EV_MAXPRI); ^~~~~~~~~~~~~~~ ../libev/ev.c: In function 'ev_loop_destroy': ../libev/ev.h:727:52: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] #define ev_is_active(ev) (0 + ((ev_watcher *)(void *)(ev))->active) /* ro, true when the watcher has been started */ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.c:3375:36: note: in expansion of macro 'ev_is_active' if (ev_is_default_loop (EV_A) && ev_is_active (&childev)) ^~~~~~~~~~~~ ../libev/ev.h:727:52: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] #define ev_is_active(ev) (0 + ((ev_watcher *)(void *)(ev))->active) /* ro, true when the watcher has been started */ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.c:3382:7: note: in expansion of macro 'ev_is_active' if (ev_is_active (&pipe_w)) ^~~~~~~~~~~~ ../libev/ev.h:727:52: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] #define ev_is_active(ev) (0 + ((ev_watcher *)(void *)(ev))->active) /* ro, true when the watcher has been started */ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.c:3392:7: note: in expansion of macro 'ev_is_active' if (ev_is_active (&sigfd_w)) ^~~~~~~~~~~~ ../libev/ev.h:727:52: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] #define ev_is_active(ev) (0 + ((ev_watcher *)(void *)(ev))->active) /* ro, true when the watcher has been started */ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.c:3397:7: note: in expansion of macro 'ev_is_active' if (ev_is_active (&timerfd_w)) ^~~~~~~~~~~~ ../libev/ev.c: In function 'loop_fork': ../libev/ev.h:727:52: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] #define ev_is_active(ev) (0 + ((ev_watcher *)(void *)(ev))->active) /* ro, true when the watcher has been started */ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.c:3508:13: note: in expansion of macro 'ev_is_active' if (ev_is_active (&timerfd_w)) ^~~~~~~~~~~~ ../libev/ev.h:727:52: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] #define ev_is_active(ev) (0 + ((ev_watcher *)(void *)(ev))->active) /* ro, true when the watcher has been started */ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.c:3523:13: note: in expansion of macro 'ev_is_active' if (ev_is_active (&pipe_w)) ^~~~~~~~~~~~ In file included from ../libev/ev.c:220, from nio4r_ext.c:6: ../libev/ev.c: In function 'verify_watcher': ../libev/ev.c:3568:49: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: watcher has invalid priority", ABSPRI (w) >= 0 && ABSPRI (w) < NUMPRI)); ^ ../libev/ev.c:3568:49: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: watcher has invalid priority", ABSPRI (w) >= 0 && ABSPRI (w) < NUMPRI)); ^ ../libev/ev.c:3571:59: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: pending watcher not on pending queue", pendings [ABSPRI (w)][w->pending - 1].w == w)); ^ ../libev/ev.c:3571:59: warning: left-hand operand of comma expression has no effect [-Wunused-value] 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:3582:54: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: active index mismatch in heap", ev_active (ANHE_w (heap [i])) == i)); ^ ../libev/ev.c:3582:54: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: active index mismatch in heap", ev_active (ANHE_w (heap [i])) == i)); ^ ../libev/ev.c:3583:48: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: heap condition violated", i == HEAP0 || ANHE_at (heap [HPARENT (i)]) <= ANHE_at (heap [i]))); ^ ../libev/ev.c:3583:48: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: heap condition violated", i == HEAP0 || ANHE_at (heap [HPARENT (i)]) <= ANHE_at (heap [i]))); ^ ../libev/ev.c:3584:47: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: heap at cache mismatch", ANHE_at (heap [i]) == ev_at (ANHE_w (heap [i])))); ^ ../libev/ev.c:3584:47: warning: left-hand operand of comma expression has no effect [-Wunused-value] 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:3596:46: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: active index mismatch", ev_active (ws [cnt]) == cnt + 1)); ^ ../libev/ev.c:3596:46: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: active index mismatch", ev_active (ws [cnt]) == cnt + 1)); ^ ../libev/ev.c: In function 'ev_verify': ../libev/ev.c:3614:47: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: negative fd in fdchanges", fdchanges [i] >= 0)); ^ ../libev/ev.c:3614:47: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: negative fd in fdchanges", fdchanges [i] >= 0)); ^ ../libev/ev.c:3627:64: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: io watcher list contains a loop", w != w2)); ^ ../libev/ev.c:3627:64: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: io watcher list contains a loop", w != w2)); ^ ../libev/ev.c:3631:61: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: inactive fd watcher on anfd list", ev_active (w) == 1)); ^ ../libev/ev.c:3631:61: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: inactive fd watcher on anfd list", ev_active (w) == 1)); ^ ../libev/ev.c:3632:65: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: fd mismatch between watcher and anfd", ((ev_io *)w)->fd == i)); ^ ../libev/ev.c:3632:65: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: fd mismatch between watcher and anfd", ((ev_io *)w)->fd == i)); ^ In file included from ../libev/ev.c:231, from nio4r_ext.c:6: ../libev/ev.c: In function 'ev_default_loop': ../libev/ev.h:691:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ((ev_watcher *)(void *)(ev))->active = \ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:715:51: note: in expansion of macro 'ev_init' #define ev_signal_init(ev,cb,signum) do { ev_init ((ev), (cb)); ev_signal_set ((ev), (signum)); } while (0) ^~~~~~~ ../libev/ev.c:3710:11: note: in expansion of macro 'ev_signal_init' ev_signal_init (&childev, childcb, SIGCHLD); ^~~~~~~~~~~~~~ ../libev/ev.h:692:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ((ev_watcher *)(void *)(ev))->pending = 0; \ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:715:51: note: in expansion of macro 'ev_init' #define ev_signal_init(ev,cb,signum) do { ev_init ((ev), (cb)); ev_signal_set ((ev), (signum)); } while (0) ^~~~~~~ ../libev/ev.c:3710:11: note: in expansion of macro 'ev_signal_init' ev_signal_init (&childev, childcb, SIGCHLD); ^~~~~~~~~~~~~~ ../libev/ev.h:737:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # define ev_set_priority(ev,pri) ( (ev_watcher *)(void *)(ev))->priority = (pri) ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:693:3: note: in expansion of macro 'ev_set_priority' ev_set_priority ((ev), 0); \ ^~~~~~~~~~~~~~~ ../libev/ev.h:715:51: note: in expansion of macro 'ev_init' #define ev_signal_init(ev,cb,signum) do { ev_init ((ev), (cb)); ev_signal_set ((ev), (signum)); } while (0) ^~~~~~~ ../libev/ev.c:3710:11: note: in expansion of macro 'ev_signal_init' ev_signal_init (&childev, childcb, SIGCHLD); ^~~~~~~~~~~~~~ ../libev/ev.h:744:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # 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:694:3: note: in expansion of macro 'ev_set_cb' ev_set_cb ((ev), cb_); \ ^~~~~~~~~ ../libev/ev.h:715:51: note: in expansion of macro 'ev_init' #define ev_signal_init(ev,cb,signum) do { ev_init ((ev), (cb)); ev_signal_set ((ev), (signum)); } while (0) ^~~~~~~ ../libev/ev.c:3710:11: note: in expansion of macro 'ev_signal_init' ev_signal_init (&childev, childcb, SIGCHLD); ^~~~~~~~~~~~~~ ../libev/ev.h:737:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # define ev_set_priority(ev,pri) ( (ev_watcher *)(void *)(ev))->priority = (pri) ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.c:3711:11: note: in expansion of macro 'ev_set_priority' ev_set_priority (&childev, EV_MAXPRI); ^~~~~~~~~~~~~~~ In file included from ../libev/ev.c:220, from nio4r_ext.c:6: ../libev/ev.c: In function 'timers_reify': ../libev/ev.c:3818:93: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: negative ev_timer repeat value found while processing timers", w->repeat > EV_TS_CONST (0.))); ^ ../libev/ev.c:3818:93: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: negative ev_timer repeat value found while processing timers", w->repeat > EV_TS_CONST (0.))); ^ ../libev/ev.c: In function 'periodics_reify': ../libev/ev.c:3881:90: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: ev_periodic reschedule callback returned time in the past", ev_at (w) >= ev_rt_now)); ^ ../libev/ev.c:3881:90: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: ev_periodic reschedule callback returned time in the past", ev_at (w) >= ev_rt_now)); ^ ../libev/ev.c: In function 'ev_run': ../libev/ev.c:4043:62: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: ev_loop recursion during release detected", loop_done != EVBREAK_RECURSE)); ^ ../libev/ev.c:4043:62: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: ev_loop recursion during release detected", loop_done != EVBREAK_RECURSE)); ^ ../libev/ev.h:727:52: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] #define ev_is_active(ev) (0 + ((ev_watcher *)(void *)(ev))->active) /* ro, true when the watcher has been started */ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.c:4228:72: note: in expansion of macro 'ev_is_active' assert (("libev: pipe_w not active, but pipe not written", ev_is_active (&pipe_w))); ^~~~~~~~~~~~ ../libev/ev.c:4228:70: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: pipe_w not active, but pipe not written", ev_is_active (&pipe_w))); ^ ../libev/ev.h:727:52: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] #define ev_is_active(ev) (0 + ((ev_watcher *)(void *)(ev))->active) /* ro, true when the watcher has been started */ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.c:4228:72: note: in expansion of macro 'ev_is_active' assert (("libev: pipe_w not active, but pipe not written", ev_is_active (&pipe_w))); ^~~~~~~~~~~~ ../libev/ev.c:4228:70: warning: left-hand operand of comma expression has no effect [-Wunused-value] 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:4402:56: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: ev_io_start called with negative fd", fd >= 0)); ^ ../libev/ev.c:4402:56: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: ev_io_start called with negative fd", fd >= 0)); ^ ../libev/ev.c:4403:63: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: ev_io_start called with illegal event mask", !(w->events & ~(EV__IOFDSET | EV_READ | EV_WRITE)))); ^ ../libev/ev.c:4403:63: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: ev_io_start called with illegal event mask", !(w->events & ~(EV__IOFDSET | EV_READ | EV_WRITE)))); ^ ../libev/ev.c:4415:62: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: ev_io_start called with corrupted watcher", ((WL)w)->next != (WL)w)); ^ ../libev/ev.c:4415:62: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: ev_io_start called with corrupted watcher", ((WL)w)->next != (WL)w)); ^ In file included from nio4r_ext.c:6: ../libev/ev.c:4417:34: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] fd_change (EV_A_ fd, w->events & EV__IOFDSET | EV_ANFD_REIFY); ~~~~~~~~~~^~~~~~~~~~~~~ In file included from ../libev/ev.c:220, from nio4r_ext.c:6: ../libev/ev.c: In function 'ev_io_stop': ../libev/ev.c:4431:88: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: ev_io_stop called with illegal fd (must stay constant after start!)", w->fd >= 0 && w->fd < anfdmax)); ^ ../libev/ev.c:4431:88: warning: left-hand operand of comma expression has no effect [-Wunused-value] 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:4455:75: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: ev_timer_start called with negative timer repeat value", w->repeat >= 0.)); ^ ../libev/ev.c:4455:75: warning: left-hand operand of comma expression has no effect [-Wunused-value] 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:4484:53: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: internal timer heap corruption", ANHE_w (timers [active]) == (WT)w)); ^ ../libev/ev.c:4484:53: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: internal timer heap corruption", ANHE_w (timers [active]) == (WT)w)); ^ ../libev/ev.c: In function 'ev_periodic_start': ../libev/ev.c:4553:78: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: ev_periodic_start called with negative interval value", w->interval >= 0.)); ^ ../libev/ev.c:4553:78: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: ev_periodic_start called with negative interval value", w->interval >= 0.)); ^ ../libev/ev.c: In function 'ev_periodic_stop': ../libev/ev.c:4586:56: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: internal periodic heap corruption", ANHE_w (periodics [active]) == (WT)w)); ^ ../libev/ev.c:4586:56: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: internal periodic heap corruption", ANHE_w (periodics [active]) == (WT)w)); ^ ../libev/ev.c: In function 'ev_signal_start': ../libev/ev.c:4625:70: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: ev_signal_start called with illegal signal number", w->signum > 0 && w->signum < EV_NSIG)); ^ ../libev/ev.c:4625:70: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: ev_signal_start called with illegal signal number", w->signum > 0 && w->signum < EV_NSIG)); ^ ../libev/ev.c:4628:73: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: a signal must not be attached to two different loops", ^ ../libev/ev.c:4628:73: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: a signal must not be attached to two different loops", ^ In file included from ../libev/ev.c:231, from nio4r_ext.c:6: ../libev/ev.h:691:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ((ev_watcher *)(void *)(ev))->active = \ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:712:51: note: in expansion of macro 'ev_init' #define ev_io_init(ev,cb,fd,events) do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0) ^~~~~~~ ../libev/ev.c:4650:11: note: in expansion of macro 'ev_io_init' ev_io_init (&sigfd_w, sigfdcb, sigfd, EV_READ); ^~~~~~~~~~ ../libev/ev.h:692:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ((ev_watcher *)(void *)(ev))->pending = 0; \ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:712:51: note: in expansion of macro 'ev_init' #define ev_io_init(ev,cb,fd,events) do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0) ^~~~~~~ ../libev/ev.c:4650:11: note: in expansion of macro 'ev_io_init' ev_io_init (&sigfd_w, sigfdcb, sigfd, EV_READ); ^~~~~~~~~~ ../libev/ev.h:737:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # define ev_set_priority(ev,pri) ( (ev_watcher *)(void *)(ev))->priority = (pri) ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:693:3: note: in expansion of macro 'ev_set_priority' ev_set_priority ((ev), 0); \ ^~~~~~~~~~~~~~~ ../libev/ev.h:712:51: note: in expansion of macro 'ev_init' #define ev_io_init(ev,cb,fd,events) do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0) ^~~~~~~ ../libev/ev.c:4650:11: note: in expansion of macro 'ev_io_init' ev_io_init (&sigfd_w, sigfdcb, sigfd, EV_READ); ^~~~~~~~~~ ../libev/ev.h:744:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # 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:694:3: note: in expansion of macro 'ev_set_cb' ev_set_cb ((ev), cb_); \ ^~~~~~~~~ ../libev/ev.h:712:51: note: in expansion of macro 'ev_init' #define ev_io_init(ev,cb,fd,events) do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0) ^~~~~~~ ../libev/ev.c:4650:11: note: in expansion of macro 'ev_io_init' ev_io_init (&sigfd_w, sigfdcb, sigfd, EV_READ); ^~~~~~~~~~ ../libev/ev.h:737:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # define ev_set_priority(ev,pri) ( (ev_watcher *)(void *)(ev))->priority = (pri) ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.c:4651:11: note: in expansion of macro 'ev_set_priority' ev_set_priority (&sigfd_w, EV_MAXPRI); ^~~~~~~~~~~~~~~ In file included from ../libev/ev.c:220, from nio4r_ext.c:6: ../libev/ev.c: In function 'ev_child_start': ../libev/ev.c:4747:74: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: child watchers are only supported in the default loop", loop == ev_default_loop_ptr)); ^ ../libev/ev.c:4747:74: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: child watchers are only supported in the default loop", loop == ev_default_loop_ptr)); ^ In file included from ../libev/ev.c:231, from nio4r_ext.c:6: ../libev/ev.c: In function 'infy_add': ../libev/ev.h:727:52: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] #define ev_is_active(ev) (0 + ((ev_watcher *)(void *)(ev))->active) /* ro, true when the watcher has been started */ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.c:4865:7: note: in expansion of macro 'ev_is_active' if (ev_is_active (&w->timer)) ev_ref (EV_A); ^~~~~~~~~~~~ ../libev/ev.h:727:52: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] #define ev_is_active(ev) (0 + ((ev_watcher *)(void *)(ev))->active) /* ro, true when the watcher has been started */ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.c:4867:7: note: in expansion of macro 'ev_is_active' if (ev_is_active (&w->timer)) ev_unref (EV_A); ^~~~~~~~~~~~ ../libev/ev.c: In function 'infy_init': ../libev/ev.h:691:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ((ev_watcher *)(void *)(ev))->active = \ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:712:51: note: in expansion of macro 'ev_init' #define ev_io_init(ev,cb,fd,events) do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0) ^~~~~~~ ../libev/ev.c:4974:7: note: in expansion of macro 'ev_io_init' ev_io_init (&fs_w, infy_cb, fs_fd, EV_READ); ^~~~~~~~~~ ../libev/ev.h:692:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ((ev_watcher *)(void *)(ev))->pending = 0; \ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:712:51: note: in expansion of macro 'ev_init' #define ev_io_init(ev,cb,fd,events) do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0) ^~~~~~~ ../libev/ev.c:4974:7: note: in expansion of macro 'ev_io_init' ev_io_init (&fs_w, infy_cb, fs_fd, EV_READ); ^~~~~~~~~~ ../libev/ev.h:737:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # define ev_set_priority(ev,pri) ( (ev_watcher *)(void *)(ev))->priority = (pri) ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:693:3: note: in expansion of macro 'ev_set_priority' ev_set_priority ((ev), 0); \ ^~~~~~~~~~~~~~~ ../libev/ev.h:712:51: note: in expansion of macro 'ev_init' #define ev_io_init(ev,cb,fd,events) do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0) ^~~~~~~ ../libev/ev.c:4974:7: note: in expansion of macro 'ev_io_init' ev_io_init (&fs_w, infy_cb, fs_fd, EV_READ); ^~~~~~~~~~ ../libev/ev.h:744:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # 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:694:3: note: in expansion of macro 'ev_set_cb' ev_set_cb ((ev), cb_); \ ^~~~~~~~~ ../libev/ev.h:712:51: note: in expansion of macro 'ev_init' #define ev_io_init(ev,cb,fd,events) do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0) ^~~~~~~ ../libev/ev.c:4974:7: note: in expansion of macro 'ev_io_init' ev_io_init (&fs_w, infy_cb, fs_fd, EV_READ); ^~~~~~~~~~ ../libev/ev.h:737:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # define ev_set_priority(ev,pri) ( (ev_watcher *)(void *)(ev))->priority = (pri) ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.c:4975:7: note: in expansion of macro 'ev_set_priority' ev_set_priority (&fs_w, EV_MAXPRI); ^~~~~~~~~~~~~~~ ../libev/ev.c: In function 'infy_fork': ../libev/ev.h:727:52: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] #define ev_is_active(ev) (0 + ((ev_watcher *)(void *)(ev))->active) /* ro, true when the watcher has been started */ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.c:5019:19: note: in expansion of macro 'ev_is_active' if (ev_is_active (&w->timer)) ev_ref (EV_A); ^~~~~~~~~~~~ ../libev/ev.h:727:52: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] #define ev_is_active(ev) (0 + ((ev_watcher *)(void *)(ev))->active) /* ro, true when the watcher has been started */ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.c:5021:19: note: in expansion of macro 'ev_is_active' if (ev_is_active (&w->timer)) ev_unref (EV_A); ^~~~~~~~~~~~ ../libev/ev.c: In function 'ev_stat_start': ../libev/ev.h:691:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ((ev_watcher *)(void *)(ev))->active = \ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:713:51: note: in expansion of macro 'ev_init' #define ev_timer_init(ev,cb,after,repeat) do { ev_init ((ev), (cb)); ev_timer_set ((ev),(after),(repeat)); } while (0) ^~~~~~~ ../libev/ev.c:5096:3: note: in expansion of macro 'ev_timer_init' ev_timer_init (&w->timer, stat_timer_cb, 0., w->interval ? w->interval : DEF_STAT_INTERVAL); ^~~~~~~~~~~~~ ../libev/ev.h:692:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ((ev_watcher *)(void *)(ev))->pending = 0; \ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:713:51: note: in expansion of macro 'ev_init' #define ev_timer_init(ev,cb,after,repeat) do { ev_init ((ev), (cb)); ev_timer_set ((ev),(after),(repeat)); } while (0) ^~~~~~~ ../libev/ev.c:5096:3: note: in expansion of macro 'ev_timer_init' ev_timer_init (&w->timer, stat_timer_cb, 0., w->interval ? w->interval : DEF_STAT_INTERVAL); ^~~~~~~~~~~~~ ../libev/ev.h:737:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # define ev_set_priority(ev,pri) ( (ev_watcher *)(void *)(ev))->priority = (pri) ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:693:3: note: in expansion of macro 'ev_set_priority' ev_set_priority ((ev), 0); \ ^~~~~~~~~~~~~~~ ../libev/ev.h:713:51: note: in expansion of macro 'ev_init' #define ev_timer_init(ev,cb,after,repeat) do { ev_init ((ev), (cb)); ev_timer_set ((ev),(after),(repeat)); } while (0) ^~~~~~~ ../libev/ev.c:5096:3: note: in expansion of macro 'ev_timer_init' ev_timer_init (&w->timer, stat_timer_cb, 0., w->interval ? w->interval : DEF_STAT_INTERVAL); ^~~~~~~~~~~~~ ../libev/ev.h:744:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # 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:694:3: note: in expansion of macro 'ev_set_cb' ev_set_cb ((ev), cb_); \ ^~~~~~~~~ ../libev/ev.h:713:51: note: in expansion of macro 'ev_init' #define ev_timer_init(ev,cb,after,repeat) do { ev_init ((ev), (cb)); ev_timer_set ((ev),(after),(repeat)); } while (0) ^~~~~~~ ../libev/ev.c:5096:3: note: in expansion of macro 'ev_timer_init' ev_timer_init (&w->timer, stat_timer_cb, 0., w->interval ? w->interval : DEF_STAT_INTERVAL); ^~~~~~~~~~~~~ ../libev/ev.h:699:52: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] #define ev_timer_set(ev,after_,repeat_) do { ((ev_watcher_time *)(ev))->at = (after_); (ev)->repeat = (repeat_); } while (0) ~^~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:713:73: note: in expansion of macro 'ev_timer_set' #define ev_timer_init(ev,cb,after,repeat) do { ev_init ((ev), (cb)); ev_timer_set ((ev),(after),(repeat)); } while (0) ^~~~~~~~~~~~ ../libev/ev.c:5096:3: note: in expansion of macro 'ev_timer_init' ev_timer_init (&w->timer, stat_timer_cb, 0., w->interval ? w->interval : DEF_STAT_INTERVAL); ^~~~~~~~~~~~~ ../libev/ev.h:737:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # define ev_set_priority(ev,pri) ( (ev_watcher *)(void *)(ev))->priority = (pri) ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.c:5097:3: note: in expansion of macro 'ev_set_priority' ev_set_priority (&w->timer, ev_priority (w)); ^~~~~~~~~~~~~~~ ../libev/ev.c: In function 'ev_stat_stop': ../libev/ev.h:727:52: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] #define ev_is_active(ev) (0 + ((ev_watcher *)(void *)(ev))->active) /* ro, true when the watcher has been started */ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.c:5129:7: note: in expansion of macro 'ev_is_active' if (ev_is_active (&w->timer)) ^~~~~~~~~~~~ In file included from ../libev/ev.c:220, from nio4r_ext.c:6: ../libev/ev.c: In function 'ev_embed_start': ../libev/ev.c:5334:60: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: loop to be embedded is not embeddable", backend & ev_embeddable_backends ())); ^ ../libev/ev.c:5334:60: warning: left-hand operand of comma expression has no effect [-Wunused-value] assert (("libev: loop to be embedded is not embeddable", backend & ev_embeddable_backends ())); ^ In file included from ../libev/ev.c:231, from nio4r_ext.c:6: ../libev/ev.h:691:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ((ev_watcher *)(void *)(ev))->active = \ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:712:51: note: in expansion of macro 'ev_init' #define ev_io_init(ev,cb,fd,events) do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0) ^~~~~~~ ../libev/ev.c:5335:5: note: in expansion of macro 'ev_io_init' ev_io_init (&w->io, embed_io_cb, backend_fd, EV_READ); ^~~~~~~~~~ ../libev/ev.h:692:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ((ev_watcher *)(void *)(ev))->pending = 0; \ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:712:51: note: in expansion of macro 'ev_init' #define ev_io_init(ev,cb,fd,events) do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0) ^~~~~~~ ../libev/ev.c:5335:5: note: in expansion of macro 'ev_io_init' ev_io_init (&w->io, embed_io_cb, backend_fd, EV_READ); ^~~~~~~~~~ ../libev/ev.h:737:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # define ev_set_priority(ev,pri) ( (ev_watcher *)(void *)(ev))->priority = (pri) ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:693:3: note: in expansion of macro 'ev_set_priority' ev_set_priority ((ev), 0); \ ^~~~~~~~~~~~~~~ ../libev/ev.h:712:51: note: in expansion of macro 'ev_init' #define ev_io_init(ev,cb,fd,events) do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0) ^~~~~~~ ../libev/ev.c:5335:5: note: in expansion of macro 'ev_io_init' ev_io_init (&w->io, embed_io_cb, backend_fd, EV_READ); ^~~~~~~~~~ ../libev/ev.h:744:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # 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:694:3: note: in expansion of macro 'ev_set_cb' ev_set_cb ((ev), cb_); \ ^~~~~~~~~ ../libev/ev.h:712:51: note: in expansion of macro 'ev_init' #define ev_io_init(ev,cb,fd,events) do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0) ^~~~~~~ ../libev/ev.c:5335:5: note: in expansion of macro 'ev_io_init' ev_io_init (&w->io, embed_io_cb, backend_fd, EV_READ); ^~~~~~~~~~ ../libev/ev.h:737:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # define ev_set_priority(ev,pri) ( (ev_watcher *)(void *)(ev))->priority = (pri) ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.c:5340:3: note: in expansion of macro 'ev_set_priority' ev_set_priority (&w->io, ev_priority (w)); ^~~~~~~~~~~~~~~ ../libev/ev.h:691:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ((ev_watcher *)(void *)(ev))->active = \ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:719:51: note: in expansion of macro 'ev_init' #define ev_prepare_init(ev,cb) do { ev_init ((ev), (cb)); ev_prepare_set ((ev)); } while (0) ^~~~~~~ ../libev/ev.c:5343:3: note: in expansion of macro 'ev_prepare_init' ev_prepare_init (&w->prepare, embed_prepare_cb); ^~~~~~~~~~~~~~~ ../libev/ev.h:692:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ((ev_watcher *)(void *)(ev))->pending = 0; \ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:719:51: note: in expansion of macro 'ev_init' #define ev_prepare_init(ev,cb) do { ev_init ((ev), (cb)); ev_prepare_set ((ev)); } while (0) ^~~~~~~ ../libev/ev.c:5343:3: note: in expansion of macro 'ev_prepare_init' ev_prepare_init (&w->prepare, embed_prepare_cb); ^~~~~~~~~~~~~~~ ../libev/ev.h:737:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # define ev_set_priority(ev,pri) ( (ev_watcher *)(void *)(ev))->priority = (pri) ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:693:3: note: in expansion of macro 'ev_set_priority' ev_set_priority ((ev), 0); \ ^~~~~~~~~~~~~~~ ../libev/ev.h:719:51: note: in expansion of macro 'ev_init' #define ev_prepare_init(ev,cb) do { ev_init ((ev), (cb)); ev_prepare_set ((ev)); } while (0) ^~~~~~~ ../libev/ev.c:5343:3: note: in expansion of macro 'ev_prepare_init' ev_prepare_init (&w->prepare, embed_prepare_cb); ^~~~~~~~~~~~~~~ ../libev/ev.h:744:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # 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:694:3: note: in expansion of macro 'ev_set_cb' ev_set_cb ((ev), cb_); \ ^~~~~~~~~ ../libev/ev.h:719:51: note: in expansion of macro 'ev_init' #define ev_prepare_init(ev,cb) do { ev_init ((ev), (cb)); ev_prepare_set ((ev)); } while (0) ^~~~~~~ ../libev/ev.c:5343:3: note: in expansion of macro 'ev_prepare_init' ev_prepare_init (&w->prepare, embed_prepare_cb); ^~~~~~~~~~~~~~~ ../libev/ev.h:737:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # define ev_set_priority(ev,pri) ( (ev_watcher *)(void *)(ev))->priority = (pri) ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.c:5344:3: note: in expansion of macro 'ev_set_priority' ev_set_priority (&w->prepare, EV_MINPRI); ^~~~~~~~~~~~~~~ ../libev/ev.h:691:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ((ev_watcher *)(void *)(ev))->active = \ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:722:51: note: in expansion of macro 'ev_init' #define ev_fork_init(ev,cb) do { ev_init ((ev), (cb)); ev_fork_set ((ev)); } while (0) ^~~~~~~ ../libev/ev.c:5348:3: note: in expansion of macro 'ev_fork_init' ev_fork_init (&w->fork, embed_fork_cb); ^~~~~~~~~~~~ ../libev/ev.h:692:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ((ev_watcher *)(void *)(ev))->pending = 0; \ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:722:51: note: in expansion of macro 'ev_init' #define ev_fork_init(ev,cb) do { ev_init ((ev), (cb)); ev_fork_set ((ev)); } while (0) ^~~~~~~ ../libev/ev.c:5348:3: note: in expansion of macro 'ev_fork_init' ev_fork_init (&w->fork, embed_fork_cb); ^~~~~~~~~~~~ ../libev/ev.h:737:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # define ev_set_priority(ev,pri) ( (ev_watcher *)(void *)(ev))->priority = (pri) ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:693:3: note: in expansion of macro 'ev_set_priority' ev_set_priority ((ev), 0); \ ^~~~~~~~~~~~~~~ ../libev/ev.h:722:51: note: in expansion of macro 'ev_init' #define ev_fork_init(ev,cb) do { ev_init ((ev), (cb)); ev_fork_set ((ev)); } while (0) ^~~~~~~ ../libev/ev.c:5348:3: note: in expansion of macro 'ev_fork_init' ev_fork_init (&w->fork, embed_fork_cb); ^~~~~~~~~~~~ ../libev/ev.h:744:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # 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:694:3: note: in expansion of macro 'ev_set_cb' ev_set_cb ((ev), cb_); \ ^~~~~~~~~ ../libev/ev.h:722:51: note: in expansion of macro 'ev_init' #define ev_fork_init(ev,cb) do { ev_init ((ev), (cb)); ev_fork_set ((ev)); } while (0) ^~~~~~~ ../libev/ev.c:5348:3: note: in expansion of macro 'ev_fork_init' ev_fork_init (&w->fork, embed_fork_cb); ^~~~~~~~~~~~ ../libev/ev.c: In function 'ev_once': ../libev/ev.h:691:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ((ev_watcher *)(void *)(ev))->active = \ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.c:5555:3: note: in expansion of macro 'ev_init' ev_init (&once->io, once_cb_io); ^~~~~~~ ../libev/ev.h:692:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ((ev_watcher *)(void *)(ev))->pending = 0; \ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.c:5555:3: note: in expansion of macro 'ev_init' ev_init (&once->io, once_cb_io); ^~~~~~~ ../libev/ev.h:737:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # define ev_set_priority(ev,pri) ( (ev_watcher *)(void *)(ev))->priority = (pri) ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:693:3: note: in expansion of macro 'ev_set_priority' ev_set_priority ((ev), 0); \ ^~~~~~~~~~~~~~~ ../libev/ev.c:5555:3: note: in expansion of macro 'ev_init' ev_init (&once->io, once_cb_io); ^~~~~~~ ../libev/ev.h:744:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # 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:694:3: note: in expansion of macro 'ev_set_cb' ev_set_cb ((ev), cb_); \ ^~~~~~~~~ ../libev/ev.c:5555:3: note: in expansion of macro 'ev_init' ev_init (&once->io, once_cb_io); ^~~~~~~ ../libev/ev.h:691:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ((ev_watcher *)(void *)(ev))->active = \ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.c:5562:3: note: in expansion of macro 'ev_init' ev_init (&once->to, once_cb_to); ^~~~~~~ ../libev/ev.h:692:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ((ev_watcher *)(void *)(ev))->pending = 0; \ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.c:5562:3: note: in expansion of macro 'ev_init' ev_init (&once->to, once_cb_to); ^~~~~~~ ../libev/ev.h:737:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # define ev_set_priority(ev,pri) ( (ev_watcher *)(void *)(ev))->priority = (pri) ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:693:3: note: in expansion of macro 'ev_set_priority' ev_set_priority ((ev), 0); \ ^~~~~~~~~~~~~~~ ../libev/ev.c:5562:3: note: in expansion of macro 'ev_init' ev_init (&once->to, once_cb_to); ^~~~~~~ ../libev/ev.h:744:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # 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:694:3: note: in expansion of macro 'ev_set_cb' ev_set_cb ((ev), cb_); \ ^~~~~~~~~ ../libev/ev.c:5562:3: note: in expansion of macro 'ev_init' ev_init (&once->to, once_cb_to); ^~~~~~~ ../libev/ev.h:699:52: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] #define ev_timer_set(ev,after_,repeat_) do { ((ev_watcher_time *)(ev))->at = (after_); (ev)->repeat = (repeat_); } while (0) ~^~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.c:5565:7: note: in expansion of macro 'ev_timer_set' ev_timer_set (&once->to, timeout, 0.); ^~~~~~~~~~~~ In file included from nio4r_ext.c:6: ../libev/ev.c: At top level: ../libev/ev.c:5682:27: warning: "/*" within comment [-Wcomment] /* EV_STAT 0x00001000 /* stat data changed */ ../libev/ev.c:5683:27: warning: "/*" within comment [-Wcomment] /* EV_EMBED 0x00010000 /* embedded event loop needs sweep */ In file included from nio4r_ext.c:6: ../libev/ev.c: In function 'evpipe_write': ../libev/ev.c:2798:11: warning: ignoring return value of 'write', declared with attribute warn_unused_result [-Wunused-result] write (evpipe [1], &counter, sizeof (uint64_t)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.c:2810:11: warning: ignoring return value of 'write', declared with attribute warn_unused_result [-Wunused-result] write (evpipe [1], &(evpipe [1]), 1); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.c: In function 'pipecb': ../libev/ev.c:2831:11: warning: ignoring return value of 'read', declared with attribute warn_unused_result [-Wunused-result] read (evpipe [1], &counter, sizeof (uint64_t)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.c:2845:11: warning: ignoring return value of 'read', declared with attribute warn_unused_result [-Wunused-result] read (evpipe [0], &dummy, sizeof (dummy)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ gcc -I. -I/usr/include -I/usr/include/ruby/backward -I/usr/include -I. -DHAVE_UNISTD_H -DHAVE_LINUX_AIO_ABI_H -DEV_USE_LINUXAIO -DHAVE_LINUX_IO_URING_H -DEV_USE_IOURING -DHAVE_SYS_SELECT_H -DEV_USE_SELECT -DHAVE_SYS_EPOLL_H -DEV_USE_EPOLL -DHAVE_SYS_RESOURCE_H -DHAVE_SYS_RESOURCE_H -DEV_STANDALONE -fPIC -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -m64 -o selector.o -c selector.c In file included from libev.h:7, from nio4r.h:9, from selector.c:6: selector.c: In function 'NIO_Selector_allocate': ../libev/ev.h:691:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ((ev_watcher *)(void *)(ev))->active = \ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ selector.c:112:5: note: in expansion of macro 'ev_init' ev_init(&selector->timer, NIO_Selector_timeout_callback); ^~~~~~~ ../libev/ev.h:692:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ((ev_watcher *)(void *)(ev))->pending = 0; \ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ selector.c:112:5: note: in expansion of macro 'ev_init' ev_init(&selector->timer, NIO_Selector_timeout_callback); ^~~~~~~ ../libev/ev.h:737:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # define ev_set_priority(ev,pri) ( (ev_watcher *)(void *)(ev))->priority = (pri) ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:693:3: note: in expansion of macro 'ev_set_priority' ev_set_priority ((ev), 0); \ ^~~~~~~~~~~~~~~ selector.c:112:5: note: in expansion of macro 'ev_init' ev_init(&selector->timer, NIO_Selector_timeout_callback); ^~~~~~~ ../libev/ev.h:744:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # 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:694:3: note: in expansion of macro 'ev_set_cb' ev_set_cb ((ev), cb_); \ ^~~~~~~~~ selector.c:112:5: note: in expansion of macro 'ev_init' ev_init(&selector->timer, NIO_Selector_timeout_callback); ^~~~~~~ ../libev/ev.h:691:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ((ev_watcher *)(void *)(ev))->active = \ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:712:51: note: in expansion of macro 'ev_init' #define ev_io_init(ev,cb,fd,events) do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0) ^~~~~~~ selector.c:117:5: note: in expansion of macro 'ev_io_init' ev_io_init(&selector->wakeup, NIO_Selector_wakeup_callback, selector->wakeup_reader, EV_READ); ^~~~~~~~~~ ../libev/ev.h:692:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ((ev_watcher *)(void *)(ev))->pending = 0; \ ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:712:51: note: in expansion of macro 'ev_init' #define ev_io_init(ev,cb,fd,events) do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0) ^~~~~~~ selector.c:117:5: note: in expansion of macro 'ev_io_init' ev_io_init(&selector->wakeup, NIO_Selector_wakeup_callback, selector->wakeup_reader, EV_READ); ^~~~~~~~~~ ../libev/ev.h:737:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # define ev_set_priority(ev,pri) ( (ev_watcher *)(void *)(ev))->priority = (pri) ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../libev/ev.h:693:3: note: in expansion of macro 'ev_set_priority' ev_set_priority ((ev), 0); \ ^~~~~~~~~~~~~~~ ../libev/ev.h:712:51: note: in expansion of macro 'ev_init' #define ev_io_init(ev,cb,fd,events) do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0) ^~~~~~~ selector.c:117:5: note: in expansion of macro 'ev_io_init' ev_io_init(&selector->wakeup, NIO_Selector_wakeup_callback, selector->wakeup_reader, EV_READ); ^~~~~~~~~~ ../libev/ev.h:744:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] # 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:694:3: note: in expansion of macro 'ev_set_cb' ev_set_cb ((ev), cb_); \ ^~~~~~~~~ ../libev/ev.h:712:51: note: in expansion of macro 'ev_init' #define ev_io_init(ev,cb,fd,events) do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0) ^~~~~~~ selector.c:117:5: note: in expansion of macro 'ev_io_init' ev_io_init(&selector->wakeup, NIO_Selector_wakeup_callback, selector->wakeup_reader, EV_READ); ^~~~~~~~~~ selector.c: In function 'NIO_Selector_wakeup': selector.c:499:5: warning: ignoring return value of 'write', declared with attribute warn_unused_result [-Wunused-result] write(selector->wakeup_writer, "\0", 1); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ rm -f nio4r_ext.so gcc -shared -o nio4r_ext.so bytebuffer.o monitor.o nio4r_ext.o selector.o -L. -L/usr/lib64 -L. -Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -m64 -m64 -lruby -lc current directory: /builddir/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8/ext/nio4r make "DESTDIR=" install /usr/bin/mkdir -p . ./.gem.20230615-40-devnu2 exit > .sitearchdir.time /usr/bin/install -c -m 0755 nio4r_ext.so ./.gem.20230615-40-devnu2 Successfully installed nio4r-2.5.8 Parsing documentation for nio4r-2.5.8 Parsing sources... 2% [ 1/37] ext/libev/Changes 5% [ 2/37] ext/libev/LICENSE 8% [ 3/37] ext/libev/README 10% [ 4/37] ext/libev/ev.c 13% [ 5/37] ext/libev/ev.h 16% [ 6/37] ext/libev/ev_epoll.c 18% [ 7/37] ext/libev/ev_iouring.c 21% [ 8/37] ext/libev/ev_kqueue.c 24% [ 9/37] ext/libev/ev_linuxaio.c 27% [10/37] ext/libev/ev_poll.c 29% [11/37] ext/libev/ev_port.c 32% [12/37] ext/libev/ev_select.c 35% [13/37] ext/libev/ev_vars.h 37% [14/37] ext/libev/ev_win32.c 40% [15/37] ext/libev/ev_wrap.h 43% [16/37] ext/nio4r/Makefile 45% [17/37] ext/nio4r/bytebuffer.c 48% [18/37] ext/nio4r/bytebuffer.o 51% [19/37] ext/nio4r/extconf.rb 54% [20/37] ext/nio4r/libev.h 56% [21/37] ext/nio4r/monitor.c 59% [22/37] ext/nio4r/monitor.o 62% [23/37] ext/nio4r/nio4r.h 64% [24/37] ext/nio4r/nio4r_ext.c 67% [25/37] ext/nio4r/nio4r_ext.o 70% [26/37] ext/nio4r/nio4r_ext.so 72% [27/37] ext/nio4r/org/nio4r/ByteBuffer.java 75% [28/37] ext/nio4r/org/nio4r/Monitor.java 78% [29/37] ext/nio4r/org/nio4r/Nio4r.java 81% [30/37] ext/nio4r/org/nio4r/Selector.java 83% [31/37] ext/nio4r/selector.c 86% [32/37] ext/nio4r/selector.o 89% [33/37] lib/nio.rb 91% [34/37] lib/nio/bytebuffer.rb 94% [35/37] lib/nio/monitor.rb 97% [36/37] lib/nio/selector.rb 100% [37/37] lib/nio/version.rb Installing ri documentation for nio4r-2.5.8 Installing darkfish documentation for nio4r-2.5.8 Done installing documentation for nio4r after 0 seconds 1 gem installed + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.bFOd7s + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/rubygem-nio4r-2.5.8-3.el8.x86_64 '!=' / ']' + rm -rf /builddir/build/BUILDROOT/rubygem-nio4r-2.5.8-3.el8.x86_64 ++ dirname /builddir/build/BUILDROOT/rubygem-nio4r-2.5.8-3.el8.x86_64 + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/rubygem-nio4r-2.5.8-3.el8.x86_64 + cd nio4r-2.5.8 + mkdir -p /builddir/build/BUILDROOT/rubygem-nio4r-2.5.8-3.el8.x86_64/usr/share/gems + cp -a ./usr/share/gems/build_info ./usr/share/gems/cache ./usr/share/gems/doc ./usr/share/gems/extensions ./usr/share/gems/gems ./usr/share/gems/specifications /builddir/build/BUILDROOT/rubygem-nio4r-2.5.8-3.el8.x86_64/usr/share/gems/ + mkdir -p /builddir/build/BUILDROOT/rubygem-nio4r-2.5.8-3.el8.x86_64/usr/lib64/gems/ruby/nio4r-2.5.8 + cp -a ./usr/lib64/gems/ruby/nio4r-2.5.8/gem.build_complete ./usr/lib64/gems/ruby/nio4r-2.5.8/nio4r_ext.so /builddir/build/BUILDROOT/rubygem-nio4r-2.5.8-3.el8.x86_64/usr/lib64/gems/ruby/nio4r-2.5.8/ + rm -rf /builddir/build/BUILDROOT/rubygem-nio4r-2.5.8-3.el8.x86_64/usr/share/gems/gems/nio4r-2.5.8/ext/ + /usr/lib/rpm/find-debuginfo.sh -j2 --strict-build-id -m -i --build-id-seed 2.5.8-3.el8 --unique-debug-suffix -2.5.8-3.el8.x86_64 --unique-debug-src-base rubygem-nio4r-2.5.8-3.el8.x86_64 --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 110000000 -S debugsourcefiles.list /builddir/build/BUILD/nio4r-2.5.8 extracting debug info from /builddir/build/BUILDROOT/rubygem-nio4r-2.5.8-3.el8.x86_64/usr/lib64/gems/ruby/nio4r-2.5.8/nio4r_ext.so /usr/lib/rpm/sepdebugcrcfix: Updated 1 CRC32s, 0 CRC32s did match. 588 blocks + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/redhat/brp-ldconfig /sbin/ldconfig: Warning: ignoring configuration file that cannot be opened: /etc/ld.so.conf: No such file or directory + /usr/lib/rpm/brp-compress + /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/brp-python-bytecompile '' 1 + /usr/lib/rpm/brp-python-hardlink + PYTHON3=/usr/libexec/platform-python + /usr/lib/rpm/redhat/brp-mangle-shebangs mangling shebang in /usr/share/gems/gems/nio4r-2.5.8/examples/echo_server.rb from /usr/bin/env ruby to #!/usr/bin/ruby Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.tsVPhg + umask 022 + cd /builddir/build/BUILD + cd nio4r-2.5.8 + pushd ./usr/share/gems/gems/nio4r-2.5.8 ~/build/BUILD/nio4r-2.5.8/usr/share/gems/gems/nio4r-2.5.8 ~/build/BUILD/nio4r-2.5.8 ++ grep EV_VERSION_MAJOR ext/libev/ev.h ++ cut -d ' ' -f3 + EV_VERSION_MAJOR=4 ++ grep EV_VERSION_MINOR ext/libev/ev.h ++ cut -d ' ' -f3 + EV_VERSION_MINOR=33 + '[' 4.33 = 4.33 ']' + sed -i '/require "coveralls"/ s/^/#/' spec/spec_helper.rb + sed -i '/Coveralls.wear!/ s/^/#/' spec/spec_helper.rb ++ dirs +1 + rspec -I~/build/BUILD/nio4r-2.5.8/usr/lib64/gems/ruby/nio4r-2.5.8 -ropenssl spec Randomized with seed 61439 NIO acceptables TCPServer behaves like an NIO acceptable selects for read readiness NIO::Selector allows deregistering closed IO objects closes allows reregistration of the same IO object across select calls reports if it is empty deregisters IO objects knows which IO objects are registered wakeup raises IOError if asked to wake up a closed selector wakes up if signaled to from another thread timeouts waits for timeout when selecting from empty selector raises ArgumentError if given a negative timeout waits for a timeout when selecting with reader #initialize allows explicitly specifying a backend Supported backends: [:epoll, :poll, :select, :linuxaio, :io_uring] raises TypeError if given a non-Symbol parameter raises ArgumentError if given an invalid backend automatically selects a backend if none or nil is specified register raises TypeError if asked to register non-IO objects registers IO objects raises when asked to register after closing .backends knows all supported backends select selects IO objects iterates across selected objects with a block selects closed IO objects raises IOError if asked to select on a closed selector does not block on super small precision intervals backend knows its backend Current backend: epoll TCPSocket behaves like an NIO bidirectional stream keeps readiness after the selectable has been closed selects readable and writable behaves like an NIO selectable stream selects readable when the other end closes behaves like an NIO selectable does not select unwritable objects selects readable objects selects writable objects does not select unreadable objects connect selects writable when connected NIO::Monitor #selector knows its selector #interests= can set interests to nil changes the interest set raises EOFError if interests are changed after the monitor is closed #readiness knows what operations IO objects are ready for #io knows its IO object #value= stores arbitrary values #close closes even if the selector has been shutdown closes #interests knows its interests #add_interest raises ArgumentError if given a bogus option acts idempotently sets a new interest if it isn't currently registered #remove_interest acts idempotently can clear the last interest removes an interest from the set raises ArgumentError if given a bogus option UDPSocket behaves like an NIO selectable selects writable objects does not select unwritable objects (PENDING: come up with a UDPSocket that's blocked on writing) does not select unreadable objects selects readable objects OpenSSL::SSL::SSLSocket using TLS 1.3 behaves like an NIO selectable stream selects readable when the other end closes behaves like an NIO selectable does not select unwritable objects selects readable objects does not select unreadable objects selects writable objects using TLS 1.2 behaves like an NIO selectable stream selects readable when the other end closes behaves like an NIO selectable selects writable objects selects readable objects does not select unreadable objects does not select unwritable objects IO.pipe behaves like an NIO selectable stream selects readable when the other end closes behaves like an NIO selectable selects writable objects does not select unreadable objects does not select unwritable objects selects readable objects NIO::ByteBuffer #get raises NIO::ByteBuffer::UnderflowError if there is not enough data in the buffer reads all remaining data if no length is given reads zeroes from a newly initialized buffer advances position as data is read #reset raises NIO::ByteBuffer::MarkUnsetError unless mark has been set returns to a previously marked position #flip sets remaining to the previous position flips the bytebuffer sets limit to the previous position #limit defaults to the buffer's capacity I/O #read_from returns 0 if no data is available reads data into the buffer raises NIO::ByteBuffer::OverflowError if the buffer is already full #write_to writes data from the buffer raises NIO::ByteBuffer::UnderflowError if the buffer is out of data #clear clears the buffer #each iterates over data in the buffer #capacity has the requested capacity #position defaults to zero #initialize raises TypeError if given a bogus argument #remaining calculates the number of bytes remaining #position= sets the buffer's position to a valid value raises ArgumentError if the specified position is less than zero raises ArgumentError if the specified position exceeds the limit #inspect inspects the buffer offsets #mark returns self #<< raises TypeError if given a non-String type raises NIO::ByteBuffer::OverflowError if the buffer is full adds strings to the buffer #compact copies data from the current position to the beginning of the buffer #full? returns false when there is space remaining in the buffer returns true when the buffer is full #rewind rewinds the buffer leaving the limit intact #limit= sets the buffer's limit to a valid value raises ArgumentError if specified limit is less than zero sets position to the new limit if the previous position is beyond the limit clears the mark if the new limit is before the current mark raises ArgumentError if specified limit exceeds capacity preserves position and mark if they're less than the new limit #[] obtains bytes at a given index without altering position raises ArgumentError if the index is less than zero raises ArgumentError if the index exceeds the limit Pending: (Failures listed here are expected and do not affect your suite's status) 1) UDPSocket behaves like an NIO selectable does not select unwritable objects # come up with a UDPSocket that's blocked on writing Failure/Error: selector.register(unwritable_subject, :w) TypeError: no implicit conversion of false into IO Shared Example Group: "an NIO selectable" called from ./spec/nio/selectables/udp_socket_spec.rb:47 # ./spec/support/selectable_examples.rb:36:in `initialize' # ./spec/support/selectable_examples.rb:36:in `register' # ./spec/support/selectable_examples.rb:36:in `block (2 levels) in ' Finished in 8.41 seconds (files took 0.10833 seconds to load) 112 examples, 0 failures, 1 pending Randomized with seed 61439 ++ dirs +1 + NIO4R_PURE=true + rspec -I~/build/BUILD/nio4r-2.5.8/usr/lib64/gems/ruby/nio4r-2.5.8 -ropenssl spec Randomized with seed 28358 UDPSocket behaves like an NIO selectable selects writable objects selects readable objects does not select unwritable objects (PENDING: come up with a UDPSocket that's blocked on writing) does not select unreadable objects NIO::Selector reports if it is empty allows deregistering closed IO objects closes knows which IO objects are registered deregisters IO objects allows reregistration of the same IO object across select calls #initialize raises TypeError if given a non-Symbol parameter allows explicitly specifying a backend Supported backends: [:ruby] automatically selects a backend if none or nil is specified raises ArgumentError if given an invalid backend timeouts waits for timeout when selecting from empty selector raises ArgumentError if given a negative timeout waits for a timeout when selecting with reader register registers IO objects raises TypeError if asked to register non-IO objects raises when asked to register after closing backend knows its backend Current backend: ruby wakeup wakes up if signaled to from another thread raises IOError if asked to wake up a closed selector .backends knows all supported backends select selects IO objects raises IOError if asked to select on a closed selector selects closed IO objects does not block on super small precision intervals iterates across selected objects with a block NIO::Monitor #readiness knows what operations IO objects are ready for #remove_interest acts idempotently raises ArgumentError if given a bogus option removes an interest from the set can clear the last interest #value= stores arbitrary values #close closes closes even if the selector has been shutdown #selector knows its selector #interests= changes the interest set can set interests to nil raises EOFError if interests are changed after the monitor is closed #add_interest acts idempotently raises ArgumentError if given a bogus option sets a new interest if it isn't currently registered #interests knows its interests #io knows its IO object TCPSocket behaves like an NIO selectable does not select unwritable objects selects readable objects does not select unreadable objects selects writable objects behaves like an NIO selectable stream selects readable when the other end closes behaves like an NIO bidirectional stream keeps readiness after the selectable has been closed selects readable and writable connect selects writable when connected IO.pipe behaves like an NIO selectable stream selects readable when the other end closes behaves like an NIO selectable selects writable objects does not select unreadable objects does not select unwritable objects selects readable objects NIO acceptables TCPServer behaves like an NIO acceptable selects for read readiness OpenSSL::SSL::SSLSocket using TLS 1.2 behaves like an NIO selectable does not select unwritable objects selects writable objects selects readable objects does not select unreadable objects behaves like an NIO selectable stream selects readable when the other end closes using TLS 1.3 behaves like an NIO selectable selects readable objects selects writable objects does not select unreadable objects does not select unwritable objects behaves like an NIO selectable stream selects readable when the other end closes NIO::ByteBuffer #remaining calculates the number of bytes remaining I/O #write_to writes data from the buffer raises NIO::ByteBuffer::UnderflowError if the buffer is out of data #read_from returns 0 if no data is available reads data into the buffer raises NIO::ByteBuffer::OverflowError if the buffer is already full #inspect inspects the buffer offsets #<< adds strings to the buffer raises TypeError if given a non-String type raises NIO::ByteBuffer::OverflowError if the buffer is full #flip sets limit to the previous position flips the bytebuffer sets remaining to the previous position #[] raises ArgumentError if the index is less than zero obtains bytes at a given index without altering position raises ArgumentError if the index exceeds the limit #capacity has the requested capacity #position defaults to zero #initialize raises TypeError if given a bogus argument #clear clears the buffer #rewind rewinds the buffer leaving the limit intact #each iterates over data in the buffer #position= sets the buffer's position to a valid value raises ArgumentError if the specified position exceeds the limit raises ArgumentError if the specified position is less than zero #limit= raises ArgumentError if specified limit exceeds capacity preserves position and mark if they're less than the new limit raises ArgumentError if specified limit is less than zero sets position to the new limit if the previous position is beyond the limit clears the mark if the new limit is before the current mark sets the buffer's limit to a valid value #limit defaults to the buffer's capacity #full? returns false when there is space remaining in the buffer returns true when the buffer is full #get advances position as data is read raises NIO::ByteBuffer::UnderflowError if there is not enough data in the buffer reads zeroes from a newly initialized buffer reads all remaining data if no length is given #mark returns self #reset returns to a previously marked position raises NIO::ByteBuffer::MarkUnsetError unless mark has been set #compact copies data from the current position to the beginning of the buffer Pending: (Failures listed here are expected and do not affect your suite's status) 1) UDPSocket behaves like an NIO selectable does not select unwritable objects # come up with a UDPSocket that's blocked on writing Failure/Error: raise TypeError, "can't convert #{io.class} into IO" unless io.is_a? IO TypeError: can't convert NilClass into IO Shared Example Group: "an NIO selectable" called from ./spec/nio/selectables/udp_socket_spec.rb:47 # ./lib/nio/monitor.rb:19:in `initialize' # ./lib/nio/selector.rb:59:in `new' # ./lib/nio/selector.rb:59:in `block in register' # ./lib/nio/selector.rb:53:in `synchronize' # ./lib/nio/selector.rb:53:in `register' # ./spec/support/selectable_examples.rb:36:in `block (2 levels) in ' Finished in 8.62 seconds (files took 0.1143 seconds to load) 112 examples, 0 failures, 1 pending Randomized with seed 28358 ~/build/BUILD/nio4r-2.5.8 + popd + exit 0 Processing files: rubygem-nio4r-2.5.8-3.el8.x86_64 Provides: bundled(libev) = 4.33 rubygem(nio4r) = 2.5.8-1 rubygem-nio4r = 2.5.8-3.el8 rubygem-nio4r(x86-64) = 2.5.8-3.el8 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: libc.so.6()(64bit) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.17)(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.3.2)(64bit) libc.so.6(GLIBC_2.3.4)(64bit) libc.so.6(GLIBC_2.4)(64bit) libc.so.6(GLIBC_2.7)(64bit) libc.so.6(GLIBC_2.8)(64bit) libc.so.6(GLIBC_2.9)(64bit) libruby.so.2.5()(64bit) rtld(GNU_HASH) ruby(rubygems) Processing files: rubygem-nio4r-doc-2.5.8-3.el8.noarch Provides: rubygem-nio4r-doc = 2.5.8-3.el8 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: /usr/bin/ruby Processing files: rubygem-nio4r-debugsource-2.5.8-3.el8.x86_64 Provides: rubygem-nio4r-debugsource = 2.5.8-3.el8 rubygem-nio4r-debugsource(x86-64) = 2.5.8-3.el8 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Processing files: rubygem-nio4r-debuginfo-2.5.8-3.el8.x86_64 Provides: debuginfo(build-id) = 90d39d86c114e867e90453780e3a914451fc0be9 rubygem-nio4r-debuginfo = 2.5.8-3.el8 rubygem-nio4r-debuginfo(x86-64) = 2.5.8-3.el8 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Recommends: rubygem-nio4r-debugsource(x86-64) = 2.5.8-3.el8 Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/rubygem-nio4r-2.5.8-3.el8.x86_64 Wrote: /builddir/build/RPMS/rubygem-nio4r-2.5.8-3.el8.x86_64.rpm Wrote: /builddir/build/RPMS/rubygem-nio4r-doc-2.5.8-3.el8.noarch.rpm Wrote: /builddir/build/RPMS/rubygem-nio4r-debugsource-2.5.8-3.el8.x86_64.rpm Wrote: /builddir/build/RPMS/rubygem-nio4r-debuginfo-2.5.8-3.el8.x86_64.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.H0uaoc + umask 022 + cd /builddir/build/BUILD + cd nio4r-2.5.8 + /usr/bin/rm -rf /builddir/build/BUILDROOT/rubygem-nio4r-2.5.8-3.el8.x86_64 + exit 0 Child return code was: 0