Re: [PATCH] mips: fix 64-bit compilation error without CONFIG_MIPS32_O32

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 20/12/13 16:48, Dmitri Vorobiev wrote:
Hi,

Maybe it would be better to place the variable definition under

#ifdef CONFIG_32BIT || (CONFIG_64BIT && CONFIG_64BIT_O32)
#endif

In my opinion those pseudo-qualifiers, which simply silence the
compiler, are harmful, because they hide the problem instead of solving it.

Thanks,
Dmitri

I originally did so, but changed it to __maybe_unused as the ifdef block is somewhat ugly. The compiler is sensible to optimize the variable away when it is unused.

I can change it if others also feel that wrapping it in ifdef would be better.

Thanks,
Alex



On Fri, Dec 20, 2013 at 6:31 PM, Alex Smith <alex.smith@xxxxxxxxxx
<mailto:alex.smith@xxxxxxxxxx>> wrote:

    Attempting to compile a 64-bit kernel without CONFIG_MIPS32_O32 defined
    (using GCC 4.8.1) results in the following compilation error:

    arch/mips/include/asm/syscall.h: In function 'mips_get_syscall_arg':
    arch/mips/include/asm/syscall.h:32:16: error: unused variable 'usp'
    [-Werror=unused-variable]

    Fix by adding __maybe_unsued to the definition of usp.

    Signed-off-by: Alex Smith <alex.smith@xxxxxxxxxx
    <mailto:alex.smith@xxxxxxxxxx>>
    Reviewed-by: Markos Chandras <markos.chandras@xxxxxxxxxx
    <mailto:markos.chandras@xxxxxxxxxx>>
    ---
      arch/mips/include/asm/syscall.h | 2 +-
      1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/arch/mips/include/asm/syscall.h
    b/arch/mips/include/asm/syscall.h
    index 81c8913..c48f8d8 100644
    --- a/arch/mips/include/asm/syscall.h
    +++ b/arch/mips/include/asm/syscall.h
    @@ -29,7 +29,7 @@ static inline long syscall_get_nr(struct
    task_struct *task,
      static inline unsigned long mips_get_syscall_arg(unsigned long *arg,
             struct task_struct *task, struct pt_regs *regs, unsigned int n)
      {
    -       unsigned long usp = regs->regs[29];
    +       unsigned long __maybe_unused usp = regs->regs[29];

             switch (n) {
             case 0: case 1: case 2: case 3:
    --
    1.8.5.2







[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux