Created attachment 2290 [details] Performs an explicit check for sys/un.h with the appropriate #includes. I freely confess that this is one of the most bizarre things I have ever seen. Android's sys/un.h header uses sa_family_t in the sockaddr_un struct but neither defines it nor includes a header that does. This leads to the following warning when running ./configure: configure: WARNING: sys/un.h: present but cannot be compiled configure: WARNING: sys/un.h: check for missing prerequisite headers? configure: WARNING: sys/un.h: see the Autoconf documentation configure: WARNING: sys/un.h: section "Present But Cannot Be Compiled" configure: WARNING: sys/un.h: proceeding with the compiler's result configure: WARNING: ## ------------------------------------------- ## configure: WARNING: ## Report this to openssh-unix-dev@mindrot.org ## configure: WARNING: ## ------------------------------------------- ## Thankfully this struct is defined in sys/socket.h. I have attached a patch that explicitly runs AC_CHECK_HEADERS with the appropriate parameters to ensure sys/un.h is detected properly. No actual source code needed to be modified.
(In reply to Nathan Osman from comment #0) > I freely confess that this is one of the most bizarre things I have > ever seen. It's actually common on older platforms. That header (plus some of the netinet ones) neither include what they need nor protect themselves from being included multiple times which makes them a pain to use. Autoconf never used to care, but a couple of years ago that warning was added. Added to the list.
Applied, thanks.
Set all RESOLVED bugs to CLOSED with release of OpenSSH 7.1