Project

General

Profile

Bug #15665

Cannot compile socket extension on Mojave

Added by franklinyu (Franklin Yu) 8 days ago. Updated about 17 hours ago.

Status:
Rejected
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:91824]

Description

The mkmf.log is reporting that it cannot find netinet6/in6.h. I guess that previously it’s finding it in /usr/include, but as we all know Apple removed that path since Mojave. On my machine the current path is:

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/

The C compiler seems fine if I’m using it stand-alone. I tried compiling following snippet:

#include <netinet/in.h>
int main() {}
int t(struct in6_addr *addr) {
    return IN6_IS_ADDR_UNSPECIFIED(addr);
}

And it works, although I have no idea which header it included. I tried both compiling it with cc test.c, and with the actual command in mkmf.log:

clang -I../../.ext/include/x86_64-darwin18 -I../.././include -I../.././ext/socket -I../.. -I../../. -I/opt/local/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -Wall -Wextra -Wpedantic -Wshadow -pipe -D__APPLE_USE_RFC_3542 -Werror

Both works without any warning/error.

note

This only happens to 2.6.0 and 2.6.1. Releases in 2.5.x or below are not affected.

History

Updated by hsbt (Hiroshi SHIBATA) about 17 hours ago

  • Status changed from Open to Rejected

I couldn't reproduce this with Mojave.

~ > ls /usr/include/netinet6/in6.h
/usr/include/netinet6/in6.h

It seems your development environment issue.

Also available in: Atom PDF