Issue #15665 has been updated by hsbt (Hiroshi SHIBATA).


I'm not sure nobu's changesets are bug or feature.

But this issue was marked with "Feature" by nobu. We never backport the new feature to stable versions.



----------------------------------------
Feature #15665: Cannot compile socket extension on Mojave
https://bugs.ruby-lang.org/issues/15665#change-78390

* Author: franklinyu (Franklin Yu)
* Status: Closed
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
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:

```c
#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.

---Files--------------------------------
mkmf.log (143 KB)


-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>