Use paxctl on NetBSD to allow PROT_WRITE|PROT_EXEC.
authorTaylor R Campbell <campbell@mumble.net>
Sun, 25 Aug 2019 20:27:53 +0000 (20:27 +0000)
committerTaylor R Campbell <campbell@mumble.net>
Mon, 26 Aug 2019 03:22:44 +0000 (03:22 +0000)
src/microcode/configure.ac
src/microcode/makegen/Makefile.in.in

index 6f6ce125f155a4bb783cdbb0d5069e31cbeb6c6d..4664ad85bfc39a9a50b03803c02afda40902a0d9 100644 (file)
@@ -204,6 +204,16 @@ AC_PROG_INSTALL
 AC_PROG_LN_S
 AC_PROG_MAKE_SET
 
+case $host_os in
+netbsd*)
+    AC_CHECK_TOOL([PAXCTL], [paxctl], [:])
+    ;;
+*)
+    PAXCTL=:
+    AC_SUBST([PAXCTL])
+    ;;
+esac
+
 : ${HOST_CC:=${CC}}
 
 if test x"${GCC}" = xyes; then
index 0b19ba0e3c1b0ff6ad8839d42f0528bf3c512499..5e19bb008b4528c88ba5604c7afa740c6c27ff7a 100644 (file)
@@ -75,6 +75,7 @@ M4 = $(srcdir)/makegen/m4.sh @M4@
 AS = @AS@
 TAR = tar
 GZIP_ENV = --best
+PAXCTL = @PAXCTL@
 
 DEFS = @DEFS@ @SCHEME_DEFS@ -DDEFAULT_LIBRARY_PATH=\"$(AUXDIR)\"
 CFLAGS = @CFLAGS@
@@ -86,6 +87,7 @@ AS_FLAGS = @AS_FLAGS@
 
 COMPILE = $(CC) $(DEFS) $(CPPFLAGS) $(CFLAGS)
 LINK = $(CCLD) $(LDFLAGS) -o $@
+LINKTMP = $(CCLD) $(LDFLAGS) -o $@.tmp
 EXPAND = $(M4) $(M4_FLAGS)
 ASSEMBLE = $(AS) $(AS_FLAGS)
 
@@ -165,7 +167,9 @@ all: $(ALL_PROGRAMS) $(ALL_LIBS) $(ALL_DATA)
 
 scheme: $(scheme_OBJECTS) $(scheme_DEPENDENCIES)
        -rm -f $@
-       $(LINK) $(scheme_LDFLAGS) $(scheme_OBJECTS) $(scheme_LIBS)
+       $(LINKTMP) $(scheme_LDFLAGS) $(scheme_OBJECTS) $(scheme_LIBS)
+       $(PAXCTL) +m $@.tmp
+       mv -f $@.tmp $@
 
 usrdef.c: $(STD_SOURCES) findprim Makefile
        -rm -f $@.tmp