Skip to content
Snippets Groups Projects
  1. Sep 09, 2016
    • Nicholas Piggin's avatar
      kbuild: allow archs to select link dead code/data elimination · b67067f1
      Nicholas Piggin authored
      
      Introduce LD_DEAD_CODE_DATA_ELIMINATION option for architectures to
      select to build with -ffunction-sections, -fdata-sections, and link
      with --gc-sections. It requires some work (documented) to ensure all
      unreferenced entrypoints are live, and requires toolchain and build
      verification, so it is made a per-arch option for now.
      
      On a random powerpc64le build, this yelds a significant size saving,
      it boots and runs fine, but there is a lot I haven't tested as yet, so
      these savings may be reduced if there are bugs in the link.
      
          text      data        bss        dec   filename
      11169741   1180744    1923176	14273661   vmlinux
      10445269   1004127    1919707	13369103   vmlinux.dce
      
      ~700K text, ~170K data, 6% removed from kernel image size.
      
      Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
      Signed-off-by: default avatarMichal Marek <mmarek@suse.com>
      b67067f1
  2. Aug 08, 2016
  3. Aug 02, 2016
    • Steven Rostedt's avatar
      Makefile: Mute warning for __builtin_return_address(>0) for tracing only · 377ccbb4
      Steven Rostedt authored
      With the latest gcc compilers, they give a warning if
      __builtin_return_address() parameter is greater than 0. That is because if
      it is used by a function called by a top level function (or in the case of
      the kernel, by assembly), it can try to access stack frames outside the
      stack and crash the system.
      
      The tracing system uses __builtin_return_address() of up to 2! But it is
      well aware of the dangers that it may have, and has even added precautions
      to protect against it (see the thunk code in arch/x86/entry/thunk*.S)
      
      Linus originally added KBUILD_CFLAGS that would suppress the warning for the
      entire kernel, as simply adding KBUILD_CFLAGS to the tracing directory
      wouldn't work. The tracing directory plays a bit with the CFLAGS and
      requires a little more logic.
      
      This adds that special logic to only suppress the warning for the tracing
      directory. If it is used anywhere else outside of tracing, the warning will
      still be triggered.
      
      Link: http://lkml.kernel.org/r/20160728223043.51996267@grimm.local.home
      
      
      
      Tested-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      377ccbb4
  4. Jul 28, 2016
    • Mauro Carvalho Chehab's avatar
      doc-rst: Remove the media docbook · 43f71d93
      Mauro Carvalho Chehab authored
      
      Now that all media documentation was converted to Sphinx, we
      should get rid of the old DocBook one, as we don't want people
      to submit patches against the old stuff.
      
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
      Acked-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
      43f71d93
    • Linus Torvalds's avatar
      Disable "frame-address" warning · 124a3d88
      Linus Torvalds authored
      
      Newer versions of gcc warn about the use of __builtin_return_address()
      with a non-zero argument when "-Wall" is specified:
      
        kernel/trace/trace_irqsoff.c: In function ‘stop_critical_timings’:
        kernel/trace/trace_irqsoff.c:433:86: warning: calling ‘__builtin_return_address’ with a nonzero argument is unsafe [-Wframe-address]
           stop_critical_timing(CALLER_ADDR0, CALLER_ADDR1);
        [ .. repeats a few times for other similar cases .. ]
      
      It is true that a non-zero argument is somewhat dangerous, and we do not
      actually have very many uses of that in the kernel - but the ftrace code
      does use it, and as Stephen Rostedt says:
      
       "We are well aware of the danger of using __builtin_return_address() of
        > 0.  In fact that's part of the reason for having the "thunk" code in
        x86 (See arch/x86/entry/thunk_{64,32}.S).  [..] it adds extra frames
        when tracking irqs off sections, to prevent __builtin_return_address()
        from accessing bad areas.  In fact the thunk_32.S states: 'Trampoline to
        trace irqs off.  (otherwise CALLER_ADDR1 might crash)'."
      
      For now, __builtin_return_address() with a non-zero argument is the best
      we can do, and the warning is not helpful and can end up making people
      miss other warnings for real problems.
      
      So disable the frame-address warning on compilers that need it.
      
      Acked-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      124a3d88
  5. Jul 27, 2016
    • Linus Torvalds's avatar
      Disable "maybe-uninitialized" warning globally · 6e8d666e
      Linus Torvalds authored
      
      Several build configurations had already disabled this warning because
      it generates a lot of false positives.  But some had not, and it was
      still enabled for "allmodconfig" builds, for example.
      
      Looking at the warnings produced, every single one I looked at was a
      false positive, and the warnings are frequent enough (and big enough)
      that they can easily hide real problems that you don't notice in the
      noise generated by -Wmaybe-uninitialized.
      
      The warning is good in theory, but this is a classic case of a warning
      that causes more problems than the warning can solve.
      
      If gcc gets better at avoiding false positives, we may be able to
      re-enable this warning.  But as is, we're better off without it, and I
      want to be able to see the *real* warnings.
      
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6e8d666e
  6. Jul 26, 2016
    • Kees Cook's avatar
      kbuild: abort build on bad stack protector flag · c965b105
      Kees Cook authored
      Before, the stack protector flag was sanity checked before .config had
      been reprocessed.  This meant the build couldn't be aborted early, and
      only a warning could be emitted followed later by the compiler blowing
      up with an unknown flag.  This has caused a lot of confusion over time,
      so this splits the flag selection from sanity checking and performs the
      sanity checking after the make has been restarted from a reprocessed
      .config, so builds can be aborted as early as possible now.
      
      Additionally moves the x86-specific sanity check to the same location,
      since it suffered from the same warn-then-wait-for-compiler-failure
      problem.
      
      Link: http://lkml.kernel.org/r/20160712223043.GA11664@www.outflux.net
      
      
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      Cc: Michal Marek <mmarek@suse.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c965b105
    • Kees Cook's avatar
      kbuild: Abort build on bad stack protector flag · 228d96c6
      Kees Cook authored
      
      Before, the stack protector flag was sanity checked before .config had
      been reprocessed. This meant the build couldn't be aborted early, and
      only a warning could be emitted followed later by the compiler blowing
      up with an unknown flag. This has caused a lot of confusion over time,
      so this splits the flag selection from sanity checking and performs the
      sanity checking after the make has been restarted from a reprocessed
      .config, so builds can be aborted as early as possible now.
      
      Additionally moves the x86-specific sanity check to the same location,
      since it suffered from the same warn-then-wait-for-compiler-failure
      problem.
      
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      Signed-off-by: default avatarMichal Marek <mmarek@suse.com>
      228d96c6
  7. Jul 24, 2016
  8. Jul 22, 2016
    • Arnd Bergmann's avatar
      kbuild: make samples depend on headers_install · ddea05fa
      Arnd Bergmann authored
      
      Olof's build test setup keeps failing to compile arm64 kernels
      because of a toolchain that uses outdated kernel headers:
      
      /work/build/batch/samples/seccomp/bpf-fancy.c:13:27: fatal error: linux/seccomp.h: No such file or directory
      
      This is of course something he could change, but it also indicates
      that others may run into the same problem. Running 'make headers_install'
      avoids the issue by ensuring that the kernel headers are put into
      the $(objdir)/usr/include path before we build the samples.
      
      The same problem happened for the Documentation build in the
      past and was fixed up with commit 8e2faea8 ("Make Documenation
      depend on headers_install"). This adds an identical Makefile dependency
      for the samples/ subdirectory.
      
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarMichal Marek <mmarek@suse.com>
      ddea05fa
  9. Jul 18, 2016
    • Arnd Bergmann's avatar
      Kbuild: always prefix objtree in LINUXINCLUDE · 3308b285
      Arnd Bergmann authored
      
      When $(LINUXINCLUDE) is added to the cflags of a target that
      normall doesn't have it (e.g. HOSTCFLAGS), each entry in the
      list is expanded so that we search both $(objtree) and $(srctree),
      which is a bit silly, as we already know which of the two we
      want for each entry in LINUXINCLUDE.
      
      Also, a follow-up patch changes the behavior so we only look in
      $(srctree) for manually added include path, and that breaks finding
      the generated headers.
      
      This adds an explicit $(objtree) for each tree that we want to
      look for generated files.
      
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarMichal Marek <mmarek@suse.com>
      3308b285
    • Arnd Bergmann's avatar
      Kbuild: avoid duplicate include path · dc33db7c
      Arnd Bergmann authored
      
      arch/$(hdr-arch)/include/generated/uapi is included twice in the
      header search path, which is unnecessary, so this changes the
      top-level Makefile to drop the second instance by filtering out
      everything from USERINCLUDE that was already part of LINUXINCLUDE.
      
      This should have very little effect other than making the 'make V=1'
      output slightly smaller and making the build time faster by a miniscule
      amount, but it seems to be cleaner.
      
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarMichal Marek <mmarek@suse.com>
      dc33db7c
  10. Jul 11, 2016
  11. Jul 04, 2016
  12. Jul 01, 2016
  13. Jun 27, 2016
  14. Jun 23, 2016
  15. Jun 21, 2016
  16. Jun 20, 2016
  17. Jun 12, 2016
  18. Jun 07, 2016
    • Michal Marek's avatar
      kbuild: Initialize exported variables · b36fad65
      Michal Marek authored
      
      The NOSTDINC_FLAGS variable is exported, so it needs to be cleared to
      avoid duplicating its content when running make from within make (e.g.
      in the packaging targets). This became an issue after commit
      9c8fa9bc ("kbuild: fix if_change and friends to consider argument
      order"), which no longer ignores the duplicate options. As Paulo Zanoni
      points out, the LDFLAGS_vmlinux variable has the same problem.
      
      Reported-by: default avatar"Zanoni, Paulo R" <paulo.r.zanoni@intel.com>
      Fixes: 9c8fa9bc ("kbuild: fix if_change and friends to consider argument order")
      Signed-off-by: default avatarMichal Marek <mmarek@suse.com>
      b36fad65
    • Emese Revfy's avatar
      Add sancov plugin · 543c37cb
      Emese Revfy authored
      The sancov gcc plugin inserts a __sanitizer_cov_trace_pc() call
      at the start of basic blocks.
      
      This plugin is a helper plugin for the kcov feature. It supports
      all gcc versions with plugin support (from gcc-4.5 on).
      It is based on the gcc commit "Add fuzzing coverage support" by Dmitry Vyukov
      (https://gcc.gnu.org/viewcvs/gcc?limit_changes=0&view=revision&revision=231296
      
      ).
      
      Signed-off-by: default avatarEmese Revfy <re.emese@gmail.com>
      Acked-by: default avatarKees Cook <keescook@chromium.org>
      Signed-off-by: default avatarMichal Marek <mmarek@suse.com>
      543c37cb
    • Emese Revfy's avatar
      GCC plugin infrastructure · 6b90bd4b
      Emese Revfy authored
      
      This patch allows to build the whole kernel with GCC plugins. It was ported from
      grsecurity/PaX. The infrastructure supports building out-of-tree modules and
      building in a separate directory. Cross-compilation is supported too.
      Currently the x86, arm, arm64 and uml architectures enable plugins.
      
      The directory of the gcc plugins is scripts/gcc-plugins. You can use a file or a directory
      there. The plugins compile with these options:
       * -fno-rtti: gcc is compiled with this option so the plugins must use it too
       * -fno-exceptions: this is inherited from gcc too
       * -fasynchronous-unwind-tables: this is inherited from gcc too
       * -ggdb: it is useful for debugging a plugin (better backtrace on internal
          errors)
       * -Wno-narrowing: to suppress warnings from gcc headers (ipa-utils.h)
       * -Wno-unused-variable: to suppress warnings from gcc headers (gcc_version
          variable, plugin-version.h)
      
      The infrastructure introduces a new Makefile target called gcc-plugins. It
      supports all gcc versions from 4.5 to 6.0. The scripts/gcc-plugin.sh script
      chooses the proper host compiler (gcc-4.7 can be built by either gcc or g++).
      This script also checks the availability of the included headers in
      scripts/gcc-plugins/gcc-common.h.
      
      The gcc-common.h header contains frequently included headers for GCC plugins
      and it has a compatibility layer for the supported gcc versions.
      
      The gcc-generate-*-pass.h headers automatically generate the registration
      structures for GIMPLE, SIMPLE_IPA, IPA and RTL passes.
      
      Note that 'make clean' keeps the *.so files (only the distclean or mrproper
      targets clean all) because they are needed for out-of-tree modules.
      
      Based on work created by the PaX Team.
      
      Signed-off-by: default avatarEmese Revfy <re.emese@gmail.com>
      Acked-by: default avatarKees Cook <keescook@chromium.org>
      Signed-off-by: default avatarMichal Marek <mmarek@suse.com>
      6b90bd4b
  19. Jun 05, 2016
  20. May 30, 2016
    • Jani Nikula's avatar
      Documentation/sphinx: add basic working Sphinx configuration and build · 22cba31b
      Jani Nikula authored
      
      Add basic configuration and makefile to build documentation from any
      .rst files under Documentation using Sphinx. For starters, there's just
      the placeholder index.rst.
      
      At the top level Makefile, hook Sphinx documentation targets alongside
      (but independent of) the DocBook toolchain, having both be run on the
      various 'make *docs' targets.
      
      All Sphinx processing is placed into Documentation/Makefile.sphinx. Both
      that and the Documentation/DocBook/Makefile are now expected to handle
      all the documentation targets, explicitly ignoring them if they're not
      relevant for that particular toolchain. The changes to the existing
      DocBook Makefile are kept minimal.
      
      There is graceful handling of missing Sphinx and rst2pdf (which is
      needed for pdf output) by checking for the tool and python module,
      respectively, with informative messages to the user.
      
      If the Read the Docs theme (sphinx_rtd_theme) is available, use it, but
      otherwise gracefully fall back to the Sphinx default theme, with an
      informative message to the user, and slightly less pretty HTML output.
      
      Sphinx can now handle htmldocs, pdfdocs (if rst2pdf is available),
      epubdocs and xmldocs targets. The output documents are written into per
      output type subdirectories under Documentation/output.
      
      Finally, you can pass options to sphinx-build using the SPHINXBUILD make
      variable. For example, 'make SPHINXOPTS=-v htmldocs' for more verbose
      output from Sphinx.
      
      This is based on the original work by Jonathan Corbet, but he probably
      wouldn't recognize this as his own anymore.
      
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      22cba31b
  21. May 29, 2016
  22. May 15, 2016
  23. May 11, 2016
    • Arnd Bergmann's avatar
      kbuild: move -Wunused-const-variable to W=1 warning level · c9c6837d
      Arnd Bergmann authored
      
      gcc-6 started warning by default about variables that are not
      used anywhere and that are marked 'const', generating many
      false positives in an allmodconfig build, e.g.:
      
      arch/arm/mach-davinci/board-da830-evm.c:282:20: warning: 'da830_evm_emif25_pins' defined but not used [-Wunused-const-variable=]
      arch/arm/plat-omap/dmtimer.c:958:34: warning: 'omap_timer_match' defined but not used [-Wunused-const-variable=]
      drivers/bluetooth/hci_bcm.c:625:39: warning: 'acpi_bcm_default_gpios' defined but not used [-Wunused-const-variable=]
      drivers/char/hw_random/omap-rng.c:92:18: warning: 'reg_map_omap4' defined but not used [-Wunused-const-variable=]
      drivers/devfreq/exynos/exynos5_bus.c:381:32: warning: 'exynos5_busfreq_int_pm' defined but not used [-Wunused-const-variable=]
      drivers/dma/mv_xor.c:1139:34: warning: 'mv_xor_dt_ids' defined but not used [-Wunused-const-variable=]
      
      This is similar to the existing -Wunused-but-set-variable warning
      that was added in an earlier release and that we disable by default
      now and only enable when W=1 is set, so it makes sense to do
      the same here. Once we have eliminated the majority of the
      warnings for both, we can put them back into the default list.
      
      We probably want this in backport kernels as well, to allow building
      them with gcc-6 without introducing extra warnings.
      
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarOlof Johansson <olof@lixom.net>
      Acked-by: default avatarLee Jones <lee.jones@linaro.org>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarMichal Marek <mmarek@suse.com>
      c9c6837d
  24. May 10, 2016
    • Arnd Bergmann's avatar
      gcov: disable -Wmaybe-uninitialized warning · e72e2dfe
      Arnd Bergmann authored
      
      When gcov profiling is enabled, we see a lot of spurious warnings about
      possibly uninitialized variables being used:
      
      arch/arm/mm/dma-mapping.c: In function 'arm_coherent_iommu_map_page':
      arch/arm/mm/dma-mapping.c:1085:16: warning: 'start' may be used uninitialized in this function [-Wmaybe-uninitialized]
      drivers/clk/st/clk-flexgen.c: In function 'st_of_flexgen_setup':
      drivers/clk/st/clk-flexgen.c:323:9: warning: 'num_parents' may be used uninitialized in this function [-Wmaybe-uninitialized]
      kernel/cgroup.c: In function 'cgroup_mount':
      kernel/cgroup.c:2119:11: warning: 'root' may be used uninitialized in this function [-Wmaybe-uninitialized]
      
      All of these are false positives, so it seems better to just disable
      the warnings whenever GCOV is enabled. Most users don't enable GCOV,
      and based on a prior patch, it is now also disabled for 'allmodconfig'
      builds, so there should be no downsides of doing this.
      
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarPeter Oberparleiter <oberpar@linux.vnet.ibm.com>
      Signed-off-by: default avatarMichal Marek <mmarek@suse.com>
      e72e2dfe
    • Arnd Bergmann's avatar
      gcov: disable tree-loop-im to reduce stack usage · c87bf431
      Arnd Bergmann authored
      Enabling CONFIG_GCOV_PROFILE_ALL produces us a lot of warnings like
      
      lib/lz4/lz4hc_compress.c: In function 'lz4_compresshcctx':
      lib/lz4/lz4hc_compress.c:514:1: warning: the frame size of 1504 bytes is larger than 1024 bytes [-Wframe-larger-than=]
      
      After some investigation, I found that this behavior started with gcc-4.9,
      and opened https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69702
      
      .
      A suggested workaround for it is to use the -fno-tree-loop-im
      flag that turns off one of the optimization stages in gcc, so the
      code runs a little slower but does not use excessive amounts
      of stack.
      
      We could make this conditional on the gcc version, but I could not
      find an easy way to do this in Kbuild and the benefit would be
      fairly small, given that most of the gcc version in production are
      affected now.
      
      I'm marking this for 'stable' backports because it addresses a bug
      with code generation in gcc that exists in all kernel versions
      with the affected gcc releases.
      
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarPeter Oberparleiter <oberpar@linux.vnet.ibm.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarMichal Marek <mmarek@suse.com>
      c87bf431
    • Arnd Bergmann's avatar
      Kbuild: disable 'maybe-uninitialized' warning for CONFIG_PROFILE_ALL_BRANCHES · 815eb71e
      Arnd Bergmann authored
      
      CONFIG_PROFILE_ALL_BRANCHES confuses gcc-5.x to the degree that it prints
      incorrect warnings about a lot of variables that it thinks can be used
      uninitialized, e.g.:
      
      i2c/busses/i2c-diolan-u2c.c: In function 'diolan_usb_xfer':
      i2c/busses/i2c-diolan-u2c.c:391:16: warning: 'byte' may be used uninitialized in this function
      iio/gyro/itg3200_core.c: In function 'itg3200_probe':
      iio/gyro/itg3200_core.c:213:6: warning: 'val' may be used uninitialized in this function
      leds/leds-lp55xx-common.c: In function 'lp55xx_update_bits':
      leds/leds-lp55xx-common.c:350:6: warning: 'tmp' may be used uninitialized in this function
      misc/bmp085.c: In function 'show_pressure':
      misc/bmp085.c:363:10: warning: 'pressure' may be used uninitialized in this function
      power/ds2782_battery.c: In function 'ds2786_get_capacity':
      power/ds2782_battery.c:214:17: warning: 'raw' may be used uninitialized in this function
      
      These are all false positives that either rob someone's time when trying
      to figure out whether they are real, or they get people to send wrong
      patches to shut up the warnings.
      
      Nobody normally wants to run a CONFIG_PROFILE_ALL_BRANCHES kernel in
      production, so disabling the whole class of warnings for this configuration
      has no serious downsides either.
      
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: Steven Rostedt <rostedtgoodmis.org>
      Signed-off-by: default avatarMichal Marek <mmarek@suse.com>
      815eb71e
    • Robert Jarzmik's avatar
      kbuild: forbid kernel directory to contain spaces and colons · 51193b76
      Robert Jarzmik authored
      
      When the kernel path contains a space or a colon somewhere in the path
      name, the modules_install target doesn't work anymore, as the path names
      are not enclosed in double quotes. It is also supposed that and O= build
      will suffer from the same weakness as modules_install.
      
      Instead of checking and improving kbuild to resist to directories
      including these characters, error out early to prevent any build if the
      kernel's main directory contains a space.
      
      Signed-off-by: default avatarRobert Jarzmik <robert.jarzmik@free.fr>
      Signed-off-by: default avatarMichal Marek <mmarek@suse.com>
      51193b76
  25. May 08, 2016
  26. May 01, 2016
  27. Apr 27, 2016
  28. Apr 26, 2016
    • Nicolas Pitre's avatar
      kbuild: better abstract vmlinux sequential prerequisites · 2441e78b
      Nicolas Pitre authored
      
      When CONFIG_TRIM_UNUSED_KSYMS=y and CONFIG_BUILD_DOCSRC=y it is possible
      to get the following error:
      
      ERROR: "cn_del_callback" [Documentation/connector/cn_test.ko] undefined!
      ERROR: "cn_add_callback" [Documentation/connector/cn_test.ko] undefined!
      ERROR: "cn_netlink_send" [Documentation/connector/cn_test.ko] undefined!
      ../scripts/Makefile.modpost:91: recipe for target '__modpost' failed
      
      It is not sufficient to do "vmlinux-dirs += Documentation" as this also
      depends on the headers_check target, and all of this needs to be done
      before adjust_autoksyms.sh is executed.
      
      Let's sort this out by gathering those sequential prerequisites in a make
      target of their own, separate from the vmlinux target. And by doing so,
      the special autoksyms_recursive target is no longer needed.
      
      Signed-off-by: default avatarNicolas Pitre <nico@linaro.org>
      Acked-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Tested-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      2441e78b
    • Nicolas Ferre's avatar
      kbuild: fix call to adjust_autoksyms.sh when output directory specified · ba79d401
      Nicolas Ferre authored
      
      When a different output directory is specified during the build process (with
      O= or KBUILD_OUTPUT), the call to adjust_autoksyms.sh script fails with the
      following error:
      /bin/sh scripts/adjust_autoksyms.sh \
      	  "make KBUILD_MODULES=1 -f ../Makefile autoksyms_recursive"
      	  /bin/sh: scripts/adjust_autoksyms.sh: No such file or directory
      	  make[2]: *** [vmlinux] Error 127
      	  make[1]: *** [sub-make] Error 2
      	  make: *** [__sub-make] Error 2
      
      Using the absolute path with $(srctree) variable solves the problem.
      
      This is in case the CONFIG_TRIM_UNUSED_KSYMS option is specified.
      
      Signed-off-by: default avatarNicolas Ferre <nicolas.ferre@atmel.com>
      Fixes: 23121ca2 ("kbuild: create/adjust generated/autoksyms.h")
      Cc: Nicolas Pitre <nico@linaro.org>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: default avatarMichal Marek <mmarek@suse.com>
      ba79d401
  29. Apr 24, 2016
  30. Apr 22, 2016
    • Steven Rostedt's avatar
      objtool: Fix Makefile to properly see if libelf is supported · c2bb9e32
      Steven Rostedt authored
      
      When doing a make allmodconfig, I hit the following compile error:
      
        In file included from builtin-check.c:32:0:
        elf.h:22:18: fatal error: gelf.h: No such file or directory
        compilation terminated.
        ...
      
      Digging into it, it appears that the $(shell ..) command in the Makefile does
      not give the proper result when it fails to find -lelf, and continues to
      compile objtool.
      
      Instead, use the "try-run" makefile macro to perform the test. This gives a
      proper result for both cases.
      
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      Acked-by: default avatarJosh Poimboeuf <jpoimboe@redhat.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
      Cc: Bernd Petrovitsch <bernd@petrovitsch.priv.at>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Chris J Arges <chris.j.arges@canonical.com>
      Cc: Jiri Slaby <jslaby@suse.cz>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Michal Marek <mmarek@suse.cz>
      Cc: Namhyung Kim <namhyung@gmail.com>
      Cc: Pedro Alves <palves@redhat.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: live-patching@vger.kernel.org
      Fixes: 442f04c3 ("objtool: Add tool to perform compile-time stack metadata validation")
      Link: http://lkml.kernel.org/r/20160420153234.GA24032@home.goodmis.org
      
      
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      c2bb9e32
  31. Apr 20, 2016
Loading