OS X does not have sys/stropts.h. It seems this header is related to very old fashioned terminal control facility. Checking the existence of sys/stropts.h in configure cures the problem. Note that homebrew has similar patch. https://github.com/Homebrew/formula-patches/blob/master/nvi/patch-ex_script.c.diff Reproducible: Always Actual Results: libtool: compile: x86_64-apple-darwin16-clang -DHAVE_CONFIG_H -I. -D__REGEX_PRIVATE -I. -I./../include -DVI=\"/Users/shunsuke_shimizu/Gentoo/usr/bin/nvi-ipc\" -I./../regex -D_PATH_MSGCAT=\"/Users/shunsuke_shimizu/Gentoo/usr/share/vi/catalog/\" -I/Users/shunsuke_shimizu/Gentoo/usr/include/db5.1 -O -c ./../ex/ex_script.c -fno-common -DPIC -o .libs/libvi_la-ex_script.o ./../ex/ex_script.c:27:10: fatal error: 'sys/stropts.h' file not found #include <sys/stropts.h> ^ # emerge --info Portage 2.3.5-prefix (python 3.5.2-final-0, prefix/darwin/macos/10.12/x64, clang-3.9.1, unavailable, 16.5.0 x86_64) ================================================================= System uname: Darwin-16.5.0-x86_64-i386-64bit Timestamp of repository gentoo_prefix: Tue, 23 May 2017 02:58:52 +0000 sh bash 4.3_p48 app-shells/bash: 4.3_p48::gentoo_prefix dev-lang/perl: 5.24.1-r1::gentoo_prefix dev-lang/python: 2.7.12::gentoo_prefix, 3.4.5::gentoo_prefix, 3.5.2::gentoo_prefix dev-util/cmake: 3.8.0-r1::gentoo_prefix dev-util/pkgconfig: 0.29.1::gentoo_prefix sys-devel/autoconf: 2.69-r3::gentoo_prefix sys-devel/automake: 1.14.1-r1::gentoo_prefix, 1.15-r2::gentoo_prefix sys-devel/libtool: 2.4.6-r4::gentoo_prefix sys-devel/make: 4.2.1-r1::gentoo_prefix Repositories: gentoo_prefix location: /Users/shunsuke_shimizu/Gentoo/usr/portage sync-type: rsync sync-uri: rsync://rsync.prefix.bitzolder.nl/gentoo-portage-prefix priority: -1000 ACCEPT_KEYWORDS="~x64-macos" ACCEPT_LICENSE="* -@EULA" CBUILD="x86_64-apple-darwin16" CC="x86_64-apple-darwin16-clang" CFLAGS="-march=native -O2 -pipe" CHOST="x86_64-apple-darwin16" CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/gentoo-release /etc/terminfo" CXX="x86_64-apple-darwin16-clang++" CXXFLAGS="-march=native -O2 -pipe" DISTDIR="/Users/shunsuke_shimizu/Gentoo/usr/portage/distfiles" FCFLAGS="" FEATURES="assume-digests binpkg-logs case-insensitive-fs collision-protect config-protect-if-modified distlocks ebuild-locks fixlafiles force-prefix merge-sync news nostrip parallel-fetch preserve-libs protect-owned sfperms strict unknown-features-warn unmerge-logs unmerge-orphans unprivileged" FFLAGS="" GENTOO_MIRRORS="http://distfiles.gentoo.org" LANG="en_US.UTF-8" LDFLAGS="-Wl,-dead_strip_dylibs" MAKEOPTS="-j3" PKGDIR="/Users/shunsuke_shimizu/Gentoo/usr/portage/packages" PORTAGE_CONFIGROOT="/Users/shunsuke_shimizu/Gentoo/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git" PORTAGE_TMPDIR="/Users/shunsuke_shimizu/Gentoo/var/tmp" USE="aqua coreaudio cracklib cxx ipv6 modules ncurses nls objc objc++ prefix prefix-guest readline ssl unicode x64-macos zlib" ABI_X86="64" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext sse sse2" ELIBC="Darwin" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="keyboard mouse" KERNEL="Darwin" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-6" PYTHON_SINGLE_TARGET="python3_4" PYTHON_TARGETS="python2_7 python3_5" RUBY_TARGETS="ruby21 ruby22" USERLAND="GNU" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Created attachment 473826 [details, diff] Patch to check the existence of sys/stropts.h Applying this patch makes build succeeding.
The patch is a bit questionable, but matches the assumptions in the code, which sort of compensates. Did you try to submit this patch upstream by chance?
a simple export vi_cv_sys5_pty=no works too, so I committed that for the moment to the ebuild.
(In reply to Fabian Groffen from comment #3) > a simple export vi_cv_sys5_pty=no works too, so I committed that for the > moment to the ebuild. Thanks for your quick fix! Solaris might requires vi_cv_sys5_pty, but I'm not sure. (In reply to Fabian Groffen from comment #2) > The patch is a bit questionable, but matches the assumptions in the code, > which sort of compensates. Did you try to submit this patch upstream by > chance? I believe the upstream is not maintained, as the last release is 10 years ago. So I didn't try to send the patch.
(In reply to Shunsuke Shimizu from comment #4) > (In reply to Fabian Groffen from comment #3) > > a simple export vi_cv_sys5_pty=no works too, so I committed that for the > > moment to the ebuild. > > Thanks for your quick fix! > Solaris might requires vi_cv_sys5_pty, but I'm not sure. I only applied the export for darwin, so it shouldn't affect any other platform.