]> granicus.if.org Git - sudo/commitdiff
Unbreak sudo_noexec on macOS where shared libraries and dynamic
authorTodd C. Miller <Todd.Miller@courtesan.com>
Mon, 14 Nov 2016 18:04:29 +0000 (11:04 -0700)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Mon, 14 Nov 2016 18:04:29 +0000 (11:04 -0700)
modules are different.  We still want to install sudo_noexec.so
without the "lib" prefix so some hackery is required.

src/Makefile.in

index beb5ce7afadd5ade2171b32b25daac6aa4209d19..bcc968ad84b9524c51706d2033e68aaa13249725 100644 (file)
@@ -142,8 +142,15 @@ Makefile: $(srcdir)/Makefile.in
 sudo: $(OBJS) $(LT_LIBS) @STATIC_SUDOERS@
        $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) -o $@ $(OBJS) $(SUDO_LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) $(LIBS) @STATIC_SUDOERS@
 
-sudo_noexec.la: sudo_noexec.lo
-       $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LDFLAGS) $(LT_LDFLAGS) $(SSP_LDFLAGS) @LIBDL@ -o $@ sudo_noexec.lo -module -avoid-version -rpath $(noexecdir) -shrext .so
+# We can't use -module here since you cannot preload a module on Darwin
+libsudo_noexec.la: sudo_noexec.lo
+       $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LDFLAGS) $(LT_LDFLAGS) $(SSP_LDFLAGS) @LIBDL@ -o $@ sudo_noexec.lo -avoid-version -rpath $(noexecdir) -shrext .so
+
+# Some hackery is required to install this as sudo_noexec, not libsudo_noexec
+sudo_noexec.la: libsudo_noexec.la
+       sed 's/libsudo_noexec/sudo_noexec/g' libsudo_noexec.la > sudo_noexec.la
+       if test -f .libs/libsudo_noexec.lai; then sed 's/libsudo_noexec/sudo_noexec/g' .libs/libsudo_noexec.lai > .libs/sudo_noexec.lai; fi
+       cp -p .libs/libsudo_noexec.so .libs/sudo_noexec.so
 
 sesh: $(SESH_OBJS) $(LT_LIBS)
        $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) -o $@ $(SESH_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) $(LIBS)