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] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAKwvOdm3vNxp9GZrxs6s4h73pHgHD=sJjaPziGzxcr+K7iGd-g@mail.gmail.com>
Date:   Wed, 14 Jun 2023 12:04:36 -0400
From:   Nick Desaulniers <ndesaulniers@...gle.com>
To:     Christophe Leroy <christophe.leroy@...roup.eu>
Cc:     kernel test robot <lkp@...el.com>,
        "llvm@...ts.linux.dev" <llvm@...ts.linux.dev>,
        "oe-kbuild-all@...ts.linux.dev" <oe-kbuild-all@...ts.linux.dev>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
        Michael Ellerman <mpe@...erman.id.au>,
        Nathan Chancellor <nathan@...nel.org>
Subject: Re: arch/powerpc/math-emu/fcmpu.c:13:2: warning: variable 'A_c' set
 but not used

On Wed, Jun 14, 2023 at 10:11 AM Christophe Leroy
<christophe.leroy@...roup.eu> wrote:
>
> Hi,
>
> Le 22/05/2023 à 21:00, kernel test robot a écrit :
> > Hi Christophe,
> >
> > FYI, the error/warning still remains.
> >
> > tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> > head:   44c026a73be8038f03dbdeef028b642880cf1511
> > commit: 7245fc5bb7a966852d5bd7779d1f5855530b461a powerpc/math-emu: Remove -w build flag and fix warnings
> > date:   9 months ago
> > config: powerpc-randconfig-r022-20230522 (https://download.01.org/0day-ci/archive/20230523/202305230231.3Wb7Q68G-lkp@intel.com/config)
> > compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project b0fb98227c90adf2536c9ad644a74d5e92961111)
> > reproduce (this is a W=1 build):
> >          wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> >          chmod +x ~/bin/make.cross
> >          # install powerpc cross compiling tool for clang build
> >          # apt-get install binutils-powerpc-linux-gnu
> >          # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7245fc5bb7a966852d5bd7779d1f5855530b461a
> >          git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> >          git fetch --no-tags linus master
> >          git checkout 7245fc5bb7a966852d5bd7779d1f5855530b461a
> >          # save the config file
> >          mkdir build_dir && cp config build_dir/.config
> >          COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=powerpc olddefconfig
> >          COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=powerpc SHELL=/bin/bash arch/powerpc/math-emu/
> >
> > If you fix the issue, kindly add following tag where applicable
> > | Reported-by: kernel test robot <lkp@...el.com>
> > | Closes: https://lore.kernel.org/oe-kbuild-all/202305230231.3Wb7Q68G-lkp@intel.com/
> >
> > All warnings (new ones prefixed by >>):
> >
> >>> arch/powerpc/math-emu/fcmpu.c:13:2: warning: variable 'A_c' set but not used [-Wunused-but-set-variable]
>
> This code is imported, and there is no plan to make any change to it.
> Can you desactivate that warning ?

If the code is imported, and we don't plan to push fixes upstream,
does it make sense to just set -Wno-unusued-but-set-variable in
arch/powerpc/math-emu/Makefile?

Wait, what?!
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/powerpc/math-emu/Makefile#n20
arch/powerpc/math-emu/Makefile already has -Wunused-but-set-variable
in ccflags-remove-y. But if KBUILD_EXTRA_WARN is set for W=1 builds,
-Wunused-but-set-variable is added back, but only for math.o and
math_efp.o.  The warning above comes from building fcmpu.o.  So how
did  -Wunused-but-set-variable get set in the first place?

commit 78c73c80fd86 ("powerpc/math-emu: Inhibit W=1 warnings")
seems to have cleaned up this code for W=1 with GCC. This report is a
result of W=1 with CC=clang.

>
> Thanks
> Christophe
>
> >             FP_DECL_D(A);
> >             ^
> >     include/math-emu/double.h:73:23: note: expanded from macro 'FP_DECL_D'
> >     #define FP_DECL_D(X)            _FP_DECL(2,X)
> >                                     ^
> >     include/math-emu/op-common.h:28:14: note: expanded from macro '_FP_DECL'
> >       _FP_I_TYPE X##_c=0, X##_s=0, X##_e=0; \
> >                  ^
> >     <scratch space>:124:1: note: expanded from here
> >     A_c
> >     ^
> >>> arch/powerpc/math-emu/fcmpu.c:14:2: warning: variable 'B_c' set but not used [-Wunused-but-set-variable]
> >             FP_DECL_D(B);
> >             ^
> >     include/math-emu/double.h:73:23: note: expanded from macro 'FP_DECL_D'
> >     #define FP_DECL_D(X)            _FP_DECL(2,X)
> >                                     ^
> >     include/math-emu/op-common.h:28:14: note: expanded from macro '_FP_DECL'
> >       _FP_I_TYPE X##_c=0, X##_s=0, X##_e=0; \
> >                  ^
> >     <scratch space>:130:1: note: expanded from here
> >     B_c
> >     ^
> >>> arch/powerpc/math-emu/fcmpu.c:15:2: warning: variable '_fex' set but not used [-Wunused-but-set-variable]
> >             FP_DECL_EX;
> >             ^
> >     include/math-emu/soft-fp.h:94:24: note: expanded from macro 'FP_DECL_EX'
> >     #define FP_DECL_EX int _fex = 0
> >                            ^
> >     arch/powerpc/math-emu/fcmpu.c:11:1: warning: no previous prototype for function 'fcmpu' [-Wmissing-prototypes]
> >     fcmpu(u32 *ccr, int crfD, void *frA, void *frB)
> >     ^
> >     arch/powerpc/math-emu/fcmpu.c:10:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
> >     int
> >     ^
> >     static
> >     4 warnings generated.
> > --
> >>> arch/powerpc/math-emu/fctiw.c:14:2: warning: variable '_fex' set but not used [-Wunused-but-set-variable]
> >             FP_DECL_EX;
> >             ^
> >     include/math-emu/soft-fp.h:94:24: note: expanded from macro 'FP_DECL_EX'
> >     #define FP_DECL_EX int _fex = 0
> >                            ^
> >     arch/powerpc/math-emu/fctiw.c:11:1: warning: no previous prototype for function 'fctiw' [-Wmissing-prototypes]
> >     fctiw(u32 *frD, void *frB)
> >     ^
> >     arch/powerpc/math-emu/fctiw.c:10:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
> >     int
> >     ^
> >     static
> >     2 warnings generated.
> > --
> >>> arch/powerpc/math-emu/fctiwz.c:14:2: warning: variable '_fex' set but not used [-Wunused-but-set-variable]
> >             FP_DECL_EX;
> >             ^
> >     include/math-emu/soft-fp.h:94:24: note: expanded from macro 'FP_DECL_EX'
> >     #define FP_DECL_EX int _fex = 0
> >                            ^
> >     arch/powerpc/math-emu/fctiwz.c:11:1: warning: no previous prototype for function 'fctiwz' [-Wmissing-prototypes]
> >     fctiwz(u32 *frD, void *frB)
> >     ^
> >     arch/powerpc/math-emu/fctiwz.c:10:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
> >     int
> >     ^
> >     static
> >     2 warnings generated.
> > --
> >>> arch/powerpc/math-emu/fsel.c:14:2: warning: variable '_fex' set but not used [-Wunused-but-set-variable]
> >             FP_DECL_EX;
> >             ^
> >     include/math-emu/soft-fp.h:94:24: note: expanded from macro 'FP_DECL_EX'
> >     #define FP_DECL_EX int _fex = 0
> >                            ^
> >     arch/powerpc/math-emu/fsel.c:11:1: warning: no previous prototype for function 'fsel' [-Wmissing-prototypes]
> >     fsel(u32 *frD, void *frA, u32 *frB, u32 *frC)
> >     ^
> >     arch/powerpc/math-emu/fsel.c:10:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
> >     int
> >     ^
> >     static
> >     2 warnings generated.
> >
> >
> > vim +/A_c +13 arch/powerpc/math-emu/fcmpu.c
> >
> > ^1da177e4c3f41 arch/ppc/math-emu/fcmpu.c     Linus Torvalds 2005-04-16   9
> > ^1da177e4c3f41 arch/ppc/math-emu/fcmpu.c     Linus Torvalds 2005-04-16  10  int
> > ^1da177e4c3f41 arch/ppc/math-emu/fcmpu.c     Linus Torvalds 2005-04-16  11  fcmpu(u32 *ccr, int crfD, void *frA, void *frB)
> > ^1da177e4c3f41 arch/ppc/math-emu/fcmpu.c     Linus Torvalds 2005-04-16  12  {
> > ^1da177e4c3f41 arch/ppc/math-emu/fcmpu.c     Linus Torvalds 2005-04-16 @13    FP_DECL_D(A);
> > ^1da177e4c3f41 arch/ppc/math-emu/fcmpu.c     Linus Torvalds 2005-04-16 @14    FP_DECL_D(B);
> > d2b194ed820880 arch/powerpc/math-emu/fcmpu.c Kumar Gala     2008-06-04 @15    FP_DECL_EX;
> > ^1da177e4c3f41 arch/ppc/math-emu/fcmpu.c     Linus Torvalds 2005-04-16  16    int code[4] = { (1 << 3), (1 << 1), (1 << 2), (1 << 0) };
> > ^1da177e4c3f41 arch/ppc/math-emu/fcmpu.c     Linus Torvalds 2005-04-16  17    long cmp;
> > ^1da177e4c3f41 arch/ppc/math-emu/fcmpu.c     Linus Torvalds 2005-04-16  18
> >
> > :::::: The code at line 13 was first introduced by commit
> > :::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2
> >
> > :::::: TO: Linus Torvalds <torvalds@...970.osdl.org>
> > :::::: CC: Linus Torvalds <torvalds@...970.osdl.org>
> >



-- 
Thanks,
~Nick Desaulniers

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ