build-sys: add CFLAGS and LDFLAGS for daemons and shared libs

This is necessary for paranoid security guys who believe that things
like "-Wl,-z,relro" or "-Wl,-z,bind_now" is a way how to make the
world a safer place...

Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
Karel Zak 2013-08-27 10:02:04 +02:00
parent ef2c9e3f5e
commit 03d00d495f
6 changed files with 27 additions and 7 deletions

View File

@ -27,12 +27,12 @@ Compiling
The SUID_* feature is currently supported for chfn, chsh,
newgrp, su, write, mount, and umount.
Preferred compilation options for developers, when
using gcc, are:
Use DAEMON_CFLAGS and DAEMON_LDFLAGS when you want to define
special compiler options for daemons; supported for uuidd.
export CFLAGS="-Wmissing-parameter-type -Wsign-compare
-Wtype-limits -Wuninitialized -Wunused-parameter
-Wunused-but-set-parameter -fno-common"
Use SOLIB_CFLAGS and SOLIB_LDFLAGS when you want to define
special compiler options for shared libraries; supported for
libmount, libblkid and libuuid.
FIXME: add notes about klib and uClib.

View File

@ -1473,6 +1473,16 @@ AC_ARG_VAR([SUID_CFLAGS],
AC_ARG_VAR([SUID_LDFLAGS],
[LDFLAGS used for binaries which are usually with the suid bit])
AC_ARG_VAR([DAEMON_CFLAGS],
[CFLAGS used for binaries which are usually executed as daemons])
AC_ARG_VAR([DAEMON_LDFLAGS],
[LDFLAGS used for binaries which are usually executed as daemons])
AC_ARG_VAR([SOLIB_CFLAGS],
[CFLAGS used for shared libraries])
AC_ARG_VAR([SOLIB_LDFLAGS],
[LDFLAGS used for shared libraries])
LIBS=""

View File

@ -113,6 +113,7 @@ libblkid_la_LIBADD = libcommon.la
libblkid_la_CFLAGS = \
$(SOLIB_CFLAGS) \
-I$(ul_libblkid_incdir) \
-I$(top_srcdir)/libblkid/src
@ -128,6 +129,7 @@ libblkid_la_DEPENDENCIES = \
libblkid/src/blkid.h.in
libblkid_la_LDFLAGS = \
$(SOLIB_LDFLAGS) \
-Wl,--version-script=$(top_srcdir)/libblkid/src/blkid.sym \
-version-info $(LIBBLKID_VERSION_INFO)

View File

@ -33,6 +33,7 @@ nodist_libmount_la_SOURCES = libmount/src/mountP.h
libmount_la_LIBADD = libcommon.la libblkid.la $(SELINUX_LIBS)
libmount_la_CFLAGS = \
$(SOLIB_CFLAGS) \
-I$(ul_libblkid_incdir) \
-I$(ul_libmount_incdir) \
-I$(top_srcdir)/libmount/src
@ -43,6 +44,7 @@ libmount_la_DEPENDENCIES = \
libmount/src/libmount.h.in
libmount_la_LDFLAGS = \
$(SOLIB_LDFLAGS) \
-Wl,--version-script=$(top_srcdir)/libmount/src/libmount.sym \
-version-info $(LIBMOUNT_VERSION_INFO)

View File

@ -29,9 +29,14 @@ libuuid_la_SOURCES = \
libuuid_la_DEPENDENCIES = libuuid/src/uuid.sym
libuuid_la_LIBADD = $(SOCKET_LIBS)
libuuid_la_CFLAGS = -I$(ul_libuuid_incdir) -Ilibuuid/src
libuuid_la_CFLAGS = \
$(SOLIB_CFLAGS) \
-I$(ul_libuuid_incdir) \
-Ilibuuid/src
libuuid_la_LDFLAGS = \
$(SOLIB_LDFLAGS) \
-Wl,--version-script=$(top_srcdir)/libuuid/src/uuid.sym \
-version-info $(LIBUUID_VERSION_INFO)

View File

@ -77,7 +77,8 @@ if BUILD_UUIDD
usrsbin_exec_PROGRAMS += uuidd
dist_man_MANS += misc-utils/uuidd.8
uuidd_LDADD = $(LDADD) libuuid.la libcommon.la
uuidd_CFLAGS = $(AM_CFLAGS) -I$(ul_libuuid_incdir)
uuidd_CFLAGS = $(DAEMON_CFLAGS) $(AM_CFLAGS) -I$(ul_libuuid_incdir)
uuidd_LDFLAGS = $(DAEMON_LDFLAGS) $(AM_LDFLAGS)
uuidd_SOURCES = misc-utils/uuidd.c
if USE_SOCKET_ACTIVATION
uuidd_SOURCES += misc-utils/sd-daemon.c misc-utils/sd-daemon.h