This is related to my previous mail on groups and permissions of gnu/usr.bin/cc. include/Makefile does a recursive chown and sets permissions of the headers and directories explicitly, but installs some more headers afterward.
Let's move the chown and chmod to later. I changed chmod -R to chmod -RP to set the owner and group of symlinks explicitly (the symlinks point to files under /usr/include, so these files got chowned twice). Set the permissions of the symlinks explicitly in the second find command since those are subject to the umask. Index: include/Makefile =================================================================== RCS file: /var/cvs/src/include/Makefile,v retrieving revision 1.214 diff -u -p -r1.214 Makefile --- include/Makefile 16 Oct 2016 19:28:44 -0000 1.214 +++ include/Makefile 8 Nov 2016 11:34:19 -0000 @@ -92,15 +92,15 @@ includes: rm -f ${DESTDIR}/usr/include/$$i && \ ln -s machine/$$i ${DESTDIR}/usr/include/$$i; \ done - chown -R ${BINOWN}:${BINGRP} ${DESTDIR}/usr/include - find ${DESTDIR}/usr/include -type f -print0 | \ - xargs -0r chmod a=r - find ${DESTDIR}/usr/include -type d -print0 | \ - xargs -0r chmod u=rwx,go=rx @for i in ${RDIRS}; do \ echo installing in ${.CURDIR}/$$i; \ cd ${.CURDIR}/$$i && ${RUN_MAKE}; \ done + chown -RP ${BINOWN}:${BINGRP} ${DESTDIR}/usr/include + find ${DESTDIR}/usr/include -type f -print0 | \ + xargs -0r chmod a=r + find ${DESTDIR}/usr/include \( -type d -o -type l \) -print0 | \ + xargs -0r chmod -h u=rwx,go=rx copies: @echo copies: ${LDIRS}