diff --git a/README b/README index 9b3cdea6a..ff49b3e60 100644 --- a/README +++ b/README @@ -48,3 +48,15 @@ VERSION SCHEMA: suffix = "devel" or "rc" +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 \