mirror of
https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
synced 2024-12-18 14:30:44 +08:00
c1986ecb6f
The Build Log Hardening Check is a debian tool which scans the output of a package build making sure that the security hardening flags are used when compiling and linking all of binaries in a package. For the most part we were passing CFLAGS, CPPFLAGS, and LDFLAGS down to the compiler and link commands, but there there were one or two exceptions. In addition, there where a few places in "make install" where the V=1 option was not being honored, which triggered blhc warnings since it couldn't analyze those commands. The e2fsck.static was the only binary that was not getting built and packaged with the hardening flags, but I've fixed all of the blhc warnings so in the future it will be obvious if we regress. Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
267 lines
7.7 KiB
Plaintext
267 lines
7.7 KiB
Plaintext
# Beginning of file MCONFIG
|
|
|
|
all::
|
|
|
|
check::
|
|
|
|
SHELL = /bin/sh
|
|
|
|
COMPRESS_EXT = gz bz2 bz Z
|
|
|
|
prefix = @prefix@
|
|
root_prefix = @root_prefix@
|
|
exec_prefix = @exec_prefix@
|
|
root_bindir = @root_bindir@
|
|
root_sbindir = @root_sbindir@
|
|
root_libdir = @root_libdir@
|
|
datarootdir = @datarootdir@
|
|
bindir = @bindir@
|
|
sbindir = @sbindir@
|
|
libdir = @libdir@
|
|
datadir= @datadir@
|
|
localedir = $(datadir)/locale
|
|
root_sysconfdir= @root_sysconfdir@
|
|
includedir = @includedir@
|
|
mandir = @mandir@
|
|
man1dir = $(mandir)/man1
|
|
man3dir = $(mandir)/man3
|
|
man5dir = $(mandir)/man5
|
|
man8dir = $(mandir)/man8
|
|
infodir = @infodir@
|
|
datadir = @datadir@
|
|
|
|
@SET_MAKE@
|
|
|
|
@ifGNUmake@ V =
|
|
@ifGNUmake@ ifeq ($(strip $(V)),)
|
|
@ifGNUmake@ # E = @echo
|
|
@ifGNUmake@ # ES = echo
|
|
@ifGNUmake@ # Q = @
|
|
@ifGNUmake@ E = @E@
|
|
@ifGNUmake@ ES = @ES@
|
|
@ifGNUmake@ Q = @Q@
|
|
@ifGNUmake@ else
|
|
@ifGNUmake@ E = @\#
|
|
@ifGNUmake@ ES = \#
|
|
@ifGNUmake@ Q =
|
|
@ifGNUmake@ endif
|
|
|
|
@ifNotGNUmake@ E = @E@
|
|
@ifNotGNUmake@ ES = @ES@
|
|
@ifNotGNUmake@ Q = @Q@
|
|
|
|
CC = @CC@
|
|
BUILD_CC = @BUILD_CC@
|
|
CFLAGS = @CFLAGS@
|
|
CPPFLAGS = @INCLUDES@
|
|
ALL_CFLAGS = $(CPPFLAGS) $(CFLAGS)
|
|
LDFLAGS = @LDFLAGS@
|
|
ALL_LDFLAGS = $(LDFLAGS) @LDFLAG_DYNAMIC@
|
|
LDFLAGS_STATIC = $(LDFLAGS) @LDFLAG_STATIC@
|
|
BUILD_CFLAGS = @BUILD_CFLAGS@
|
|
BUILD_LDFLAGS = @BUILD_LDFLAGS@
|
|
RDYNAMIC = @RDYNAMIC@
|
|
LINK_BUILD_FLAGS = @LINK_BUILD_FLAGS@
|
|
LINK_INSTALL_FLAGS = @LINK_INSTALL_FLAGS@
|
|
RM = @RM@
|
|
LN = @LN@
|
|
LN_S = @LN_S@
|
|
MV = @MV@
|
|
CP = @CP@
|
|
CHMOD = @CHMOD@
|
|
AR = @AR@
|
|
AWK = @AWK@
|
|
SED = @SED@
|
|
PERL = @PERL@
|
|
RANLIB = @RANLIB@
|
|
STRIP = @STRIP@
|
|
LD = $(PURE) @CC@
|
|
ARUPD = $(AR) r
|
|
ARGEN = $(AR) rc
|
|
LDCONFIG = @LDCONFIG@
|
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
|
INSTALL_DATA = @INSTALL_DATA@
|
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
|
MKINSTALLDIRS = @MKINSTALLDIRS@
|
|
|
|
#
|
|
# Library definitions
|
|
#
|
|
LIB = $(top_builddir)/lib
|
|
LIBSS = $(LIB)/libss@LIB_EXT@ @PRIVATE_LIBS_CMT@ @DLOPEN_LIB@
|
|
LIBCOM_ERR = $(LIB)/libcom_err@LIB_EXT@ @PRIVATE_LIBS_CMT@ @SEM_INIT_LIB@
|
|
LIBE2P = $(LIB)/libe2p@LIB_EXT@
|
|
LIBEXT2FS = $(LIB)/libext2fs@LIB_EXT@
|
|
LIBUUID = @LIBUUID@ @SOCKET_LIB@
|
|
LIBQUOTA = @STATIC_LIBQUOTA@
|
|
LIBBLKID = @LIBBLKID@ @PRIVATE_LIBS_CMT@ $(LIBUUID)
|
|
LIBINTL = @LIBINTL@
|
|
DEPLIBSS = $(LIB)/libss@LIB_EXT@
|
|
DEPLIBCOM_ERR = $(LIB)/libcom_err@LIB_EXT@
|
|
DEPLIBUUID = @DEPLIBUUID@
|
|
DEPLIBQUOTA = @DEPSTATIC_LIBQUOTA@
|
|
DEPLIBBLKID = @DEPLIBBLKID@ @PRIVATE_LIBS_CMT@ $(DEPLIBUUID)
|
|
|
|
STATIC_LIBSS = $(LIB)/libss@STATIC_LIB_EXT@ @DLOPEN_LIB@
|
|
STATIC_LIBCOM_ERR = $(LIB)/libcom_err@STATIC_LIB_EXT@ @SEM_INIT_LIB@
|
|
STATIC_LIBE2P = $(LIB)/libe2p@STATIC_LIB_EXT@
|
|
STATIC_LIBEXT2FS = $(LIB)/libext2fs@STATIC_LIB_EXT@
|
|
STATIC_LIBUUID = @STATIC_LIBUUID@ @SOCKET_LIB@
|
|
STATIC_LIBQUOTA = @STATIC_LIBQUOTA@
|
|
STATIC_LIBBLKID = @STATIC_LIBBLKID@ $(STATIC_LIBUUID)
|
|
DEPSTATIC_LIBSS = $(LIB)/libss@STATIC_LIB_EXT@
|
|
DEPSTATIC_LIBCOM_ERR = $(LIB)/libcom_err@STATIC_LIB_EXT@
|
|
DEPSTATIC_LIBUUID = @DEPSTATIC_LIBUUID@
|
|
DEPSTATIC_LIBQUOTA = @DEPSTATIC_LIBQUOTA@
|
|
DEPSTATIC_LIBBLKID = @DEPSTATIC_LIBBLKID@ $(DEPSTATIC_LIBUUID)
|
|
|
|
PROFILED_LIBSS = $(LIB)/libss@PROFILED_LIB_EXT@ @DLOPEN_LIB@
|
|
PROFILED_LIBCOM_ERR = $(LIB)/libcom_err@PROFILED_LIB_EXT@ @SEM_INIT_LIB@
|
|
PROFILED_LIBE2P = $(LIB)/libe2p@PROFILED_LIB_EXT@
|
|
PROFILED_LIBEXT2FS = $(LIB)/libext2fs@PROFILED_LIB_EXT@
|
|
PROFILED_LIBUUID = @PROFILED_LIBUUID@ @SOCKET_LIB@
|
|
PROFILED_LIBQUOTA = @PROFILED_LIBQUOTA@
|
|
PROFILED_LIBBLKID = @PROFILED_LIBBLKID@ $(PROFILED_LIBUUID)
|
|
DEPPROFILED_LIBSS = $(LIB)/libss@PROFILED_LIB_EXT@
|
|
DEPPROFILED_LIBCOM_ERR = $(LIB)/libcom_err@PROFILED_LIB_EXT@
|
|
DEPPROFILED_LIBUUID = @PROFILED_LIBUUID@
|
|
DEPPROFILED_LIBQUOTA = @PROFILED_LIBQUOTA@
|
|
DEPPROFILED_LIBBLKID = @PROFILED_LIBBLKID@ $(DEPPROFILED_LIBUUID)
|
|
|
|
#
|
|
# A fast substitution command for fixing up man pages, shell scripts, etc.
|
|
#
|
|
SUBST_CONF=$(top_builddir)/util/subst.conf
|
|
SUBSTITUTE= $(top_builddir)/util/subst -f $(SUBST_CONF)
|
|
SUBSTITUTE_UPTIME= $(top_builddir)/util/subst -t -f $(SUBST_CONF)
|
|
DEP_SUBSTITUTE= $(top_builddir)/util/subst $(SUBST_CONF)
|
|
|
|
$(top_builddir)/util/subst:
|
|
cd $(top_builddir)/util ; $(MAKE) subst
|
|
|
|
#
|
|
# Script for installing symlinks (for shared libraries)
|
|
#
|
|
$(top_builddir)/util/install-symlink: $(top_srcdir)/util/install-symlink.in \
|
|
$(top_builddir)/config.status
|
|
cd $(top_builddir); CONFIG_FILES=util/install-symlink ./config.status
|
|
chmod +x $(top_builddir)/util/install-symlink
|
|
|
|
$(top_builddir)/util/symlinks:
|
|
cd $(top_builddir)/util ; $(MAKE) symlinks
|
|
|
|
INSTALL_SYMLINK = /bin/sh $(top_builddir)/util/install-symlink \
|
|
@SYMLINK_RELATIVE@ \
|
|
--symlinks=$(top_builddir)/util/symlinks
|
|
DEP_INSTALL_SYMLINK = $(top_builddir)/util/install-symlink \
|
|
$(top_builddir)/util/symlinks
|
|
|
|
#
|
|
# Warning flags
|
|
#
|
|
# Run make gcc-wall to do a build with warning messages.
|
|
#
|
|
#
|
|
WFLAGS= -std=c99 -D_XOPEN_SOURCE=600 -D_GNU_SOURCE \
|
|
-pedantic $(WFLAGS_EXTRA) \
|
|
-Wall -W -Wwrite-strings -Wpointer-arith \
|
|
-Wcast-qual -Wcast-align -Wno-variadic-macros \
|
|
-Wstrict-prototypes -Wmissing-prototypes \
|
|
-Wformat-security -Wformat-nonliteral \
|
|
-Wmissing-format-attribute -O2 -Wstrict-aliasing \
|
|
-Wnested-externs -Winline -DNO_INLINE_FUNCS -Wshadow \
|
|
-UENABLE_NLS
|
|
|
|
gcc-wall-new:
|
|
(make CFLAGS="@CFLAGS@ $(WFLAGS)" > /dev/null) 2>&1 | sed -f $(top_srcdir)/util/gcc-wall-cleanup
|
|
|
|
gcc-wall:
|
|
make clean > /dev/null
|
|
make gcc-wall-new
|
|
|
|
#
|
|
# Installation user and groups
|
|
#
|
|
BINGRP= bin
|
|
BINOWN= bin
|
|
BINMODE= 555
|
|
INCGRP= bin
|
|
INCOWN= bin
|
|
INCMODE= 444
|
|
LIBOWN= bin
|
|
LIBGRP= bin
|
|
LIBMODE= 444
|
|
MANGRP= bin
|
|
MANOWN= bin
|
|
MANMODE= 444
|
|
|
|
#
|
|
# Autoconf magic...
|
|
#
|
|
|
|
DEP_LIB_MAKEFILES = $(top_srcdir)/lib/Makefile.library \
|
|
$(top_srcdir)/lib/Makefile.elf-lib \
|
|
$(top_srcdir)/lib/Makefile.bsd-lib $(top_srcdir)/lib/Makefile.darwin-lib \
|
|
$(top_srcdir)/lib/Makefile.solaris-lib $(top_srcdir)/lib/Makefile.checker \
|
|
$(top_srcdir)/lib/Makefile.profile
|
|
|
|
$(top_builddir)/config.status: $(top_srcdir)/configure
|
|
cd $(top_builddir); ./config.status --recheck
|
|
|
|
$(top_builddir)/MCONFIG: $(top_srcdir)/MCONFIG.in $(top_builddir)/config.status
|
|
cd $(top_builddir); CONFIG_FILES=MCONFIG ./config.status
|
|
|
|
$(top_builddir)/lib/config.h: $(top_srcdir)/lib/config.h.in \
|
|
$(top_builddir)/config.status
|
|
cd $(top_builddir); CONFIG_FILES=lib/config.h ./config.status
|
|
|
|
$(top_builddir)/lib/dirpaths.h: $(DEP_SUBSTITUTE) $(top_srcdir)/lib/dirpaths.h.in
|
|
$(E) " SUBST $@"
|
|
$(Q) $(SUBSTITUTE) $(top_srcdir)/lib/dirpaths.h.in $@
|
|
|
|
$(top_builddir)/lib/substitute_sh: $(top_srcdir)/lib/substitute_sh.in \
|
|
$(top_builddir)/config.status
|
|
cd $(top_builddir); CONFIG_FILES=lib/substitute_sh ./config.status
|
|
|
|
$(top_builddir)/util/subst.conf: $(top_srcdir)/util/subst.conf.in \
|
|
$(top_builddir)/config.status
|
|
cd $(top_builddir); CONFIG_FILES=util/subst.conf ./config.status
|
|
|
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/MCONFIG \
|
|
$(DEP_MAKEFILE) $(top_builddir)/config.status
|
|
cd $(top_builddir); CONFIG_FILES=$(my_dir)/Makefile ./config.status
|
|
|
|
@MAINTAINER_CMT@$(top_srcdir)/configure: $(top_srcdir)/configure.in
|
|
@MAINTAINER_CMT@ cd $(top_srcdir) && autoheader && autoconf
|
|
|
|
#
|
|
# Make depend magic...
|
|
#
|
|
|
|
.depend: Makefile $(SRCS) $(top_srcdir)/depfix.sed $(top_srcdir)/wordwrap.pl
|
|
if test -n "$(SRCS)" ; then \
|
|
$(CC) -M $(ALL_CFLAGS) $(SRCS) | \
|
|
$(SED) -f $(top_srcdir)/depfix.sed \
|
|
-e 's; $(srcdir)/; $$(srcdir)/;g' \
|
|
-e 's; $(top_srcdir)/; $$(top_srcdir)/;g' \
|
|
-e 's; $(top_builddir)/; $$(top_builddir)/;g' \
|
|
-e 's; \./; ;g' \
|
|
-e '/^#/d' \
|
|
-e '/^ *\\$$/d' | \
|
|
$(PERL) $(top_srcdir)/wordwrap.pl > .depend; \
|
|
else :; fi
|
|
|
|
depend:: .depend
|
|
if test -n "$(SRCS)" ; then \
|
|
sed -e '/^# +++ Dependency line eater +++/,$$d' \
|
|
< $(srcdir)/Makefile.in | cat - .depend \
|
|
> $(srcdir)/Makefile.in.new; \
|
|
if cmp -s $(srcdir)/Makefile.in $(srcdir)/Makefile.in.new ; then \
|
|
$(RM) $(srcdir)/Makefile.in.new ; \
|
|
else \
|
|
$(MV) $(srcdir)/Makefile.in $(srcdir)/Makefile.in.old; \
|
|
$(MV) $(srcdir)/Makefile.in.new $(srcdir)/Makefile.in; \
|
|
fi ; else :; fi
|
|
|
|
# End of file MCONFIG
|