summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README12
-rw-r--r--configure.ac3
-rw-r--r--login-utils/Makefile.am4
-rw-r--r--misc-utils/Makefile.am1
-rw-r--r--mount/Makefile.am2
5 files changed, 22 insertions, 0 deletions
diff --git a/README b/README
index 9b3cdea6a..ff49b3e60 100644
--- a/README
+++ b/README
@@ -48,3 +48,15 @@ VERSION SCHEMA:
suffix = "devel" or "rc<N>"
+COMPILATION:
+
+ See the INSTALL file for more details.
+
+ Notes:
+ * use SUID_CFLAGS when you want to define special compiler options
+ for typical suid programs, for example:
+
+ SUID_CFLAGS="-fpic" ./configure
+
+ Now this feature is supported for chfn, chsh, newgrp, write,
+ mount and umount.
diff --git a/configure.ac b/configure.ac
index 66e88df8b..d24ce0995 100644
--- a/configure.ac
+++ b/configure.ac
@@ -398,6 +398,9 @@ if test x$enable_use_tty_group = xyes; then
AC_DEFINE(USE_TTY_GROUP, 1, [Should wall and write be installed setgid tty?])
fi
+
+AC_SUBST([SUID_CFLAGS])
+
CPPFLAGS="-fsigned-char -fomit-frame-pointer $CPPFLAGS"
LIBS=""
diff --git a/login-utils/Makefile.am b/login-utils/Makefile.am
index 404b7987f..74aa29ea3 100644
--- a/login-utils/Makefile.am
+++ b/login-utils/Makefile.am
@@ -51,6 +51,10 @@ login_LDADD = ../lib/libsetproctitle.a
newgrp_LDADD =
vipw_LDADD =
+chfn_CFLAGS = $(SUID_CFLAGS)
+chsh_CFLAGS = $(SUID_CFLAGS)
+newgrp_CFLAGS = $(SUID_CFLAGS)
+
if NEED_LIBCRYPT
chfn_LDADD += -lcrypt
chsh_LDADD += -lcrypt
diff --git a/misc-utils/Makefile.am b/misc-utils/Makefile.am
index 5ccb76da6..461344d16 100644
--- a/misc-utils/Makefile.am
+++ b/misc-utils/Makefile.am
@@ -64,6 +64,7 @@ if BUILD_WRITE
usrbinexec_PROGRAMS += write
man_MANS += write.1
+write_CFLAGS = $(SUID_CFLAGS)
if USE_TTY_GROUP
install-exec-hook::
diff --git a/mount/Makefile.am b/mount/Makefile.am
index f34fc83b9..6f0d403d9 100644
--- a/mount/Makefile.am
+++ b/mount/Makefile.am
@@ -22,6 +22,7 @@ mount_SOURCES = mount.c fstab.c sundries.c xmalloc.c realpath.c mount_mntent.c \
$(MNTHDRS)
mount_LDADD = $(top_srcdir)/lib/libenv.a $(top_srcdir)/lib/libsetproctitle.a
+mount_CFLAGS = $(SUID_CFLAGS)
umount_SOURCES = umount.c fstab.c sundries.c xmalloc.c realpath.c mount_mntent.c \
getusername.c get_label_uuid.c mount_by_label.c mount_blkid.c \
@@ -29,6 +30,7 @@ umount_SOURCES = umount.c fstab.c sundries.c xmalloc.c realpath.c mount_mntent.c
$(MNTHDRS)
umount_LDADD = $(top_srcdir)/lib/libenv.a
+umount_CFLAGS = $(SUID_CFLAGS)
swapon_SOURCES = swapon.c xmalloc.c \
get_label_uuid.c mount_by_label.c mount_blkid.c \