A recent 10.2-STABLE no longer builds on a no-exec /usr/src file system

Mark Martinec Mark.Martinec+freebsd at ijs.si
Thu Nov 26 18:32:02 UTC 2015


Up to about a week ago building world on FreeBSD 10.2-STABLE went
just fine. Today after svn update the build fails:


# make buildworld
[...]

CC='cc ' mkdep -f .depend.getprotoent_test -a    
-I/usr/src/lib/libc/tests/net -I/usr/src/lib/libnetbsd 
-I/usr/src/contrib/netbsd-tests -std=gnu99   
/usr/src/contrib/netbsd-tests/lib/libc/net/t_getprotoent.c
echo getprotoent_test: /usr/obj/usr/src/tmp/usr/lib/libc.a  
/usr/obj/usr/src/tmp/usr/lib/private/libatf-c.a >> 
.depend.getprotoent_test
(cd /usr/src/lib/libc/tests/net && make -f 
/usr/src/lib/libc/tests/net/Makefile _RECURSING_PROGS=  SUBDIR= 
PROG=ether_aton_test  DEPENDFILE=.depend.ether_aton_test 
.MAKE.DEPENDFILE=.depend.ether_aton_test   depend)
/usr/src/contrib/netbsd-tests/lib/libc/net/gen_ether_subr 
/usr/src/sys/net/if_ethersubr.c aton_ether_subr.c
make[7]: exec(/usr/src/contrib/netbsd-tests/lib/libc/net/gen_ether_subr) 
failed (Permission denied)
*** Error code 1

Stop.
make[7]: stopped in /usr/src/lib/libc/tests/net
*** Error code 1


It turns out that our file system /usr/src had an "exec" flag
turned off, so now running a command:
   /usr/src/contrib/netbsd-tests/lib/libc/net/gen_ether_subr
fails with "Permission denied".

It would be valuable if building a system on an exec-protected
src file system would continue to be possible.

Not sure if the 
/usr/src/contrib/netbsd-tests/lib/libc/net/gen_ether_subr
is the only such new command breaking the build. Anyway, a simple
workaround is to run shell from a command line instead of as a
shebang, i.e.:

   # /bin/sh /usr/src/contrib/netbsd-tests/lib/libc/net/gen_ether_subr

instead of:

   # /usr/src/contrib/netbsd-tests/lib/libc/net/gen_ether_subr



Mark


More information about the freebsd-stable mailing list