23 Nov, 2014

1 commit


17 Nov, 2014

1 commit


13 Nov, 2014

1 commit

  • The Makefiles call the respective interpreter explicitly, but this makes
    it easier to use the scripts manually.

    (This commit follows commit 06ed5c2bfaca of Linux Kernel)

    Signed-off-by: Michal Marek
    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

08 Nov, 2014

5 commits

  • This commit imports some updates in misc scripts from Linux 3.18-rc1.

    [1] commit cbb4d3e6510b99522719c5ef0 by Horia Geanta
    scripts/kernel-doc: handle object-like macros

    [2] commit 164f0d2efaaef83 by Michal Marek
    kbuild: Fix handling of backslashes in *.cmd files

    [3] commit 270a00963cd367214e by Randy Dunlap
    scripts/kernel-doc: recognize __meminit

    [4] commit a4954fd7724c0f55361eb5 by Masahiro Yamada
    kbuild: remove obj-n and lib-n handling

    [5] commit 5b2389b45d1a9c12b9f by Masahiro Yamada
    kbuild: simplify build, clean, modbuiltin shorthands

    Signed-off-by: Horia Geanta
    Signed-off-by: Michal Marek
    Signed-off-by: Randy Dunlap
    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • This commit imports Kconfig updates from Linux 3.18-rc1.

    'kvmconfig' and 'tinyconfig' help message have been commented out
    since they are unavailable at least now; in the future perhaps
    we can implement 'tinyconfig' to disable most of CONFIG_CMD_* to
    create a very small U-Boot image.

    [1] commit 3aaefce10351 by Josh Triplett
    x86, platform, kconfig: move kvmconfig functionality to a helper

    [2] commit 0da1d4a0b951 by Josh Triplett
    x86: Add "make tinyconfig" to configure the tiniest possible kernel

    [3] commit c40724d3f381 by Brian Norris
    kconfig: lxdialog: fix spelling

    [4] commit 7285996aa000 by Brian Norris
    kconfig: nconfig: fix multi-byte UTF handling

    Signed-off-by: Josh Triplett
    Signed-off-by: Brian Norris
    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Since Linux 3.15, relative path feature and related fixes,
    cleanups have been merged to the top Makefile.

    The relative path feature looks stable enough, so let's import it
    to U-Boot along with various cleanups.

    Commits imported from Linux (some need adjustment) are:

    [1] commit 7e1c04779efd by Michal Marek
    kbuild: Use relative path for $(objtree)

    [2] commit 890676c65d69 by Michal Marek
    kbuild: Use relative path when building in the source tree

    [3] commit 9da0763bdd82 by Michal Marek
    kbuild: Use relative path when building in a subdir of the source tree

    [4] commit c2e28dc975ea by Michal Marek
    kbuild: Print the name of the build directory

    [5] commit 066b7ed95580 by Michal Marek
    kbuild: Do not print the build directory with make -s

    [6] commit 3f1d9a6cec01 by Michal Marek
    kbuild: make -s should be used with kernelrelease/kernelversion/image_name

    [7] commit 7ff525712acf by Masahiro Yamada
    kbuild: fake the "Entering directory ..." message more simply

    [8] commit 745a254322c8 by Masahiro Yamada
    kbuild: use $(Q) for sub-make target

    [9] commit aa55c8e2f7a3 by Masahiro Yamada
    kbuild: handle C=... and M=... after entering into build directory

    [10] commit ab7474ea5361 by Borislav Petkov
    Kbuild: Ignore GREP_OPTIONS env variable

    To use relative path feature, tools/Makefile and scripts/Makefile.autoconf
    must be tweaked.

    Signed-off-by: Michal Marek
    Signed-off-by: Borislav Petkov
    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Since Linux 3.18-rc1, Kbuild is able to handle multi-objs
    dependency correctly, which also allows us futher cleanups
    of some makefiles.

    This commit imports those commits:

    [1] commit c8589d1e9e01 by Masahiro Yamada
    kbuild: handle multi-objs dependency appropriately

    [2] commit 97e3226e6e98 by Masahiro Yamada
    kbuild: handle the dependency of multi-objs hostprogs appropriately

    [3] commit 022af62d0190 by Masahiro Yamada
    kbuild: refactor script/kconfig/Makefile

    [4] commit 221ecca6cafe by Masahiro Yamada
    kbuild: remove redundant clean-files from scripts/kconfig/Makefile

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • This commit imports updates of scripts/Makefile.host
    from Linux 3.18-rc1.

    Imported commits are:

    [1] commit d8d9efe22709 by Masahiro Yamada
    kbuild: fix a typo in scripts/Makefile.host

    [2] commit edb950c17de0 by Masahiro Yamada
    kbuild: fix a bug of C++ host program handling

    [3] commit 62e2210798ed by Masahiro Yamada
    kbuild: drop shared library support from Makefile.host

    [4] commit 663935593915 by Masahiro Yamada
    kbuild: clean up scripts/Makefile.host

    [5] commit 1791ff7179f6 by Masahiro Yamada
    kbuild: clean-up and bug fix of scripts/Makefile.host

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

05 Nov, 2014

2 commits


28 Oct, 2014

1 commit


24 Oct, 2014

2 commits

  • When spl/.config is updated by "make spl/menuconfig" or friends,
    spl/include/config/auto.conf, spl/include/generated/autoconf.h
    and some other files must be updated by "make silentoldconfig".

    There is no hook for SPL in the top Makefile, so this commit
    touches .config when spl/.config is updated to invoke silentoldconfig.
    Likewise for TPL.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • cmd_u-boot-spl includes $(PLATFORM_LIBS) which changes
    when CONFIG_USE_PRIVATE_GCC is updated. The u-boot-spl image
    should be re-linked if any prerequisite is newer than it
    or the command line has changed.
    $(call, if_changed,...) should be used instead of $(call cmd,...).

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

10 Oct, 2014

3 commits


25 Sep, 2014

2 commits


17 Sep, 2014

6 commits

  • For the SPL configuration, "make /" is used.
    Here,
    is either "spl" or "tpl"
    is one of "config", "menuconfig", "xconfig", etc.

    This commit adds two checks:

    [1] If is given an unsupported subimage, the configuration
    should error out like this:

    $ make qpl/menuconfig
    ***
    *** "make qpl/menuconfig" is not supported.
    ***

    [2] Make sure that "CONFIG_SPL" is enabled in the ".config" before
    running "make spl/menuconfig. Otherwise, the SPL image
    is not built at all. Having "spl/.config" makes no sense.
    In such a case, the configuration should exit with a message:

    $ make spl/menuconfig
    ***
    *** Create ".config" with "CONFIG_SPL" enabled
    *** before "make spl/menuconfig".
    ***

    Signed-off-by: Masahiro Yamada
    Suggested-by: Simon Glass

    Masahiro Yamada
     
  • This commit is a backport from Linux Kernel,
    commit 9d5db8949f1ecf4019785b04d8986835d3c0e99e,
    written by me.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • When a non-existing defconfig is specified,
    display an easy-to-understand message
    (fake the error message on Linux Kernel):

    $ make foo_defconfig
    ***
    *** Can't find default configuration "confis/foo_defconfig"!
    ***

    Signed-off-by: Masahiro Yamada
    Acked-by: Stephen Warren

    Masahiro Yamada
     
  • Since 3ff291f371fa9858426774f3732924bacb61ed1c
    (kconfig: convert Kconfig helper script into a shell script),
    "make savedefconfig" of TPL boards has not been working.

    Signed-off-by: Masahiro Yamada
    Acked-by: Simon Glass

    Masahiro Yamada
     
  • Commit 3ff291f371fa9858426774f3732924bacb61ed1c
    (kconfig: convert Kconfig helper script into a shell script)
    introduced another regression.

    Shell usually handles whitespaces as separators,
    so "make saveconfig" outputs

    # CONFIG_FOO is not set

    into:

    #
    CONFIG_FOO
    is
    not
    set

    Whitespaces should not be treated as separators here.

    Signed-off-by: Masahiro Yamada
    Acked-by: Simon Glass

    Masahiro Yamada
     
  • Commit 3ff291f371fa9858426774f3732924bacb61ed1c
    (kconfig: convert Kconfig helper script into a shell script)
    introduced a minor regression.

    make alldefconfig; make savedefconfig
    should create an empty 'defconfig'.

    Signed-off-by: Masahiro Yamada
    Acked-by: Simon Glass

    Masahiro Yamada
     

09 Sep, 2014

1 commit


29 Aug, 2014

2 commits


22 Aug, 2014

6 commits

  • Commit 51148790 added scripts/multiconfig.py written in Python 2
    to adjust Kconfig for U-Boot.

    It has been hard for Python 3 users because Python 2 and Python 3
    are not compatible with each other.

    We are not happy about adding a new host tool dependency
    (in this case, Python version dependency) for the core build process.
    After some discussion, we decided to use only basic tools.

    The script may get a bit more unreadable by shell scripting,
    but we believe it is worthwhile.

    In addition, this commit revives "_config" target that is
    equivalent to "_defconfig" for backwards compatibility.
    It is annoying to adjust various projects which use U-Boot.

    Signed-off-by: Masahiro Yamada
    Suggested-by: Igor Grinberg
    Tested-by: Igor Grinberg
    Acked-by: Simon Glass
    Cc: Tom Rini
    Cc: Jeroen Hofstee
    Cc: Stephen Warren

    Masahiro Yamada
     
  • Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Import scripts/objdiff improvements from Linux v3.16, which
    consists of 7 commits written by me.

    commit 7fa0e6db3cedc9b70d68a4170f1352e2b1aa0f90
    scripts: objdiff: support directories for the augument of record command

    commit 8ac28bee76eec006aac5ba5c418878a607d53a9b
    scripts: objdiff: fix a comment

    commit 8b5d0f20d64f00ffd5685879f8eb3659379f5aaa
    scripts: objdiff: change the extension of disassembly from .o to .dis

    commit 18165efa8203a34d82f60a1831ea290e7304c654
    scripts: objdiff: improve path flexibility for record command

    commit 1ecc8e489abfdaa6d8d1689f7ff62fdf1adda30c
    scripts: objdiff: remove unnecessary code

    commit 5ab370e91af70d5f1b1dbaec78798a2ff236a2d5
    scripts: objdiff: direct error messages to stderr

    commit fd6e12423311697860f30d10398a0f9eb91977d2
    scripts: objdiff: get the path to .tmp_objdiff more simply

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • "make %_config all" was supported for the first time in U-Boot:
    commit 53bca5ab
    kbuild: support simultaneous board configuration and "make all"

    Surprisingly it had not been working in Linux Kernel for a long time.

    So I sent back the patch to the Linux Kbuild community and it was
    accepted with a little code improvement, at commit 9319f453.

    Now, you can do "make defconfig all" or "make %_defconfig all"
    in Linux too.

    This commit updates some scripts to fill the code-diff
    between Linux and U-Boot.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • This commit was imported from Linux Kernel:
    commit a86fe353 written by me.

    W=... provides extra gcc checks.

    Having such code in scripts/Makefile.build results in the same flags
    being added to KBUILD_CFLAGS multiple times becuase
    scripts/Makefile.build is invoked every time Kbuild descends into
    the subdirectories.

    Since the top Makefile is already too cluttered, this commit moves
    all of extra gcc check stuff to a new file scripts/Makefile.extrawarn,
    which is included from the top Makefile.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • In Python, sys.exit() function can also take an object other
    than an integer.

    If an integer is given to the argument, Python exits with the return
    code of it. If a non-integer argument is given, Python outputs it
    to stderr and exits with the return code of 1.

    That means,

    print >> sys.stderr, "Blah Blah"
    sys.exit(1)

    is equivalent to

    sys.exit("Blah Blah")

    The latter is a useful shorthand.

    Note:
    Some error messages in Buildman and Patman were output to stdout.
    But they should go to stderr. They are also fixed by this commit.
    This is a nice side effect.

    Signed-off-by: Masahiro Yamada
    Acked-by: Simon Glass

    Masahiro Yamada
     

09 Aug, 2014

3 commits


30 Jul, 2014

2 commits

  • This commit enables Kconfig.
    Going forward, we use Kconfig for the board configuration.
    mkconfig will never be used. Nor will include/config.mk be generated.

    Kconfig must be adjusted for U-Boot because our situation is
    a little more complicated than Linux Kernel.
    We have to generate multiple boot images (Normal, SPL, TPL)
    from one source tree.
    Each image needs its own configuration input.

    Usage:

    Run "make _defconfig" to do the board configuration.

    It will create the .config file and additionally spl/.config, tpl/.config
    if SPL, TPL is enabled, respectively.

    You can use "make config", "make menuconfig" etc. to create
    a new .config or modify the existing one.

    Use "make spl/config", "make spl/menuconfig" etc. for spl/.config
    and do likewise for tpl/.config file.

    The generic syntax of configuration targets for SPL, TPL is:

    /

    Here, is either 'spl' or 'tpl'
    is 'config', 'menuconfig', 'xconfig', etc.

    When the configuration is done, run "make".
    (Or "make _defconfig all" will do the configuration and build
    in one time.)

    For futher information of how Kconfig works in U-Boot,
    please read the comment block of scripts/multiconfig.py.

    By the way, there is another item worth remarking here:
    coexistence of Kconfig and board herder files.

    Prior to Kconfig, we used C headers to define a set of configs.

    We expect a very long term to migrate from C headers to Kconfig.
    Two different infractructure must coexist in the interim.

    In our former configuration scheme, include/autoconf.mk was generated
    for use in makefiles.
    It is still generated under include/, spl/include/, tpl/include/ directory
    for the Normal, SPL, TPL image, respectively.

    Signed-off-by: Masahiro Yamada
    Acked-by: Simon Glass

    Masahiro Yamada
     
  • Import
    - scripts/kconfig/*
    - include/linux/kconfig.h
    from Linux 3.16-rc7.

    Signed-off-by: Masahiro Yamada
    Reviewed-by: Simon Glass

    Masahiro Yamada
     

29 Jul, 2014

1 commit

  • U-Boot is expected to be built on various platforms.

    We should keep in mind that the command 'make' is not always GNU Make,
    while all the makefiles are written for GNU Make.

    For example, on Linux, people generally do:

    make _config; make

    But FreeBSD folks do

    gmake _config; gmake

    (The command 'make' on FreeBSD is BSD Make, not GNU Make)

    It is not a good idea to hard-code the command name 'make'
    in MAKEALL or buildman.

    They should call this helper script and get the command name
    for GNU Make.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

22 Jul, 2014

1 commit

  • This tool helps to create/update the mailmap file.

    It runs 'git shortlog' internally and searches differently spelled author
    names which share the same email address. The author name with the most
    commits is asuumed to be a canonical real name. If the number of commits
    from the cananonical name is equal to or greater than 'MIN_COMMITS' (=50),
    the entry for the cananical name will be output. ('MIN_COMMITS' is used
    here because we do not want to create a fat mailmap by adding every author
    with only a few commits.)

    If there exists a mailmap file specified by the mailmap.file configuration
    options or '.mailmap' at the toplevel of the repository, it is used as
    a base file.

    The base file and the newly added entries are merged together and sorted
    alphabetically (but the comment block is kept untouched), and then printed
    to standard output.

    Usage
    -----

    scripts/mailmapper

    prints the mailmapping to standard output.

    scripts/mailmapper > tmp; mv tmp .mailmap

    will be useful for updating '.mailmap' file.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada