Skip to content
Snippets Groups Projects
  1. May 09, 2017
  2. May 01, 2017
  3. Apr 23, 2017
  4. Apr 16, 2017
  5. Apr 09, 2017
  6. Apr 03, 2017
  7. Mar 31, 2017
  8. Mar 26, 2017
  9. Mar 21, 2017
    • Gleb Fotengauer-Malinovskiy's avatar
      jump label: fix passing kbuild_cflags when checking for asm goto support · 7292ae3d
      Gleb Fotengauer-Malinovskiy authored
      
      The latest change of asm goto support check added passing of KBUILD_CFLAGS
      to compiler.  When these flags reference gcc plugins that are not built yet,
      the check fails.
      
      When one runs "make bzImage" followed by "make modules", the kernel is always
      built with HAVE_JUMP_LABEL disabled, while the modules are built depending on
      CONFIG_JUMP_LABEL.  If HAVE_JUMP_LABEL macro happens to be different, modules
      are built with undefined references, e.g.:
      
      ERROR: "static_key_slow_inc" [net/netfilter/xt_TEE.ko] undefined!
      ERROR: "static_key_slow_dec" [net/netfilter/xt_TEE.ko] undefined!
      ERROR: "static_key_slow_dec" [net/netfilter/nft_meta.ko] undefined!
      ERROR: "static_key_slow_inc" [net/netfilter/nft_meta.ko] undefined!
      ERROR: "nf_hooks_needed" [net/netfilter/ipvs/ip_vs.ko] undefined!
      ERROR: "nf_hooks_needed" [net/ipv6/ipv6.ko] undefined!
      ERROR: "static_key_count" [net/ipv6/ipv6.ko] undefined!
      ERROR: "static_key_slow_inc" [net/ipv6/ipv6.ko] undefined!
      
      This change moves the check before all these references are added
      to KBUILD_CFLAGS.  This is correct because subsequent KBUILD_CFLAGS
      modifications are not relevant to this check.
      
      Reported-by: default avatarAnton V. Boyarshinov <boyarsh@altlinux.org>
      Fixes: 35f860f9 ("jump label: pass kbuild_cflags when checking for asm goto support")
      Cc: stable@vger.kernel.org	# v4.10
      Signed-off-by: default avatarGleb Fotengauer-Malinovskiy <glebfm@altlinux.org>
      Signed-off-by: default avatarDmitry V. Levin <ldv@altlinux.org>
      Acked-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
      Acked-by: default avatarDavid Lin <dtwlin@google.com>
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      7292ae3d
  10. Mar 20, 2017
  11. Mar 16, 2017
    • Arnd Bergmann's avatar
      Kbuild: use cc-disable-warning consistently for maybe-uninitialized · b334e19a
      Arnd Bergmann authored
      
      In commit a76bcf55 ("Kbuild: enable -Wmaybe-uninitialized warning
      for "make W=1""), I reverted another change that happened to fix a problem
      with old compilers, and now we get this report again with old compilers
      (prior to gcc-4.8) and GCOV enabled:
      
         cc1: warnings being treated as errors
         drivers/gpu/drm/i915/intel_ringbuffer.c: In function 'intel_ring_setup_status_page':
         drivers/gpu/drm/i915/intel_ringbuffer.c:438: error: 'mmio.reg' may be used uninitialized in this function
         At top level:
      >> cc1: error: unrecognized command line option "-Wno-maybe-uninitialized"
      
      The problem is that we turn off the warning conditionally in a number
      of places as we should, but one of them does it unconditionally.
      Instead, change it to call cc-disable-warning as we do elsewhere.
      
      The original patch that caused it was merged into linux-4.7, then
      4.8 removed the change and 4.9 brought it back, so we probably want
      a backport to 4.9 once this is merged.
      
      Use a ':=' assignment instead of '=' to force the cc-disable-warning
      call to only be evaluated once instead of every time.
      
      Cc: stable@vger.kernel.org
      Fixes: a76bcf55 ("Kbuild: enable -Wmaybe-uninitialized warning for "make W=1"")
      Fixes: e72e2dfe ("gcov: disable -Wmaybe-uninitialized warning")
      Reported-by: default avatarkbuild test robot <fengguang.wu@intel.com>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      b334e19a
  12. Mar 12, 2017
  13. Mar 05, 2017
  14. Feb 20, 2017
  15. Feb 19, 2017
  16. Feb 15, 2017
  17. Feb 12, 2017
  18. Feb 05, 2017
  19. Feb 03, 2017
  20. Jan 29, 2017
  21. Jan 26, 2017
  22. Jan 22, 2017
  23. Jan 16, 2017
  24. Jan 08, 2017
  25. Jan 01, 2017
  26. Dec 26, 2016
  27. Dec 11, 2016
  28. Dec 04, 2016
  29. Dec 02, 2016
  30. Dec 01, 2016
  31. Nov 27, 2016
  32. Nov 20, 2016
  33. Nov 15, 2016
    • Borislav Petkov's avatar
      kbuild: Steal gcc's pie from the very beginning · c6a38553
      Borislav Petkov authored
      
      So Sebastian turned off the PIE for kernel builds but that was too late
      - Kbuild.include already uses KBUILD_CFLAGS and trying to disable gcc
      options with, say cc-disable-warning, fails:
      
        gcc -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs
        ...
        -Wno-sign-compare -fno-asynchronous-unwind-tables -Wframe-address -c -x c /dev/null -o .31392.tmp
        /dev/null:1:0: error: code model kernel does not support PIC mode
      
      because that returns an error and we can't disable the warning. For
      example in this case:
      
      KBUILD_CFLAGS   += $(call cc-disable-warning,frame-address,)
      
      which leads to gcc issuing all those warnings again.
      
      So let's turn off PIE/PIC at the earliest possible moment, when we
      declare KBUILD_CFLAGS so that cc-disable-warning picks it up too.
      
      Also, we need the $(call cc-option ...) because -fno-PIE is supported
      since gcc v3.4 and our lowest supported gcc version is 3.2 right now.
      
      Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
      Cc: stable@vger.kernel.org
      Cc: Ben Hutchings <ben@decadent.org.uk>
      Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
      Signed-off-by: default avatarMichal Marek <mmarek@suse.com>
      c6a38553
  34. Nov 13, 2016
  35. Nov 11, 2016
    • Arnd Bergmann's avatar
      Kbuild: enable -Wmaybe-uninitialized warning for "make W=1" · a76bcf55
      Arnd Bergmann authored
      Traditionally, we have always had warnings about uninitialized variables
      enabled, as this is part of -Wall, and generally a good idea [1], but it
      also always produced false positives, mainly because this is a variation
      of the halting problem and provably impossible to get right in all cases
      [2].
      
      Various people have identified cases that are particularly bad for false
      positives, and in commit e74fc973 ("Turn off -Wmaybe-uninitialized
      when building with -Os"), I turned off the warning for any build that
      was done with CC_OPTIMIZE_FOR_SIZE.  This drastically reduced the number
      of false positive warnings in the default build but unfortunately had
      the side effect of turning the warning off completely in 'allmodconfig'
      builds, which in turn led to a lot of warnings (both actual bugs, and
      remaining false positives) to go in unnoticed.
      
      With commit 877417e6 ("Kbuild: change CC_OPTIMIZE_FOR_SIZE
      definition") enabled the warning again for allmodconfig builds in v4.7
      and in v4.8-rc1, I had finally managed to address all warnings I get in
      an ARM allmodconfig build and most other maybe-uninitialized warnings
      for ARM randconfig builds.
      
      However, commit 6e8d666e ("Disable "maybe-uninitialized" warning
      globally") was merged at the same time and disabled it completely for
      all configurations, because of false-positive warnings on x86 that I had
      not addressed until then.  This caused a lot of actual bugs to get
      merged into mainline, and I sent several dozen patches for these during
      the v4.9 development cycle.  Most of these are actual bugs, some are for
      correct code that is safe because it is only called under external
      constraints that make it impossible to run into the case that gcc sees,
      and in a few cases gcc is just stupid and finds something that can
      obviously never happen.
      
      I have now done a few thousand randconfig builds on x86 and collected
      all patches that I needed to address every single warning I got (I can
      provide the combined patch for the other warnings if anyone is
      interested), so I hope we can get the warning back and let people catch
      the actual bugs earlier.
      
      This reverts the change to disable the warning completely and for now
      brings it back at the "make W=1" level, so we can get it merged into
      mainline without introducing false positives.  A follow-up patch enables
      it on all levels unless some configuration option turns it off because
      of false-positives.
      
      Link: https://rusty.ozlabs.org/?p=232 [1]
      Link: https://gcc.gnu.org/wiki/Better_Uninitialized_Warnings
      
       [2]
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a76bcf55
  36. Nov 08, 2016
    • Sebastian Andrzej Siewior's avatar
      kbuild: add -fno-PIE · 8ae94224
      Sebastian Andrzej Siewior authored
      
      Debian started to build the gcc with -fPIE by default so the kernel
      build ends before it starts properly with:
      |kernel/bounds.c:1:0: error: code model kernel does not support PIC mode
      
      Also add to KBUILD_AFLAGS due to:
      
      |gcc -Wp,-MD,arch/x86/entry/vdso/vdso32/.note.o.d … -mfentry -DCC_USING_FENTRY … vdso/vdso32/note.S
      |arch/x86/entry/vdso/vdso32/note.S:1:0: sorry, unimplemented: -mfentry isn’t supported for 32-bit in combination with -fpic
      
      Tagging it stable so it is possible to compile recent stable kernels as
      well.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Signed-off-by: default avatarMichal Marek <mmarek@suse.com>
      8ae94224
  37. Nov 05, 2016
  38. Oct 29, 2016
  39. Oct 24, 2016
  40. Oct 15, 2016
Loading