lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Wed, 15 Aug 2018 22:24:31 -0400
From:   "Theodore Y. Ts'o" <tytso@....edu>
To:     ykp@...tonmail.ch
Cc:     "linux-ext4@...r.kernel.org" <linux-ext4@...r.kernel.org>,
        Jaco Kroon <jaco@....co.za>
Subject: Re: [PATCH] ext2/e2fsprogs: fix cppcheck warnings

On Wed, Aug 15, 2018 at 01:56:42PM +0000, ykp@...tonmail.ch wrote:
>
> gcc-wall generate a lot of noice, for example 45 such warnings in /debugfs/debugfs.c:
> 
> > ../../debugfs/debugfs.c:221:49: warning: declaration of ‘sci_idx’ shadows a global declaration [-Wshadow]
> > void do_open_filesys(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
> > ../../debugfs/debugfs.h:28:12: note: shadowed declaration is here
> > extern int sci_idx;
> > ^~~~~~~

Yeah, that's something which I had thought I had fixed, but I forgot a
rename in debugfs.h.  I'll fix it upstream:

diff --git a/debugfs/debugfs.h b/debugfs/debugfs.h
index 449740be8..d1d13b455 100644
--- a/debugfs/debugfs.h
+++ b/debugfs/debugfs.h
@@ -25,7 +25,7 @@
 extern ext2_filsys current_fs;
 extern quota_ctx_t current_qctx;
 extern ext2_ino_t	root, cwd;
-extern int sci_idx;
+extern int ss_sci_idx;
 extern ss_request_table debug_cmds, extent_cmds;
 
 extern void reset_getopt(void);

Yes, even with the above fix, gcc-wall is a bit noise.  I don't always
fix all gcc warnings....

> I've tried clang as you suggested.
> I've replaced "CC = gcc" by "CC = clang" or even "CC = clang -Weverything -pedantic",
> but output remains the same as if I just normally compile the project with make and gcc.
> What is wrong?

Here's an example:

<tytso@...c> {/tmp/e2fsprogs}  
1070% CC=clang /usr/projects/e2fsprogs/e2fsprogs/configure
      ...
<tytso@...c> {/tmp/e2fsprogs}  
1070% grep clang MCONFIG 
CC = clang
BUILD_CC = clang
LD = $(PURE) clang

You can verify what C compiler and cc flags are in use by using V=1
(this a convention from Kernel builds):

<tytso@...c> {/tmp/e2fsprogs}  
1071% cd util ; make V=1
echo "/* fake dirpaths.h for config.h */" > dirpaths.h
clang -c -g -flto -ffat-lto-objects    -g -O2  -I. -I../lib -I/usr/projects/e2fsprogs/e2fsprogs/lib -DHAVE_CONFIG_H /usr/projects/e2fsprogs/e2fsprogs/util/subst.c -o subst.o
clang: warning: optimization flag '-ffat-lto-objects' is not supported [-Wignored-optimization-argument]
clang -g -flto -ffat-lto-objects     -o subst subst.o
clang -c -g -flto -ffat-lto-objects    -g -O2  -I. -I../lib -I/usr/projects/e2fsprogs/e2fsprogs/lib -DHAVE_CONFIG_H /usr/projects/e2fsprogs/e2fsprogs/util/symlinks.c -o symlinks.o
clang: warning: optimization flag '-ffat-lto-objects' is not supported [-Wignored-optimization-argument]
clang -g -flto -ffat-lto-objects     -o symlinks symlinks.o

(The complaint about -ffat-lto-objects is recent, since we only
recently added LTO support --- the next/master branch is our
development branch and so will often be new gcc warnings that pop up.
LTO support is pretty new, and doesn't work the same across gcc/clang
or different versions of gcc for that matter.  I'm going to change the
autoconf file to not enable LTO by default, since it our current LTO
is clearly broken for clang.)

To learn more about the build system, look at MCONFIG.in in the source
directory, MCONFIG in the build directory, and look first dozen lines
or so of e2fsck/Makefile.in, libext2fs/Makefile.in, etc.

						- Ted

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ