{"action":"created","issue":{"url":"https://api.github.com/repos/celluloid/nio4r/issues/75","labels_url":"https://api.github.com/repos/celluloid/nio4r/issues/75/labels{/name}","comments_url":"https://api.github.com/repos/celluloid/nio4r/issues/75/comments","events_url":"https://api.github.com/repos/celluloid/nio4r/issues/75/events","html_url":"https://github.com/celluloid/nio4r/issues/75","id":95024098,"number":75,"title":"Build Issue on OS X 10.11 and Ruby 2.2.2","user":{"login":"iterion","id":145272,"avatar_url":"https://avatars.githubusercontent.com/u/145272?v=3","gravatar_id":"","url":"https://api.github.com/users/iterion","html_url":"https://github.com/iterion","followers_url":"https://api.github.com/users/iterion/followers","following_url":"https://api.github.com/users/iterion/following{/other_user}","gists_url":"https://api.github.com/users/iterion/gists{/gist_id}","starred_url":"https://api.github.com/users/iterion/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iterion/subscriptions","organizations_url":"https://api.github.com/users/iterion/orgs","repos_url":"https://api.github.com/users/iterion/repos","events_url":"https://api.github.com/users/iterion/events{/privacy}","received_events_url":"https://api.github.com/users/iterion/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-07-14T19:49:33Z","updated_at":"2015-07-14T22:13:10Z","closed_at":null,"body":"I'm having issues building nio4r on the latest version of OS X 10.11 and Ruby 2.2.2. Build log output here:\r\n\r\n```\r\n/usr/local/opt/rbenv/versions/2.2.2/bin/ruby -r ./siteconf20150714-44665-18sflk9.rb extconf.rb\r\nchecking for rb_thread_blocking_region()... no\r\nchecking for rb_thread_call_without_gvl()... yes\r\nchecking for sys/select.h... yes\r\nchecking for poll.h... yes\r\nchecking for sys/epoll.h... no\r\nchecking for sys/event.h... yes\r\nchecking for sys/queue.h... yes\r\nchecking for port.h... no\r\nchecking for sys/resource.h... yes\r\ncreating Makefile\r\n\r\nmake \"DESTDIR=\" clean\r\n\r\nmake \"DESTDIR=\"\r\ncompiling monitor.c\r\ncompiling nio4r_ext.c\r\nIn file included from nio4r_ext.c:7:\r\n./../libev/ev.c:487:48: warning: '/*' within block comment [-Wcomment]\r\n/*#define MIN_INTERVAL  0.00000095367431640625 /* 1/2**20, good till 2200 */\r\n                                               ^\r\n./../libev/ev.c:1033:42: error: '_Noreturn' keyword must precede function declarator\r\n  ecb_inline void ecb_unreachable (void) ecb_noreturn;\r\n                                         ^~~~~~~~~~~~\r\n  _Noreturn \r\n./../libev/ev.c:836:26: note: expanded from macro 'ecb_noreturn'\r\n  #define ecb_noreturn   _Noreturn\r\n                         ^\r\n./../libev/ev.c:1629:31: warning: 'extern' variable has an initializer [-Wextern-initializer]\r\n  EV_API_DECL struct ev_loop *ev_default_loop_ptr = 0; /* needs to be initialised to make it a definition despite extern */\r\n                              ^\r\nIn file included from nio4r_ext.c:7:\r\nIn file included from ./../libev/ev.c:2494:\r\n./../libev/ev_poll.c:110:18: warning: expression result unused [-Wunused-value]\r\n        assert ((\"libev: poll() returned illegal result, broken BSD kernel?\", p < polls + pollcnt));\r\n                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n/usr/include/assert.h:93:25: note: expanded from macro 'assert'\r\n    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)\r\n                        ^\r\nIn file included from nio4r_ext.c:7:\r\n./../libev/ev.c:2900:12: warning: expression result unused [-Wunused-value]\r\n  assert ((\"libev: watcher has invalid priority\", ABSPRI (w) >= 0 && ABSPRI (w) < NUMPRI));\r\n           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n/usr/include/assert.h:93:25: note: expanded from macro 'assert'\r\n    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)\r\n                        ^\r\nIn file included from nio4r_ext.c:7:\r\n./../libev/ev.c:2903:14: warning: expression result unused [-Wunused-value]\r\n    assert ((\"libev: pending watcher not on pending queue\", pendings [ABSPRI (w)][w->pending - 1].w == w));\r\n             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n/usr/include/assert.h:93:25: note: expanded from macro 'assert'\r\n    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)\r\n                        ^\r\nIn file included from nio4r_ext.c:7:\r\n./../libev/ev.c:2913:16: warning: expression result unused [-Wunused-value]\r\n      assert ((\"libev: active index mismatch in heap\", ev_active (ANHE_w (heap [i])) == i));\r\n               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n/usr/include/assert.h:93:25: note: expanded from macro 'assert'\r\n    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)\r\n                        ^\r\nIn file included from nio4r_ext.c:7:\r\n./../libev/ev.c:2914:16: warning: expression result unused [-Wunused-value]\r\n      assert ((\"libev: heap condition violated\", i == HEAP0 || ANHE_at (heap [HPARENT (i)]) <= ANHE_at (heap [i])));\r\n               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n/usr/include/assert.h:93:25: note: expanded from macro 'assert'\r\n    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)\r\n                        ^\r\nIn file included from nio4r_ext.c:7:\r\n./../libev/ev.c:2915:16: warning: expression result unused [-Wunused-value]\r\n      assert ((\"libev: heap at cache mismatch\", ANHE_at (heap [i]) == ev_at (ANHE_w (heap [i]))));\r\n               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n/usr/include/assert.h:93:25: note: expanded from macro 'assert'\r\n    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)\r\n                        ^\r\nIn file included from nio4r_ext.c:7:\r\n./../libev/ev.c:2926:16: warning: expression result unused [-Wunused-value]\r\n      assert ((\"libev: active index mismatch\", ev_active (ws [cnt]) == cnt + 1));\r\n               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n/usr/include/assert.h:93:25: note: expanded from macro 'assert'\r\n    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)\r\n                        ^\r\nIn file included from nio4r_ext.c:7:\r\n./../libev/ev.c:2944:14: warning: expression result unused [-Wunused-value]\r\n    assert ((\"libev: negative fd in fdchanges\", fdchanges [i] >= 0));\r\n             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n/usr/include/assert.h:93:25: note: expanded from macro 'assert'\r\n    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)\r\n                        ^\r\nIn file included from nio4r_ext.c:7:\r\n./../libev/ev.c:2957:24: warning: expression result unused [-Wunused-value]\r\n              assert ((\"libev: io watcher list contains a loop\", w != w2));\r\n                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n/usr/include/assert.h:93:25: note: expanded from macro 'assert'\r\n    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)\r\n                        ^\r\nIn file included from nio4r_ext.c:7:\r\n./../libev/ev.c:2961:20: warning: expression result unused [-Wunused-value]\r\n          assert ((\"libev: inactive fd watcher on anfd list\", ev_active (w) == 1));\r\n                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n/usr/include/assert.h:93:25: note: expanded from macro 'assert'\r\n    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)\r\n                        ^\r\nIn file included from nio4r_ext.c:7:\r\n./../libev/ev.c:2962:20: warning: expression result unused [-Wunused-value]\r\n          assert ((\"libev: fd mismatch between watcher and anfd\", ((ev_io *)w)->fd == i));\r\n                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n/usr/include/assert.h:93:25: note: expanded from macro 'assert'\r\n    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)\r\n                        ^\r\nIn file included from nio4r_ext.c:7:\r\n./../libev/ev.c:3144:24: warning: expression result unused [-Wunused-value]\r\n              assert ((\"libev: negative ev_timer repeat value found while processing timers\", w->repeat > 0.));\r\n                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n/usr/include/assert.h:93:25: note: expanded from macro 'assert'\r\n    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)\r\n                        ^\r\nIn file included from nio4r_ext.c:7:\r\n./../libev/ev.c:3206:24: warning: expression result unused [-Wunused-value]\r\n              assert ((\"libev: ev_periodic reschedule callback returned time in the past\", ev_at (w) >= ev_rt_now));\r\n                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n/usr/include/assert.h:93:25: note: expanded from macro 'assert'\r\n    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)\r\n                        ^\r\nIn file included from nio4r_ext.c:7:\r\n./../libev/ev.c:3368:12: warning: expression result unused [-Wunused-value]\r\n  assert ((\"libev: ev_loop recursion during release detected\", loop_done != EVBREAK_RECURSE));\r\n           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n/usr/include/assert.h:93:25: note: expanded from macro 'assert'\r\n    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)\r\n                        ^\r\nIn file included from nio4r_ext.c:7:\r\n./../libev/ev.c:3539:9: warning: implicit declaration of function 'rb_thread_call_without_gvl' is invalid in C99 [-Wimplicit-function-declaration]\r\n        rb_thread_call_without_gvl(ev_backend_poll, (void *)&poll_args, RUBY_UBF_IO, 0);\r\n        ^\r\n./../libev/ev.c:3554:22: warning: expression result unused [-Wunused-value]\r\n            assert ((\"libev: pipe_w not active, but pipe not written\", ev_is_active (&pipe_w)));\r\n                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n/usr/include/assert.h:93:25: note: expanded from macro 'assert'\r\n    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)\r\n                        ^\r\nIn file included from nio4r_ext.c:7:\r\n./../libev/ev.c:3728:12: warning: expression result unused [-Wunused-value]\r\n  assert ((\"libev: ev_io_start called with negative fd\", fd >= 0));\r\n           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n/usr/include/assert.h:93:25: note: expanded from macro 'assert'\r\n    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)\r\n                        ^\r\nIn file included from nio4r_ext.c:7:\r\n./../libev/ev.c:3729:12: warning: expression result unused [-Wunused-value]\r\n  assert ((\"libev: ev_io_start called with illegal event mask\", !(w->events & ~(EV__IOFDSET | EV_READ | EV_WRITE))));\r\n           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n/usr/include/assert.h:93:25: note: expanded from macro 'assert'\r\n    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)\r\n                        ^\r\nIn file included from nio4r_ext.c:7:\r\n./../libev/ev.c:3738:12: warning: expression result unused [-Wunused-value]\r\n  assert ((\"libev: ev_io_start called with corrupted watcher\", ((WL)w)->next != (WL)w));\r\n           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n/usr/include/assert.h:93:25: note: expanded from macro 'assert'\r\n    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)\r\n                        ^\r\nIn file included from nio4r_ext.c:7:\r\n./../libev/ev.c:3740:34: warning: '&' within '|' [-Wbitwise-op-parentheses]\r\n  fd_change (EV_A_ fd, w->events & EV__IOFDSET | EV_ANFD_REIFY);\r\n                       ~~~~~~~~~~^~~~~~~~~~~~~ ~\r\n./../libev/ev.c:3740:34: note: place parentheses around the '&' expression to silence this warning\r\n  fd_change (EV_A_ fd, w->events & EV__IOFDSET | EV_ANFD_REIFY);\r\n                                 ^\r\n                       (                      )\r\n./../libev/ev.c:3753:12: warning: expression result unused [-Wunused-value]\r\n  assert ((\"libev: ev_io_stop called with illegal fd (must stay constant after start!)\", w->fd >= 0 && w->fd < anfdmax));\r\n           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n/usr/include/assert.h:93:25: note: expanded from macro 'assert'\r\n    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)\r\n                        ^\r\nIn file included from nio4r_ext.c:7:\r\n./../libev/ev.c:3773:12: warning: expression result unused [-Wunused-value]\r\n  assert ((\"libev: ev_timer_start called with negative timer repeat value\", w->repeat >= 0.));\r\n           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n/usr/include/assert.h:93:25: note: expanded from macro 'assert'\r\n    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)\r\n                        ^\r\nIn file included from nio4r_ext.c:7:\r\n./../libev/ev.c:3801:14: warning: expression result unused [-Wunused-value]\r\n    assert ((\"libev: internal timer heap corruption\", ANHE_w (timers [active]) == (WT)w));\r\n             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n/usr/include/assert.h:93:25: note: expanded from macro 'assert'\r\n    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)\r\n                        ^\r\nIn file included from nio4r_ext.c:7:\r\n./../libev/ev.c:3863:16: warning: expression result unused [-Wunused-value]\r\n      assert ((\"libev: ev_periodic_start called with negative interval value\", w->interval >= 0.));\r\n               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n/usr/include/assert.h:93:25: note: expanded from macro 'assert'\r\n    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)\r\n                        ^\r\nIn file included from nio4r_ext.c:7:\r\n./../libev/ev.c:3895:14: warning: expression result unused [-Wunused-value]\r\n    assert ((\"libev: internal periodic heap corruption\", ANHE_w (periodics [active]) == (WT)w));\r\n             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n/usr/include/assert.h:93:25: note: expanded from macro 'assert'\r\n    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)\r\n                        ^\r\nIn file included from nio4r_ext.c:7:\r\n./../libev/ev.c:3932:12: warning: expression result unused [-Wunused-value]\r\n  assert ((\"libev: ev_signal_start called with illegal signal number\", w->signum > 0 && w->signum < EV_NSIG));\r\n           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n/usr/include/assert.h:93:25: note: expanded from macro 'assert'\r\n    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)\r\n                        ^\r\nIn file included from nio4r_ext.c:7:\r\n./../libev/ev.c:3935:12: warning: expression result unused [-Wunused-value]\r\n  assert ((\"libev: a signal must not be attached to two different loops\",\r\n           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n/usr/include/assert.h:93:25: note: expanded from macro 'assert'\r\n    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)\r\n                        ^\r\nIn file included from nio4r_ext.c:7:\r\n./../libev/ev.c:4053:12: warning: expression result unused [-Wunused-value]\r\n  assert ((\"libev: child watchers are only supported in the default loop\", loop == ev_default_loop_ptr));\r\n           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n/usr/include/assert.h:93:25: note: expanded from macro 'assert'\r\n    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)\r\n                        ^\r\nIn file included from nio4r_ext.c:7:\r\n./../libev/ev.c:4632:14: warning: expression result unused [-Wunused-value]\r\n    assert ((\"libev: loop to be embedded is not embeddable\", backend & ev_embeddable_backends ()));\r\n             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n/usr/include/assert.h:93:25: note: expanded from macro 'assert'\r\n    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)\r\n                        ^\r\n31 warnings and 1 error generated.\r\nmake: *** [nio4r_ext.o] Error 1\r\n\r\nmake failed, exit code 2\r\n```"},"comment":{"url":"https://api.github.com/repos/celluloid/nio4r/issues/comments/121408106","html_url":"https://github.com/celluloid/nio4r/issues/75#issuecomment-121408106","issue_url":"https://api.github.com/repos/celluloid/nio4r/issues/75","id":121408106,"user":{"login":"digitalextremist","id":21095,"avatar_url":"https://avatars.githubusercontent.com/u/21095?v=3","gravatar_id":"","url":"https://api.github.com/users/digitalextremist","html_url":"https://github.com/digitalextremist","followers_url":"https://api.github.com/users/digitalextremist/followers","following_url":"https://api.github.com/users/digitalextremist/following{/other_user}","gists_url":"https://api.github.com/users/digitalextremist/gists{/gist_id}","starred_url":"https://api.github.com/users/digitalextremist/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/digitalextremist/subscriptions","organizations_url":"https://api.github.com/users/digitalextremist/orgs","repos_url":"https://api.github.com/users/digitalextremist/repos","events_url":"https://api.github.com/users/digitalextremist/events{/privacy}","received_events_url":"https://api.github.com/users/digitalextremist/received_events","type":"User","site_admin":false},"created_at":"2015-07-14T22:13:10Z","updated_at":"2015-07-14T22:13:10Z","body":"There's a note on the preceding line that there's a warning for the line in question -- perhaps in this next `gcc` version it's treating it as an actual error. What's your `gcc` version?\r\n\r\nThis seems applicable:\r\n\r\nhttp://stackoverflow.com/questions/13691361/use-of-noreturn-in-c11\r\n\r\nThere may need to be a new compiler condition added, and that line changed to something like this under the new condition:\r\n\r\n```c\r\necb_inline __attribute__((noreturn)) void ecb_unreachable (void) ecb_noreturn;\r\n```"}}