From: Todd C. Miller Date: Mon, 14 Nov 2016 18:04:29 +0000 (-0700) Subject: Unbreak sudo_noexec on macOS where shared libraries and dynamic X-Git-Tag: SUDO_1_8_19^2~43 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=068f96a213a246458529239c4484415d0d805525;p=sudo Unbreak sudo_noexec on macOS where shared libraries and dynamic modules are different. We still want to install sudo_noexec.so without the "lib" prefix so some hackery is required. --- diff --git a/src/Makefile.in b/src/Makefile.in index beb5ce7af..bcc968ad8 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -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)