]> git.ipfire.org Git - thirdparty/e2fsprogs.git/commitdiff
Add --enable-hardening which builds e2fsprogs with security hardening
authorTheodore Ts'o <tytso@mit.edu>
Sun, 22 May 2016 03:51:19 +0000 (23:51 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Sun, 22 May 2016 05:58:09 +0000 (01:58 -0400)
Enable the following security features: stack protection, fortify,
read-only relocation tables, immediate dynamic symbol binding, and
text segment ASLR by enabling position independent executable
(PIE).

Special handling is provided for shared library and statically linked
executables.  For all the gory details please see:

   https://lists.debian.org/debian-devel/2016/05/msg00302.html

Distributions who want to do their own special thing can set CFLAGS,
CFLAGS_SHLIB, CLFAGS_STLIB, LDFLAGS, LDFLAGS_SHLIB and LDFLAGS_STATIC
as appropriate.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
14 files changed:
MCONFIG.in
configure
configure.ac
lib/Makefile.bsd-lib
lib/Makefile.elf-lib
lib/Makefile.solaris-lib
lib/blkid/Makefile.in
lib/e2p/Makefile.in
lib/et/Makefile.in
lib/ext2fs/Makefile.in
lib/ss/Makefile.in
lib/uuid/Makefile.in
misc/Makefile.in
resize/Makefile.in

index e15b85597956256f10007c7161788e1a17eb473f..db4b4ded5acd051e81ba9b8046ab5b02b9377282 100644 (file)
@@ -74,11 +74,16 @@ pkgconfigdir = $(libdir)/pkgconfig
 CC = @CC@
 BUILD_CC = @BUILD_CC@
 CFLAGS = @CFLAGS@
+CFLAGS_SHLIB = @CFLAGS_SHLIB@
+CFLAGS_STLIB = @CFLAGS_STLIB@
 CPPFLAGS = @INCLUDES@
 ALL_CFLAGS = $(CPPFLAGS) $(CFLAGS) @DEFS@ $(LOCAL_CFLAGS)
+ALL_CFLAGS_SHLIB = $(CPPFLAGS) $(CFLAGS_SHLIB) @DEFS@ $(LOCAL_CFLAGS)
+ALL_CFLAGS_STLIB = $(CPPFLAGS) $(CFLAGS_STLIB) @DEFS@ $(LOCAL_CFLAGS)
 LDFLAGS = @LDFLAGS@
+LDFLAGS_SHLIB = @LDFLAGS_SHLIB@
 ALL_LDFLAGS = $(LDFLAGS) @LDFLAG_DYNAMIC@
-LDFLAGS_STATIC = $(LDFLAGS) @LDFLAG_STATIC@
+LDFLAGS_STATIC = @LDFLAGS_STATIC@
 BUILD_CFLAGS = @BUILD_CFLAGS@
 BUILD_LDFLAGS = @BUILD_LDFLAGS@
 RDYNAMIC = @RDYNAMIC@
index 5a0839292d8567f303e7e8794bfb372f1259d694..3759c9c9dda3c27ebaddffb860b69522d57048d8 100755 (executable)
--- a/configure
+++ b/configure
@@ -625,6 +625,9 @@ gl_use_threads_default=
 ac_func_list=
 ac_subst_vars='LTLIBOBJS
 LIBOBJS
+LDFLAGS_SHLIB
+CFLAGS_STLIB
+CFLAGS_SHLIB
 BUILD_LDFLAGS
 BUILD_CFLAGS
 MKINSTALLDIRS
@@ -632,7 +635,7 @@ INCLUDES
 DO_TEST_SUITE
 ET_DIR
 SS_DIR
-LDFLAG_STATIC
+LDFLAGS_STATIC
 root_sysconfdir
 root_libdir
 root_sbindir
@@ -857,6 +860,7 @@ enable_elf_shlibs
 enable_bsd_shlibs
 enable_profile
 enable_gcov
+enable_hardening
 enable_jbd_debug
 enable_blkid_debug
 enable_testio_debug
@@ -1529,6 +1533,7 @@ Optional Features:
   --enable-bsd-shlibs    select BSD shared libraries
   --enable-profile       build profiling libraries
   --enable-gcov                  build for coverage testing using gcov
+  --enable-hardening             build for coverage testing using gcov
   --enable-jbd-debug     enable journal debugging
   --enable-blkid-debug    enable blkid debugging
   --disable-testio-debug  disable the use of the test I/O manager for debugging
@@ -5012,6 +5017,27 @@ fi
 
 fi
 
+CFLAGS_SHLIB="${CFLAGS_SHLIB:-$CFLAGS}"
+CFLAGS_STLIB="${CFLAGS_STLIB:-$CFLAGS}"
+LDFLAGS_SHLIB=${LDFLAGS_SHLIB:-$LDFLAGS}
+LDFLAGS_STATIC=${LDFLAGS_STATIC:-$LDFLAGS}
+# Check whether --enable-hardening was given.
+if test "${enable_hardening+set}" = set; then :
+  enableval=$enable_hardening; if test "$enableval" = "yes"
+then
+       HARDEN_CFLAGS="-D_FORTIFY_SOURCE=2 -fstack-protector-strong"
+       HARDEN_LDFLAGS="-Wl,-z,relro -Wl,-z,now"
+       CFLAGS="$CFLAGS $HARDEN_CFLAGS -fPIE"
+       CFLAGS_SHLIB="$CFLAGS_SHLIB $HARDEN_CFLAGS"
+       CFLAGS_STLIB="$CFLAGS_STLIB $HARDEN_CFLAGS -fPIE"
+       LDFLAGS="$LDFLAGS $HARDEN_LDFLAGS -fPIE -pie"
+       LDFLAGS_STATIC="$LDFLAGS_STATIC $HARDEN_LDFLAGS"
+       LDFLAGS_SHLIB="$LDFLAGS_SHLIB $HARDEN_LDFLAGS"
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling hardening support" >&5
+$as_echo "Enabling hardening support" >&6; }
+fi
+
+fi
 
 
 
@@ -13625,7 +13651,7 @@ $as_echo_n "checking whether we can link with -static... " >&6; }
 if ${ac_cv_e2fsprogs_use_static+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -static"
+  SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS_STATIC -static"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdio.h>
@@ -13654,9 +13680,8 @@ solaris2.*)
 esac
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_e2fsprogs_use_static" >&5
 $as_echo "$ac_cv_e2fsprogs_use_static" >&6; }
-LDFLAG_STATIC=
 if test $ac_cv_e2fsprogs_use_static = yes; then
-       LDFLAG_STATIC=-static
+       LDFLAGS_STATIC="$LDFLAGS_STATIC -static"
 fi
 
 case "$host_os" in
@@ -13708,6 +13733,12 @@ if test $cross_compiling = no; then
 fi
 
 
+CFLAGS_SHLIB=${CFLAGS_SHLIB:-$CFLAGS}
+CFLAGS_STLIB=${CFLAGS_STLIB:-$CFLAGS}
+LDFLAGS_SHLIB=${LDFLAGS_SHLIB:-$LDFLAGS}
+
+
+
 test -d lib || mkdir lib
 test -d include || mkdir include
 test -d include/linux || mkdir include/linux
index ceceeb6a15b250a669e9f7a143965657af235099..e8e0d68a94b29eeb0ea55204a5289b46d0dfba88 100644 (file)
@@ -355,7 +355,28 @@ then
        AC_MSG_RESULT([Enabling gcov support])
 fi
 )
-
+dnl
+dnl handle --enable-hardening
+dnl
+CFLAGS_SHLIB="${CFLAGS_SHLIB:-$CFLAGS}"
+CFLAGS_STLIB="${CFLAGS_STLIB:-$CFLAGS}"
+LDFLAGS_SHLIB=${LDFLAGS_SHLIB:-$LDFLAGS}
+LDFLAGS_STATIC=${LDFLAGS_STATIC:-$LDFLAGS}
+AC_ARG_ENABLE([hardening],
+[  --enable-hardening            build for coverage testing using gcov],
+if test "$enableval" = "yes"
+then
+       HARDEN_CFLAGS="-D_FORTIFY_SOURCE=2 -fstack-protector-strong"
+       HARDEN_LDFLAGS=["-Wl,-z,relro -Wl,-z,now"]
+       CFLAGS="$CFLAGS $HARDEN_CFLAGS -fPIE"
+       CFLAGS_SHLIB="$CFLAGS_SHLIB $HARDEN_CFLAGS"
+       CFLAGS_STLIB="$CFLAGS_STLIB $HARDEN_CFLAGS -fPIE"
+       LDFLAGS="$LDFLAGS $HARDEN_LDFLAGS -fPIE -pie"
+       LDFLAGS_STATIC="$LDFLAGS_STATIC $HARDEN_LDFLAGS"
+       LDFLAGS_SHLIB="$LDFLAGS_SHLIB $HARDEN_LDFLAGS"
+       AC_MSG_RESULT([Enabling hardening support])
+fi
+)
 dnl
 dnl Substitute library extensions
 dnl
@@ -1310,7 +1331,7 @@ dnl in static form.
 dnl
 AC_MSG_CHECKING([whether we can link with -static])
 AC_CACHE_VAL(ac_cv_e2fsprogs_use_static,
-[SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -static"
+[SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS_STATIC -static"
 AC_TRY_LINK([#include <stdio.h>],[fflush(stdout);],
  ac_cv_e2fsprogs_use_static=yes, ac_cv_e2fsprogs_use_static=no)
 LDFLAGS=$SAVE_LDFLAGS])
@@ -1327,11 +1348,10 @@ solaris2.*)
 ;;
 esac
 AC_MSG_RESULT($ac_cv_e2fsprogs_use_static)
-LDFLAG_STATIC=
 if test $ac_cv_e2fsprogs_use_static = yes; then
-       LDFLAG_STATIC=-static
+       LDFLAGS_STATIC="$LDFLAGS_STATIC -static"
 fi
-AC_SUBST(LDFLAG_STATIC)
+AC_SUBST(LDFLAGS_STATIC)
 dnl
 dnl Work around mysterious Darwin / GNU libintl problem
 dnl (__asm__ redirection doesn't work for some mysterious reason.  Looks like
@@ -1385,6 +1405,15 @@ fi
 AC_SUBST(BUILD_CFLAGS)
 AC_SUBST(BUILD_LDFLAGS)
 dnl
+dnl Define CFLAGS and LDFLAGS for shared libraries
+dnl
+CFLAGS_SHLIB=${CFLAGS_SHLIB:-$CFLAGS}
+CFLAGS_STLIB=${CFLAGS_STLIB:-$CFLAGS}
+LDFLAGS_SHLIB=${LDFLAGS_SHLIB:-$LDFLAGS}
+AC_SUBST(CFLAGS_SHLIB)
+AC_SUBST(CFLAGS_STLIB)
+AC_SUBST(LDFLAGS_SHLIB)
+dnl
 dnl Make our output files, being sure that we create the some miscellaneous 
 dnl directories
 dnl
index 0ca09f8c9de99bd85cf44795fd9a8c74cf2f86f6..db0947f9a7315194e845b12f194289d864bf274f 100644 (file)
@@ -22,7 +22,7 @@ BSDLIB_PIC_FLAG = -fpic
 image:         $(BSD_LIB)
 
 $(BSD_LIB): $(OBJS)
-       (cd pic; ld -Bshareable -o $(BSD_LIB) $(LDFLAGS) $(OBJS))
+       (cd pic; ld -Bshareable -o $(BSD_LIB) $(LDFLAGS_SHLIB) $(OBJS))
        $(MV) pic/$(BSD_LIB) .
        $(RM) -f ../$(BSD_LIB)
        (cd ..; $(LN) $(LINK_BUILD_FLAGS) \
index 78479d31a5bdde44abee9fd249272d50165993cd..272175f4249252ca1c114f79a342e1125e16e81e 100644 (file)
@@ -25,7 +25,7 @@ image:                $(ELF_LIB)
 $(ELF_LIB): $(OBJS)
        $(E) "  GEN_ELF_SOLIB $(ELF_LIB)"
        $(Q) (cd elfshared; $(CC) --shared -o $(ELF_LIB) \
-               -L$(top_builddir)/../lib $(LDFLAGS) \
+               -L$(top_builddir)/../lib $(LDFLAGS_SHLIB) \
                -Wl,-soname,$(ELF_SONAME) $(OBJS) $(ELF_OTHER_LIBS))
        $(Q) $(MV) elfshared/$(ELF_LIB) .
        $(Q) $(RM) -f ../$(ELF_LIB) ../$(ELF_IMAGE).so ../$(ELF_SONAME)
index 5990be8a49db05733e0cf0c2fad101c951cec4ff..a3d395e5eea370f158efb7d5c8346a9ad869f56d 100644 (file)
@@ -25,7 +25,7 @@ image:                $(ELF_LIB)
 $(ELF_LIB): $(OBJS)
        $(E) "  GEN_ELF_SOLIB $(ELF_LIB)"
        $(Q) (cd elfshared; $(CC) --shared -o $(ELF_LIB) \
-               -L$(top_builddir)/../lib $(LDFLAGS) \
+               -L$(top_builddir)/../lib $(LDFLAGS_SHLIB) \
                -Wl,-h,$(ELF_SONAME) $(OBJS) $(ELF_OTHER_LIBS))
        $(Q) $(MV) elfshared/$(ELF_LIB) .
        $(Q) $(RM) -f ../$(ELF_LIB) ../$(ELF_IMAGE).so ../$(ELF_SONAME)
index 275ba84413a3bbca07c77a08b9daa220b4e787fa..789d2a13435325e2cfb730e4e8ab5bf9cd97d3b5 100644 (file)
@@ -53,12 +53,12 @@ DEPLIBS_BLKID=      $(DEPSTATIC_LIBBLKID) $(DEPSTATIC_LIBUUID)
 
 .c.o:
        $(E) "  CC $<"
-       $(Q) $(CC) $(ALL_CFLAGS) -c $< -o $@
+       $(Q) $(CC) $(ALL_CFLAGS_STLIB) -c $< -o $@
        $(Q) $(CHECK_CMD) $(ALL_CFLAGS) $<
        $(Q) $(CPPCHECK_CMD) $(CPPFLAGS) $<
-@PROFILE_CMT@  $(Q) $(CC) $(ALL_CFLAGS) -g -pg -o profiled/$*.o -c $<
-@ELF_CMT@      $(Q) $(CC) $(ALL_CFLAGS) -fPIC -o elfshared/$*.o -c $<
-@BSDLIB_CMT@   $(Q) $(CC) $(ALL_CFLAGS) $(BSDLIB_PIC_FLAG) -o pic/$*.o -c $<
+@PROFILE_CMT@  $(Q) $(CC) $(ALL_CFLAGS_STLIB) -g -pg -o profiled/$*.o -c $<
+@ELF_CMT@      $(Q) $(CC) $(ALL_CFLAGS_SHLIB) -fPIC -o elfshared/$*.o -c $<
+@BSDLIB_CMT@   $(Q) $(CC) $(ALL_CFLAGS_SHLIB) $(BSDLIB_PIC_FLAG) -o pic/$*.o -c $<
 
 all:: $(SMANPAGES) blkid.pc
 
index 83f04ff5c04ec62fefebc9d8d8e1c65d62ed3faf..9931c77303da0130a3795c08ae6b3448f5dfcac3 100644 (file)
@@ -54,12 +54,12 @@ BSDLIB_INSTALL_DIR = $(root_libdir)
 
 .c.o:
        $(E) "  CC $<"
-       $(Q) $(CC) $(ALL_CFLAGS) -c $< -o $@
+       $(Q) $(CC) $(ALL_CFLAGS_STLIB) -c $< -o $@
        $(Q) $(CHECK_CMD) $(ALL_CFLAGS) $<
        $(Q) $(CPPCHECK_CMD) $(CPPFLAGS) $<
-@PROFILE_CMT@  $(Q) $(CC) $(ALL_CFLAGS) -g -pg -o profiled/$*.o -c $<
-@ELF_CMT@      $(Q) $(CC) $(ALL_CFLAGS) -fPIC -o elfshared/$*.o -c $<
-@BSDLIB_CMT@   $(Q) $(CC) $(ALL_CFLAGS) $(BSDLIB_PIC_FLAG) -o pic/$*.o -c $<
+@PROFILE_CMT@  $(Q) $(CC) $(ALL_CFLAGS_STLIB) -g -pg -o profiled/$*.o -c $<
+@ELF_CMT@      $(Q) $(CC) $(ALL_CFLAGS_SHLIB) -fPIC -o elfshared/$*.o -c $<
+@BSDLIB_CMT@   $(Q) $(CC) $(ALL_CFLAGS_SHLIB) $(BSDLIB_PIC_FLAG) -o pic/$*.o -c $<
 
 e2p.pc: $(srcdir)/e2p.pc.in $(top_builddir)/config.status
        $(E) "  CONFIG.STATUS $@"
index dbf7c1aeb1f178c84be28eec841898d425a8af52..7547f076117a3aa3e493494538da6d6923557ae7 100644 (file)
@@ -42,12 +42,12 @@ BSDLIB_INSTALL_DIR = $(root_libdir)
 #
 .c.o:
        $(E) "  CC $<"
-       $(Q) $(CC) $(ALL_CFLAGS) -c $< -o $@
+       $(Q) $(CC) $(ALL_CFLAGS_STLIB) -c $< -o $@
        $(Q) $(CHECK_CMD) $(ALL_CFLAGS) $<
        $(Q) $(CPPCHECK_CMD) $(CPPFLAGS) $<
-@PROFILE_CMT@  $(Q) $(CC) $(ALL_CFLAGS) -g -pg -o profiled/$*.o -c $<
-@ELF_CMT@      $(Q) $(CC) $(ALL_CFLAGS) -fPIC -o elfshared/$*.o -c $<
-@BSDLIB_CMT@   $(Q) $(CC) $(ALL_CFLAGS) $(BSDLIB_PIC_FLAG) -o pic/$*.o -c $<
+@PROFILE_CMT@  $(Q) $(CC) $(ALL_CFLAGS_STLIB) -g -pg -o profiled/$*.o -c $<
+@ELF_CMT@      $(Q) $(CC) $(ALL_CFLAGS_SHLIB) -fPIC -o elfshared/$*.o -c $<
+@BSDLIB_CMT@   $(Q) $(CC) $(ALL_CFLAGS_SHLIB) $(BSDLIB_PIC_FLAG) -o pic/$*.o -c $<
 
 @MAKEFILE_LIBRARY@
 @MAKEFILE_ELF@
index d42334e5773dc830ad542cd9fb2961c6df4e84f1..cd83dcb4c98ec3d3e374ffab9992276bf15da477 100644 (file)
@@ -245,12 +245,12 @@ all:: ext2fs.pc
 
 .c.o:
        $(E) "  CC $<"
-       $(Q) $(CC) $(ALL_CFLAGS) -c $< -o $@
+       $(Q) $(CC) $(ALL_CFLAGS_STLIB) -c $< -o $@
        $(Q) $(CHECK_CMD) $(ALL_CFLAGS) $<
        $(Q) $(CPPCHECK_CMD) $(CPPFLAGS) $<
-@PROFILE_CMT@  $(Q) $(CC) $(ALL_CFLAGS) -g -pg -o profiled/$*.o -c $<
-@ELF_CMT@      $(Q) $(CC) $(ALL_CFLAGS) -fPIC -o elfshared/$*.o -c $<
-@BSDLIB_CMT@   $(Q) $(CC) $(ALL_CFLAGS) $(BSDLIB_PIC_FLAG) -o pic/$*.o -c $<
+@PROFILE_CMT@  $(Q) $(CC) $(ALL_CFLAGS_STLIB) -g -pg -o profiled/$*.o -c $<
+@ELF_CMT@      $(Q) $(CC) $(ALL_CFLAGS_SHLIB) -fPIC -o elfshared/$*.o -c $<
+@BSDLIB_CMT@   $(Q) $(CC) $(ALL_CFLAGS_SHLIB) $(BSDLIB_PIC_FLAG) -o pic/$*.o -c $<
 
 COMPILE_ET=../et/compile_et --build-tree
 
@@ -270,7 +270,7 @@ ext2fs.pc: $(srcdir)/ext2fs.pc.in $(top_builddir)/config.status
 
 tst_badblocks: tst_badblocks.o $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR)
        $(E) "  LD $@"
-       $(Q) $(CC) -o tst_badblocks tst_badblocks.o $(ALL_LDFLAGS) \
+       $(Q) $(CC) -o tst_badblocks tst_badblocks.o $(LDFLAGS_STATIC) \
                $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) $(SYSLIBS)
 
 tst_digest_encode: $(srcdir)/digest_encode.c $(srcdir)/ext2_fs.h
@@ -281,46 +281,46 @@ tst_digest_encode: $(srcdir)/digest_encode.c $(srcdir)/ext2_fs.h
 tst_icount: $(srcdir)/icount.c $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR)
        $(E) "  LD $@"
        $(Q) $(CC) -o tst_icount $(srcdir)/icount.c -DDEBUG \
-               $(ALL_CFLAGS) $(ALL_LDFLAGS) \
+               $(ALL_CFLAGS) $(LDFLAGS_STATIC) \
                $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) $(SYSLIBS)
 
 tst_iscan: tst_iscan.o $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR)
        $(E) "  LD $@"
-       $(Q) $(CC) -o tst_iscan tst_iscan.o $(ALL_LDFLAGS) \
+       $(Q) $(CC) -o tst_iscan tst_iscan.o $(LDFLAGS_STATIC) \
                $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) $(SYSLIBS)
 
 tst_getsize: tst_getsize.o $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR)
        $(E) "  LD $@"
-       $(Q) $(CC) -o tst_getsize tst_getsize.o $(ALL_LDFLAGS) \
+       $(Q) $(CC) -o tst_getsize tst_getsize.o $(LDFLAGS_STATIC) \
                $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) $(SYSLIBS)
 
 tst_ismounted: $(srcdir)/ismounted.c $(STATIC_LIBEXT2FS) \
                $(DEPSTATIC_LIBCOM_ERR)
        $(E) "  LD $@"
        $(Q) $(CC) -o tst_ismounted $(srcdir)/ismounted.c \
-               $(STATIC_LIBEXT2FS) -DDEBUG $(ALL_CFLAGS) $(ALL_LDFLAGS) \
+               $(STATIC_LIBEXT2FS) -DDEBUG $(ALL_CFLAGS) $(LDFLAGS_STATIC) \
                $(STATIC_LIBCOM_ERR) $(SYSLIBS)
 
 tst_byteswap: tst_byteswap.o $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR)
        $(E) "  LD $@"
-       $(Q) $(CC) -o tst_byteswap tst_byteswap.o $(ALL_LDFLAGS) \
+       $(Q) $(CC) -o tst_byteswap tst_byteswap.o $(LDFLAGS_STATIC) \
                $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) $(SYSLIBS)
 
 tst_bitops: tst_bitops.o $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR)
        $(E) "  LD $@"
-       $(Q) $(CC) -o tst_bitops tst_bitops.o $(ALL_CFLAGS) $(ALL_LDFLAGS) \
+       $(Q) $(CC) -o tst_bitops tst_bitops.o $(ALL_CFLAGS) $(LDFLAGS_STATIC) \
                $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) $(SYSLIBS)
 
 tst_getsectsize: tst_getsectsize.o $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR)
        $(E) "  LD $@"
-       $(Q) $(CC) -o tst_sectgetsize tst_getsectsize.o $(ALL_LDFLAGS) \
+       $(Q) $(CC) -o tst_sectgetsize tst_getsectsize.o $(LDFLAGS_STATIC) \
                $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) $(SYSLIBS)
 
 tst_types.o: $(srcdir)/tst_types.c ext2_types.h 
 
 tst_types: tst_types.o ext2_types.h 
        $(E) "  LD $@"
-       $(Q) $(CC) -o tst_types tst_types.o $(ALL_LDFLAGS) $(SYSLIBS)
+       $(Q) $(CC) -o tst_types tst_types.o $(LDFLAGS_STATIC) $(SYSLIBS)
 
 tst_super_size.o: $(srcdir)/tst_super_size.c $(srcdir)/ext2_fs.h
 
@@ -467,7 +467,7 @@ tst_bitmaps: tst_bitmaps.o tst_bitmaps_cmd.o $(srcdir)/blkmap64_rb.c \
        $(E) "  LD $@"
        $(Q) $(CC) -o $@ tst_bitmaps.o tst_bitmaps_cmd.o \
                -DDEBUG_RB $(srcdir)/blkmap64_rb.c $(ALL_CFLAGS) \
-               $(ALL_LDFLAGS) $(STATIC_LIBEXT2FS) $(STATIC_LIBSS) \
+               $(LDFLAGS_STATIC) $(STATIC_LIBEXT2FS) $(STATIC_LIBSS) \
                $(STATIC_LIBCOM_ERR) $(SYSLIBS)
 
 tst_extents: $(srcdir)/extent.c $(DEBUG_OBJS) $(DEPSTATIC_LIBSS) libext2fs.a \
@@ -475,7 +475,7 @@ tst_extents: $(srcdir)/extent.c $(DEBUG_OBJS) $(DEPSTATIC_LIBSS) libext2fs.a \
        $(DEPLIBSUPPORT)
        $(E) "  LD $@"
        $(Q) $(CC) -o tst_extents $(srcdir)/extent.c \
-               $(ALL_CFLAGS) $(ALL_LDFLAGS) -DDEBUG $(DEBUG_OBJS) \
+               $(ALL_CFLAGS) $(LDFLAGS_STATIC) -DDEBUG $(DEBUG_OBJS) \
                $(STATIC_LIBSS) $(STATIC_LIBE2P) $(LIBSUPPORT) \
                $(STATIC_LIBEXT2FS) $(LIBBLKID) $(LIBUUID) \
                $(STATIC_LIBCOM_ERR) $(SYSLIBS) -I $(top_srcdir)/debugfs
@@ -484,7 +484,7 @@ tst_libext2fs: $(DEBUG_OBJS) \
        $(DEPSTATIC_LIBSS) $(STATIC_LIBE2P) $(DEPLIBUUID) libext2fs.a \
        $(DEPLIBBLKID) $(DEPSTATIC_LIBCOM_ERR) $(DEPLIBSUPPORT)
        $(E) "  LD $@"
-       $(Q) $(CC) -o tst_libext2fs $(ALL_LDFLAGS) -DDEBUG $(DEBUG_OBJS) \
+       $(Q) $(CC) -o tst_libext2fs $(LDFLAGS_STATIC) -DDEBUG $(DEBUG_OBJS) \
                $(STATIC_LIBSS) $(STATIC_LIBE2P) $(LIBSUPPORT) \
                $(STATIC_LIBEXT2FS) $(LIBBLKID) $(LIBUUID) $(LIBMAGIC) \
                $(STATIC_LIBCOM_ERR) $(SYSLIBS) -I $(top_srcdir)/debugfs
@@ -492,7 +492,7 @@ tst_libext2fs: $(DEBUG_OBJS) \
 tst_inline: $(srcdir)/inline.c $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR)
        $(E) "  LD $@"
        $(Q) $(CC) -o tst_inline $(srcdir)/inline.c $(ALL_CFLAGS) \
-               $(ALL_LDFLAGS) -DDEBUG $(STATIC_LIBEXT2FS) \
+               $(LDFLAGS_STATIC) -DDEBUG $(STATIC_LIBEXT2FS) \
                $(STATIC_LIBCOM_ERR) $(SYSLIBS)
 
 tst_inline_data: inline_data.c $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR)
@@ -504,11 +504,11 @@ tst_csum: csum.c $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR) $(STATIC_LIBE2P) \
                $(top_srcdir)/lib/e2p/e2p.h
        $(E) "  LD $@"
        $(Q) $(CC) -o tst_csum $(srcdir)/csum.c -DDEBUG \
-               $(ALL_CFLAGS) $(ALL_LDFLAGS) $(STATIC_LIBEXT2FS) \
+               $(ALL_CFLAGS) $(LDFLAGS_STATIC) $(STATIC_LIBEXT2FS) \
                $(STATIC_LIBCOM_ERR) $(STATIC_LIBE2P) $(SYSLIBS)
 
 tst_crc32c: $(srcdir)/crc32c.c $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR)
-       $(Q) $(CC) $(ALL_LDFLAGS) $(ALL_CFLAGS) -o tst_crc32c $(srcdir)/crc32c.c \
+       $(Q) $(CC) $(LDFLAGS_STATIC) $(ALL_CFLAGS) -o tst_crc32c $(srcdir)/crc32c.c \
                -DUNITTEST $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) \
                $(SYSLIBS)
 
index cfe0f383dd41fad751627287f9760bc06de02163..36528d8ef8d1889dfdc5519f448abb24b12727fa 100644 (file)
@@ -33,12 +33,12 @@ MK_CMDS=_SS_DIR_OVERRIDE=. ./mk_cmds
 
 .c.o:
        $(E) "  CC $<"
-       $(Q) $(CC) $(ALL_CFLAGS) -c $<
+       $(Q) $(CC) $(ALL_CFLAGS_STLIB) -c $<
        $(Q) $(CHECK_CMD) $(ALL_CFLAGS) $<
        $(Q) $(CPPCHECK_CMD) $(CPPFLAGS) $<
-@PROFILE_CMT@  $(Q) $(CC) $(ALL_CFLAGS) -g -pg -o profiled/$*.o -c $<
-@ELF_CMT@      $(Q) $(CC) $(ALL_CFLAGS) -DSHARED_ELF_LIB -fPIC -o elfshared/$*.o -c $<
-@BSDLIB_CMT@   $(Q) $(CC) $(ALL_CFLAGS) $(BSDLIB_PIC_FLAG) -o pic/$*.o -c $<
+@PROFILE_CMT@  $(Q) $(CC) $(ALL_CFLAGS_STLIB) -g -pg -o profiled/$*.o -c $<
+@ELF_CMT@      $(Q) $(CC) $(ALL_CFLAGS_SHLIB) -DSHARED_ELF_LIB -fPIC -o elfshared/$*.o -c $<
+@BSDLIB_CMT@   $(Q) $(CC) $(ALL_CFLAGS_SHLIB) $(BSDLIB_PIC_FLAG) -o pic/$*.o -c $<
 
 # for the library
 
index acdcea65d433be8f626e3b03f3f7fd104f4a3d86..c62c739c2cd04e312cf92c8106992da7852b0891 100644 (file)
@@ -60,12 +60,12 @@ BSDLIB_INSTALL_DIR = $(root_libdir)
 
 .c.o:
        $(E) "  CC $<"
-       $(Q) $(CC) $(ALL_CFLAGS) -c $< -o $@
+       $(Q) $(CC) $(ALL_CFLAGS_STLIB) -c $< -o $@
        $(Q) $(CHECK_CMD) $(ALL_CFLAGS) $<
        $(Q) $(CPPCHECK_CMD) $(CPPFLAGS) $<
-@PROFILE_CMT@  $(Q) $(CC) $(ALL_CFLAGS) -g -pg -o profiled/$*.o -c $<
-@ELF_CMT@      $(Q) $(CC) $(ALL_CFLAGS) -fPIC -o elfshared/$*.o -c $<
-@BSDLIB_CMT@   $(Q) $(CC) $(ALL_CFLAGS) $(BSDLIB_PIC_FLAG) -o pic/$*.o -c $<
+@PROFILE_CMT@  $(Q) $(CC) $(ALL_CFLAGS_STLIB) -g -pg -o profiled/$*.o -c $<
+@ELF_CMT@      $(Q) $(CC) $(ALL_CFLAGS_SHLIB) -fPIC -o elfshared/$*.o -c $<
+@BSDLIB_CMT@   $(Q) $(CC) $(ALL_CFLAGS_SHLIB) $(BSDLIB_PIC_FLAG) -o pic/$*.o -c $<
 
 all:: tst_uuid uuid_time $(SMANPAGES) uuid.pc
 
index 57c81a20d077bcf31982cd857e2b8841cfa49fa9..43e3c7e064cdda1fbec05249329a15153bc488b9 100644 (file)
@@ -108,8 +108,8 @@ DEPLIBS= $(LIBEXT2FS) $(DEPLIBCOM_ERR) $(DEPLIBSUPPORT)
 PROFILED_LIBS= $(PROFILED_LIBEXT2FS) $(PROFILED_LIBCOM_ERR) $(LIBSUPPORT)
 PROFILED_DEPLIBS= $(PROFILED_LIBEXT2FS) $(DEPPROFILED_LIBCOM_ERR) $(DEPLIBSUPPORT)
 
-STATIC_LIBS= $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) $(LIBSUPPORT)
-STATIC_DEPLIBS= $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR) $(DEPLIBSUPPORT)
+STATIC_LIBS= $(LIBSUPPORT) $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR)
+STATIC_DEPLIBS= $(DEPLIBSUPPORT) $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR)
 
 LIBS_E2P= $(LIBE2P) $(LIBCOM_ERR)
 DEPLIBS_E2P= $(LIBE2P) $(DEPLIBCOM_ERR)
@@ -233,7 +233,7 @@ e4defrag: $(E4DEFRAG_OBJS) $(DEPLIBS)
 e4crypt: $(E4CRYPT_OBJS) $(DEPLIBS) $(DEPSTATIC_LIBUUID)
        $(E) "  LD $@"
        $(Q) $(CC) $(ALL_LDFLAGS) -o e4crypt $(E4CRYPT_OBJS) \
-               $(STATIC_LIBUUID) $(STATIC_LIBS)
+               $(LIBUUID) $(LIBS)
 
 e4defrag.profiled: $(E4DEFRAG_OBJS) $(PROFILED_DEPLIBS)
        $(E) "  LD $@"
@@ -270,7 +270,7 @@ mke2fs: $(MKE2FS_OBJS) $(DEPLIBS) $(LIBE2P) $(DEPLIBBLKID) $(DEPLIBUUID) \
 mke2fs.static: $(MKE2FS_OBJS) $(STATIC_DEPLIBS) $(STATIC_LIBE2P) $(DEPSTATIC_LIBUUID) \
                $(DEPSTATIC_LIBBLKID)
        $(E) "  LD $@"
-       $(Q) $(CC) $(ALL_LDFLAGS) -static -o mke2fs.static $(MKE2FS_OBJS) \
+       $(Q) $(CC) $(LDFLAGS_STATIC) -o mke2fs.static $(MKE2FS_OBJS) \
                $(STATIC_LIBS) $(STATIC_LIBE2P) \
                $(STATIC_LIBBLKID) $(STATIC_LIBUUID) $(LIBINTL) $(SYSLIBS) \
                $(LIBMAGIC)
index ecd8619e55a5218e6aabace067dfcf7a06b152c9..6014bdd0cedd2b6fabf044fdbe1259b07f569ed4 100644 (file)
@@ -8,7 +8,6 @@ VPATH = @srcdir@
 top_builddir = ..
 my_dir = resize
 INSTALL = @INSTALL@
-LDFLAG_STATIC = @LDFLAG_STATIC@
 
 @MCONFIG@
 
@@ -49,7 +48,7 @@ resize2fs: $(RESIZE_OBJS) $(DEPLIBS)
 
 resize2fs.static: $(RESIZE_OBJS) $(DEPSTATIC_LIBS)
        $(E) "  LD $@"
-       $(Q) $(LD) $(ALL_LDFLAGS) $(LDFLAG_STATIC) -o resize2fs.static \
+       $(Q) $(LD) $(LDFLAGS_STATIC) -o resize2fs.static \
                $(RESIZE_OBJS) $(STATIC_LIBS) 
 
 resize2fs.8: $(DEP_SUBSTITUTE) $(srcdir)/resize2fs.8.in