Skip to content
Snippets Groups Projects
  1. Sep 21, 2021
  2. Sep 16, 2021
  3. Sep 14, 2021
  4. Sep 13, 2021
  5. Sep 04, 2021
  6. Sep 01, 2021
    • Tom Rini's avatar
      scripts/checkpatch.pl: Resync with v5.13 · e199fb35
      Tom Rini authored
      
      This resyncs us with the version found in v5.13 of the Linux kernel with
      the following exceptions:
      - Keep our u-boot specific tests / code area.
      - Change the location of checkpatch.rst (which we now import)
      - Drop the "use strscpy" test as we don't have that, but do have strlcpy
        and want that used now.
      - Keep debug/printf in the list for $logFunctions
      
      And note that we now also include the spdxcheck.py tool that
      checkpatch.pl supports calling out to, and include upstream's
      checkpatch.rst in our develop section of the documentation.
      
      Signed-off-by: default avatarTom Rini <trini@konsulko.com>
      e199fb35
  7. Aug 31, 2021
  8. Aug 30, 2021
  9. Aug 18, 2021
  10. Aug 10, 2021
  11. Aug 06, 2021
  12. Aug 05, 2021
  13. Aug 04, 2021
  14. Jul 31, 2021
  15. Jul 29, 2021
    • Patrick Delaunay's avatar
      build: remove the variable NM in gen_ll_addressable_symbols.sh · ff7852d5
      Patrick Delaunay authored and Tom Rini's avatar Tom Rini committed
      
      With LTO activated, the buildman tools failed with an error on my
      configuration (Ubuntu 20.04, stm32mp15_trusted_defconfig) with the error:
      
      ../arm-linux-gnueabi/bin/nm:
      	scripts/gen_ll_addressable_symbols.sh: file format not recognized
      
      It seems the shell variable initialization NM=$(NM) is not correctly
      interpreted when shell is started in the Makefile, but I have not this
      issue when I compile the same target without buildman.
      
      I don't found the root reason of the problem but I solve it by
      providing $(NM) as script parameter instead using a shell variable.
      
      The command executed is identical:
      
      cmd_keep-syms-lto.c := NM=arm-none-linux-gnueabihf-gcc-nm \
      u-boot/scripts/gen_ll_addressable_symbols.sh arch/arm/cpu/built-in.o \
      .... net/built-in.o >keep-syms-lto.c
      
      cmd_keep-syms-lto.c := u-boot/scripts/gen_ll_addressable_symbols.sh \
      arm-none-linux-gnueabihf-gcc-nm arch/arm/cpu/built-in.o \
      ... net/built-in.o > keep-syms-lto.c
      
      Reviewed-by: Simon Glass's avatarSimon Glass <sjg@chromium.org>
      Signed-off-by: Patrick Delaunay's avatarPatrick Delaunay <patrick.delaunay@foss.st.com>
      ff7852d5
  16. Jul 28, 2021
  17. Jul 27, 2021
  18. Jul 14, 2021
    • Tom Rini's avatar
      scripts/get_default_envs.sh: Update for thin archive support · 963fde31
      Tom Rini authored
      
      This script was broken by the change to default archives for linking.
      This is due to objcopy specifically disallowing copying of thin
      archives.  To fix this and re-support external users of this script,
      switch to using the same logic the u-boot-initial-env make target uses
      to dump the section from the object file.
      
      Reported-by: default avatarJan Kiszka <jan.kiszka@web.de>
      Fixes: 958f2e57 ("build: use thin archives instead of incremental linking")
      Signed-off-by: default avatarTom Rini <trini@konsulko.com>
      963fde31
    • Tom Rini's avatar
      kconfig / kbuild: Re-sync with Linux 4.20 · 473fc279
      Tom Rini authored
      
      Align Kconfig and Kbuild logic to Linux 4.20 release with minimal impact
      on files outside of this scope.
      
      Our previous Kconfig sync was done by commit 587e4a42 ("kconfig /
      kbuild: Re-sync with Linux 4.19").
      
      As part of this re-sync, a few related changes from previous Linux
      releases were found to have been missed and merged in, and are not in
      the following list.
      
      The imported Linux commits are:
      
      [From prior to v4.19]
      b1e0d8b70fa3 kbuild: Fix gcc -x syntax
      a4353898980c kconfig: add CC_IS_GCC and GCC_VERSION
      469cb7376c06 kconfig: add CC_IS_CLANG and CLANG_VERSION
      
      [From v4.19 to v4.20]
      487c7c7702ab kbuild: prefix Makefile.dtbinst path with $(srctree) unconditionally
      0d91bf584fe5 kbuild: remove old check for CFLAGS use
      25815cf5ffec kbuild: hide most of targets when running config or mixed targets
      00d78ab2ba75 kbuild: remove dead code in cmd_files calculation in top Makefile
      23066c3f4e21 Compiler Attributes: enable -Wstringop-truncation on W=1 (gcc >= 8)
      37c8a5fafa3b kbuild: consolidate Devicetree dtb build rules
      80463f1b7bf9 kbuild: add --include-dir flag only for out-of-tree build
      77ec0c20c7e0 kbuild: remove VERSION and PATCHLEVEL from $(objtree)/Makefile
      74bc0c09b2da kbuild: remove user ID check in scripts/mkmakefile
      4fd61277f662 kbuild: do not pass $(objtree) to scripts/mkmakefile
      80d0dda3a4e5 kbuild: simplify command line creation in scripts/mkmakefile
      fb073a4b473e kbuild: add -Wno-pointer-sign flag unconditionally
      9df3e7a7d7d6 kbuild: add -Wno-unused-but-set-variable flag unconditionally
      69ea912fda74 kbuild: remove unneeded link_multi_deps
      7d0ea2524202 kbuild: use 'else ifeq' for checksrc to improve readability
      04c459d20448 kconfig: remove oldnoconfig target
      0085b4191f3e kconfig: remove silentoldconfig target
      3f80babd9ca4 kbuild: remove unused cc-fullversion variable
      2cd3faf87d2d merge_config.sh: Allow to define config prefix
      076f421da5d4 kbuild: replace cc-name test with CONFIG_CC_IS_CLANG
      6bbe4385d035 kconfig: merge_config: avoid false positive matches from comment lines
      
      [From post v4.20]
      885480b08469 Makefile: Move -Wno-unused-but-set-variable out of GCC only block
      
      There are a number of changes related to additional warnings as well as
      being able to drop cc-name entirely that have been omitted for now as
      additional work is required first.
      
      Cc: Masahiro Yamada <masahiroy@kernel.org>
      Signed-off-by: default avatarTom Rini <trini@konsulko.com>
      473fc279
    • Trevor Woerner's avatar
      get_maintainer.pl: update from Linux kernel v5.13-rc6 · e57c7c5c
      Trevor Woerner authored and Tom Rini's avatar Tom Rini committed
      
      Update U-Boot's version of scripts/get_maintainer.pl to sync it up with the
      latest changes to the Linux kernel's version of the same script.
      
      The last sync was with Linux kernel version v4.16. The commits to the kernel's
      get_maintainer.pl since then (starting with the most recent) are:
      
      	6343f6b71f83 get_maintainer: exclude MAINTAINERS file(s) from --git-fallback
      	cdfe2d220476 get_maintainer: add test for file in VCS
      	e33c9fe8b80c get_maintainer: fix unexpected behavior for path/to//file (double slashes)
      	0c78c0137621 get_maintainer: add email addresses from .yaml files
      	0ef82fcefb99 scripts/get_maintainer.pl: deprioritize old Fixes: addresses
      	ef0c08192ac0 get_maintainer: remove uses of P: for maintainer name
      	2f5bd343694e scripts/get_maintainer.pl: add signatures from Fixes: <badcommit> lines in commit message
      	49662503e8e4 get_maintainer: add ability to skip moderated mailing lists
      	0fbd75fd7fee get_maintainer: allow option --mpath <directory> to read all files in <directory>
      	5f0baf95b1ed get_maintainer.pl: add -mpath=<path or file> for MAINTAINERS file location
      	31bb82c9caa9 get_maintainer: allow usage outside of kernel tree
      	0455c74788fd get_maintainer: improve patch recognition
      	882ea1d64eb3 scripts: use SPDX tag in get_maintainer and checkpatch
      
      Signed-off-by: default avatarTrevor Woerner <twoerner@gmail.com>
      e57c7c5c
    • Rasmus Villemoes's avatar
      fixdep: remove leftover handling of IS_BUILTIN/IS_MODULE · 33b9027c
      Rasmus Villemoes authored and Tom Rini's avatar Tom Rini committed
      
      I removed CONFIG_IS_BUILTIN and CONFIG_IS_MODULE in commit
      7d78a454 ("linux/kconfig.h: remove unused helper macros"), but
      fixdep.c still looks for those. It's harmless, but also pointless and
      possibly confusing to a future reader.
      
      Fixes: 7d78a454 ("linux/kconfig.h: remove unused helper macros")
      Signed-off-by: default avatarRasmus Villemoes <rasmus.villemoes@prevas.dk>
      33b9027c
  19. Jul 08, 2021
  20. Jul 06, 2021
  21. Jun 17, 2021
  22. Jun 09, 2021
  23. May 25, 2021
  24. May 24, 2021
    • Marek Behún's avatar
      build: link with --build-id=none · da48bd9e
      Marek Behún authored and Tom Rini's avatar Tom Rini committed
      
      Some toolchains are compiled so that they pass a --build-id=something
      parameter to the linker implicitly.
      
      This causes U-Boot LTO linking to fail with something like:
        ld: section .note.gnu.build-id LMA ... overlaps section .text LMA ...
      because U-Boot's link scripts do not currently handle .note.gnu.build-id
      section.
      
      Fix this by explicitly disabling build-id.
      
      Signed-off-by: default avatarMarek Behún <marek.behun@nic.cz>
      Reviewed-by: Simon Glass's avatarSimon Glass <sjg@chromium.org>
      da48bd9e
    • Marek Behún's avatar
      build: support building with Link Time Optimizations · c1094987
      Marek Behún authored and Tom Rini's avatar Tom Rini committed
      
      Add plumbing for building U-Boot with Link Time Optimizations.
      
      When building with LTO, $(PLATFORM_LIBS) has to be in --whole-archive /
      --no-whole-archive group, otherwise some functions declared in assembly
      may not be resolved and linking may fail.
      
      Note: clang may throw away linker list symbols it thinks are unused when
      compiling with LTO. To force these symbols to be included, we refer to
      them via the __ADDRESSABLE macro in a C file generated from compiled
      built-in.o files before linking.
      
      Signed-off-by: default avatarMarek Behún <marek.behun@nic.cz>
      Reviewed-by: Simon Glass's avatarSimon Glass <sjg@chromium.org>
      c1094987
    • Marek Behún's avatar
      build: use thin archives instead of incremental linking · 958f2e57
      Marek Behún authored and Tom Rini's avatar Tom Rini committed
      
      Currently we use incremental linking (ld -r) to link several object
      files from one directory into one built-in.o object file containing the
      linked code from that directory (and its subdirectories).
      
      Linux has, some time ago, moved to thin archives instead.
      
      Thin archives are archives (.a) that do not really contain the object
      files, only references to them.
      
      Using thin archives instead of incremental linking
      - saves disk space
      - apparently works better with dead code elimination
      - makes things easier for LTO
      
      The third point is the important one for us. With incremental linking
      there are several options how to do LTO, and that would unnecessarily
      complicate things.
      
      We have to use the --whole-archive/--no-whole-archive linking option
      instead of --start-group/--end-group, otherwise linking may fail because
      of unresolved symbols, or the resulting binary will be unusable.
      
      We also need to use the P flag for ar, otherwise final linking may fail.
      
      Signed-off-by: default avatarMarek Behún <marek.behun@nic.cz>
      Reviewed-by: Simon Glass's avatarSimon Glass <sjg@chromium.org>
      958f2e57
Loading