Skip to content
Snippets Groups Projects
  1. Apr 10, 2020
    • Tom Rini's avatar
      kconfig / kbuild: Re-sync with Linux 4.19 · 587e4a42
      Tom Rini authored
      
      Align Kconfig and Kbuild logic to Linux 4.19 release with minimal impact
      on files outside of this scope.
      
      Our previous Kconfig sync was done by commit 5972ff07 ("kconfig /
      kbuild: re-sync with Linux 4.18").
      
      In this particular re-sync in order to keep clang support working a
      number of related changes needed to be pulled in that had been missed
      previously.  Not all of these changes we easily traceable and so have
      been omitted from the list below.
      
      The imported Linux commits are:
      [From prior to v4.18]
      9f3f1fd29976 kbuild: Add __cc-option macro
      d7f14c66c273 kbuild: Enable Large File Support for hostprogs
      6d79a7b424a5 kbuild: suppress warnings from 'getconf LFS_*'
      24403874316a Shared library support
      86a9df597cdd kbuild: fix linker feature test macros when cross compiling with Clang
      0294e6f4a000 kbuild: simplify ld-option implementation
      
      [From v4.18 to v4.19]
      96f14fe738b6 kbuild: Rename HOSTCFLAGS to KBUILD_HOSTCFLAGS
      10844aebf448 kbuild: Rename HOSTCXXFLAGS to KBUILD_HOSTCXXFLAGS
      b90a368000ab kbuild: Rename HOSTLDFLAGS to KBUILD_HOSTLDFLAGS
      8377bd2b9ee1 kbuild: Rename HOST_LOADLIBES to KBUILD_HOSTLDLIBS
      f92d19e0ef9b kbuild: Use HOST*FLAGS options from the command line
      4ab3b80159d4 kconfig: check for pkg-config on make {menu,n,g,x}config
      693359f7ac90 kconfig: rename SYMBOL_AUTO to SYMBOL_NO_WRITE
      f60b992e30ff kbuild: replace $(LDFLAGS) $(ldflags-y) with $(ld_flags)
      2fb9279f2c3e kbuild: change ld_flags to contain LDFLAGS_$(@F)
      c931d34ea085 arm64: build with baremetal linker target instead of Linux when available
      5accd7f3360e kconfig: handle format string before calling conf_message_callback()
      a2ff4040151a kconfig: rename file_write_dep and move it to confdata.c
      0608182ad542 kconfig: split out useful helpers in confdata.c
      adc18acf42a1 kconfig: remove unneeded directory generation from local*config
      79123b1389cc kconfig: create directories needed for syncconfig by itself
      16952b77d8b5 kconfig: make syncconfig update .config regardless of sym_change_count
      d6c6ab93e17f kbuild: remove deprecated host-progs variable
      56869d45e364 kconfig: fix the rule of mainmenu_stmt symbol
      c151272d1687 kconfig: remove unused sym_get_env_prop() function
      1880861226c1 kconfig: remove P_ENV property type
      e3fd9b5384f3 scripts/dtc: consolidate include path options in Makefile
      4bf6a9af0e91 kconfig: add build-only configurator targets
      f1575595d156 kconfig: error out when seeing recursive dependency
      5e8c5299d315 kconfig: report recursive dependency involving 'imply'
      f498926c47aa kconfig: improve the recursive dependency report
      98a4afbfafd2 kconfig: fix "Can't open ..." in parallel build
      9a9ddcf47831 kconfig: suppress "configuration written to .config" for syncconfig
      87a32e624037 kbuild: pass LDFLAGS to recordmcount.pl
      d503ac531a52 kbuild: rename LDFLAGS to KBUILD_LDFLAGS
      217c3e019675 disable stringop truncation warnings for now
      bc8d2e20a3eb kconfig: remove a spurious self-assignment
      fd65465b7016 kconfig: do not require pkg-config on make {menu,n}config
      5a4630aadb9a ftrace: Build with CPPFLAGS to get -Qunused-arguments
      
      Note that this adds new cleanup work to do in that we should adapt the
      shared library support we have to what is now upstream.
      
      Signed-off-by: default avatarTom Rini <trini@konsulko.com>
      Reviewed-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      587e4a42
  2. Mar 16, 2020
    • Tom Rini's avatar
      kconfig / kbuild: re-sync with Linux 4.18 · 5972ff07
      Tom Rini authored
      
      Align Kconfig and Kbuild logic to Linux 4.18 release with minimal impact
      on files outside of this scope.
      
      Our previous Kconfig sync was done by commit e91610da ("kconfig:
      re-sync with Linux 4.17-rc4").
      
      A very small number of changes upstream since our sync with v4.17-rc4
      that exist in the v4.18 release have already been applied here and have
      been omitted from the list in this commit (and are readily available in
      our own git history).
      
      The imported Linux commits are:
      [From prior to v4.17-rc4]
      39a33ff80a25 kbuild: remove cc-option-align
      db547ef19064 Kbuild: don't add obj tree in additional includes
      b999596b963a Kbuild: don't add ../../ to include path
      
      [From v4.17 to v4.18]
      b3aa58d2e85d fixdep: suppress consecutive / from file paths in dependency list files
      74656b682902 kbuild: disable new dtc graph and unit-address warnings
      74d931716151 genksyms: remove symbol prefix support
      e6ecfb45072c kbuild: do not display CHK for filechk
      0b669a5076fd kconfig: refactor Qt package checks for building qconf
      b464ef583dc7 kconfig: refactor GTK+ package checks for building gconf
      1c5af5cf9308 kconfig: refactor ncurses package checks for building mconf and nconf
      694c49a7c01c kconfig: drop localization support
      96f60dfa5819 trace: Use -mcount-record for dynamic ftrace
      bb222ceeb327 kconfig: remove string expansion in file_lookup()
      96d8e48da55a kconfig: remove string expansion for mainmenu after yyparse()
      5b31a9746756 kconfig: remove sym_expand_string_value()
      137c0118a900 kconfig: make default prompt of mainmenu less specific
      e298f3b49def kconfig: add built-in function support
      2fd5b09c201e kconfig: add 'shell' built-in function
      9de071536c87 kconfig: begin PARAM state only when seeing a command keyword
      9ced3bddec08 kconfig: support user-defined function and recursively expanded variable
      1175c02506ff kconfig: support simply expanded variable
      ed2a22f277c6 kconfig: support append assignment operator
      82bc8bd82e5c kconfig: expand lefthand side of assignment statement
      1d6272e6fe43 kconfig: add 'info', 'warning-if', and 'error-if' built-in functions
      a702a6176e2f kconfig: add 'filename' and 'lineno' built-in variables
      915f64901eb3 kconfig: error out if a recursive variable references itself
      2bece88f89fa kconfig: test: add Kconfig macro language tests
      21c54b774744 kconfig: show compiler version text in the top comment
      59f7b5847b0c kbuild: $(CHECK) doesnt need NOSTDINC_FLAGS twice
      145167650b96 kbuild: add endianness flag to CHEKCFLAGS
      1f2f01b122d7 kbuild: add machine size to CHECKFLAGS
      d6a0c8a1326b kconfig: Add testconfig into make help output
      bb6d83dde191 kbuild: Move last word of nconfig help to the previous line
      8593080c0fcf kconfig: fix localmodconfig
      ed7d40bc67b8 tracing: Fix SKIP_STACK_VALIDATION=1 build due to bad merge with -mrecord-mcount
      b2d00d7c61c8 kconfig: fix line numbers for if-entries in menu tree
      ecd53ac2f2c6 kconfig: handle P_SYMBOL in print_symbol()
      73d1c580f92b kconfig: loop boundary condition fix
      48f6e3cf5bc6 kbuild: do not drop -I without parameter
      bd412d81b7ea kbuild: .PHONY is not a variable, but PHONY is
      6916162c7308 kbuild: remove duplicated comments about PHONY
      
      Cc: Masahiro Yamada <masahiroy@kernel.org>
      Signed-off-by: default avatarTom Rini <trini@konsulko.com>
      Reviewed-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      5972ff07
  3. Jul 24, 2018
    • Luis Araneda's avatar
      kconfig: Avoid format overflow warning from GCC 8.1 · 0dc4addb
      Luis Araneda authored and Masahiro Yamada's avatar Masahiro Yamada committed
      
      cherry-pick kernel commit 2ae89c7 (2018-06-05)
      to avoid warnings when compiling with GCC 8.1
      
      In file included from scripts/kconfig/zconf.tab.c:2486:
      scripts/kconfig/confdata.c: In function ‘conf_write’:
      scripts/kconfig/confdata.c:771:22: warning: ‘%s’ directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
        sprintf(newname, "%s%s", dirname, basename);
                            ^~
      scripts/kconfig/confdata.c:771:19: note: assuming directive output of 7 bytes
        sprintf(newname, "%s%s", dirname, basename);
                         ^~~~~~
      scripts/kconfig/confdata.c:771:2: note: ‘sprintf’ output 1 or more bytes (assuming 4104) into a destination of size 4097
        sprintf(newname, "%s%s", dirname, basename);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      scripts/kconfig/confdata.c:774:23: warning: ‘.tmpconfig.’ directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
         sprintf(tmpname, "%s.tmpconfig.%d", dirname, (int)getpid());
                             ^~~~~~~~~~~
      scripts/kconfig/confdata.c:774:3: note: ‘sprintf’ output between 13 and 4119 bytes into a destination of size 4097
         sprintf(tmpname, "%s.tmpconfig.%d", dirname, (int)getpid());
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      
      Signed-off-by: default avatarLuis Araneda <luaraneda@gmail.com>
      Signed-off-by: Masahiro Yamada's avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      0dc4addb
  4. May 31, 2018
    • Eugeniu Rosca's avatar
      kconfig: re-sync with Linux 4.17-rc4 · e91610da
      Eugeniu Rosca authored and Tom Rini's avatar Tom Rini committed
      
      Align Kconfig to Linux 4.17-rc4 with minimal impact on non-kconfig files.
      
      Previous Kconfig sync was done by commit bf7ab1e7 ("kconfig:
      re-sync with Linux 4.10") and it achieved almost perfect alignment with
      a few (intended) exceptions, caused by below U-boot commits:
      
      [A] v2015.04 5f9eb220 ("kbuild: remove scripts/multiconfig.sh")
      [B] v2015.07 20c20826 ("Kconfig: Enable usage of escape char '\' in string values")
      [C] v2016.01 da58dec8 ("Various Makefiles: Add SPDX-License-Identifier tags")
      [D] v2016.03 5b8031cc ("Add more SPDX-License-Identifier tags")
      [E] v2016.03 192bc694 ("Fix GCC format-security errors and convert sprintfs.")
      
      Here is the list of Kconfig commits which followed the v4.10 alignment:
      
      [F] v2018.01 0931ed3c ("kconfig/symbol.c: use correct pointer type argument for sizeof")
      [G] v2018.03 1414e09b ("kconfig: revert change that was not needed for -Wformat-security")
      [H] v2018.05 83d290c5 ("SPDX: Convert all of our single license tags to Linux Kernel style")
      
      Commit [F] was subsequently applied to Linux kernel as commit [I]
      with the same patch id, so it won't contribute to further misalignment.
      
      [I] v4.15-rc1 88127dae6ed9 ("kconfig/symbol.c: use correct pointer type argument for sizeof")
      
      Commit [G] is a Kconfig-specific revert of commit [E].
      Commit [H] relocated and reformatted the license doing no functional change.
      
      In summary, the only functional change that makes U-boot Kconfig
      diverge from Linux Kconfig is commit [B]. After a brief analysis,
      the purpose of [B] seems to be placing "\n" literals in string symbols
      like CONFIG_AUTOBOOT_PROMPT="autoboot in %d seconds\n" in order to pass
      them directly to printf and expect correct output at runtime. Currently,
      Linux doesn't seem to have this requirement, so for the moment [B] looks
      like a U-boot specific feature/fix. From point of view of further Kconfig
      alignment and backporting efforts, it is highly desired that commits
      like [B] are propagated to Linux and any Kconfig fixes/features are
      contributed to Linux kernel first. This specific Kconfig re-sync just
      keeps [B] in place.
      
      Contrary to 4.10 Kconfig re-sync (which achieves zero non-kconfig
      changes), 4.17-rc4 re-sync does some amount of updates in Kbuild
      (striving to keep them at minimum), due to a number of reasons:
      * Kbuild is affected by the removal of Kconfig "*shipped" files and now
        requires flex and bison pre-installed on the host.
      * PYTHON{2,3} variables are defined in top-level Makefile as
        prerequisite for running the newly developed Kconfig unit tests.
      * silentoldconfig becomes an "internal implementation detail" deprecated
        for external use, being renamed to syncconfig.
      
      The exact non-kconfig files touched by this commit are:
      
      $ git show --format="" --stat -- ':!scripts/kconfig'
       .gitignore             |  2 ++
       Makefile               |  9 +++++++--
       scripts/Makefile.build | 11 +++++++++++
       scripts/Makefile.lib   | 41 ++++++++++++-----------------------------
      
      The imported Linux commits touching the above files are:
      
      c054be10ffdbd5   ("remove gperf left-overs from build system")
      73a4f6dbe70a1b   ("kbuild: add LEX and YACC variables")
      033dba2ec06c47   ("kbuild: prepare to remove C files pre-generated by flex and bison")
      eea199b445f64c   ("kbuild: remove unnecessary LEX_PREFIX and YACC_PREFIX")
      e71de5ee08dcb0   ("kbuild: remove remaining use of undefined YACC_PREFIX")
      d59fbbd09d5d6b   ("kbuild: replace hardcoded bison in cmd_bison_h with $(YACC)")
      911a91c39cabcb H ("kconfig: rename silentoldconfig to syncconfig")
      59889300274569   (".gitignore: move *.lex.c *.tab.[ch] patterns to the top-level .gitignore")
      9a8dfb394c0467   ("kbuild: clean up *.lex.c and *.tab.[ch] patterns from top-level Makefile")
      833e622459432e H ("genksyms: generate lexer and parser during build instead of shipping")
      b23d1a241f4eb4 H ("kbuild: add %.lex.c and %.tab.[ch] to 'targets' automatically")
      e9781b52d4e0e3 H ("kbuild: add PYTHON2 and PYTHON3 variables")
      
      The commits marked with 'H' are assessed as "hard" (build will fail)
      prerequisites and the rest of them are assessed as "soft" prerequisites
      for the re-sync. In spite of relatively high number of non-H commits,
      they belong to this Kconfig update topic-wise and decrease the number of
      cherry pick conflicts for many commits in this series. Additional effort
      can be put in eliminating the soft prerequisites, if really needed.
      
      The commits which contributed to this Kconfig re-sync are listed below.
      Whenever a conflict resolution has been performed (mostly by hand, but
      sometimes automatically by git), it is revealed by the '!' sign in the
      second column, which means a patch id mismatch between Linux and U-boot
      commits:
      
      9be3213b14d44f   ("gconfig: remove misleading parentheses around a condition")
      ff85a1a80e0034   ("kconfig: Check for libncurses before menuconfig")
      ad8181060788c8   ("kconfig: fix sparse warnings in nconfig")
      cb77f0d623ff33 ! ("scripts: Switch to more portable Perl shebang")
      bb3290d91695bb ! ("Remove gperf usage from toolchain")
      c054be10ffdbd5   ("remove gperf left-overs from build system")
      b24413180f5600 ! ("License cleanup: add SPDX GPL-2.0 license identifier to files with no license")
      9059a3493efea6 ! ("kconfig: fix relational operators for bool and tristate symbols")
      2c37e08464a850   ("kconfig: Warn if choice default is not in choice")
      33ca1a24866373   ("kconfig: Document the 'menu' struct")
      52aede4ba5efd1   ("kconfig: Document the 'symbol' struct")
      c873443430ebd1   ("kconfig: Sync zconf.y with zconf.tab.c_shipped")
      9a826842ff2fbd   ("kconfig: Rename menu_check_dep() to rewrite_m()")
      fa8cedaef814ce   ("kconfig: Clarify expression rewriting")
      f77850d3fe0c96   ("kconfig: Clean up modules handling and fix crash")
      e3b03bf29d6b99   ("kconfig: display recursive dependency resolution hint just once")
      73a4f6dbe70a1b ! ("kbuild: add LEX and YACC variables")
      033dba2ec06c47 ! ("kbuild: prepare to remove C files pre-generated by flex and bison")
      29c833061c1d8c   ("kconfig: generate lexer and parser during build instead of shipping")
      26e47a3c11a25c   ("kconfig: Don't leak symbol names during parsing")
      24161a6711c945   ("kconfig: Don't leak 'source' filenames during parsing")
      bc28fe1d5ede88   ("kconfig: Don't leak 'option' arguments during parsing")
      0724a7c32a54e3   ("kconfig: Don't leak main menus during parsing")
      ae7440ef0c8013   ("kconfig: Fix automatic menu creation mem leak")
      5b1374b3b3c2fc   ("kconfig: Fix expr_free() E_NOT leak")
      7cf33f88e29410   ("kconfig: Fix choice symbol expression leak")
      05cccce580456d   ("kconfig: Document automatic submenu creation code")
      0735f7e5def2ab   ("kconfig: Document important expression functions")
      df60f4b92d3d0b   ("kconfig: Remove menu_end_entry()")
      b92d804a51796b   ("kconfig: drop 'boolean' keyword")
      6479f327dea60d   ("kconfig: Warn if there is more than one help text")
      52e58a3caeba5d   ("kconfig: make input_mode static")
      5a3dc717b3c785   ("kconfig: make xfgets() really static")
      84dd95d4f87a0d   ("kconfig: make conf_unsaved a local variable of conf_read()")
      765f4cdef6f80d   ("kconfig: use default 'yy' prefix for lexer and parser")
      eea199b445f64c   ("kbuild: remove unnecessary LEX_PREFIX and YACC_PREFIX")
      e71de5ee08dcb0   ("kbuild: remove remaining use of undefined YACC_PREFIX")
      d59fbbd09d5d6b ! ("kbuild: replace hardcoded bison in cmd_bison_h with $(YACC)")
      3e41ba05b6d60c   ("kconfig: Document SYMBOL_OPTIONAL logic")
      d3465af60f4471   ("kconfig: Clarify choice dependency propagation")
      9d1a9e8bc18bea   ("kconfig: Document 'if' flattening logic")
      b53688014e3325   ("kconfig: Clarify menu and 'if' dependency propagation")
      d0fd0428ecf04b   ("kconfig: fix make xconfig when gettext is missing")
      312ee68752faaa   ("kconfig: announce removal of oldnoconfig if used")
      1ccb27143360bd   ("kconfig: make "Selected by:" and "Implied by:" readable")
      cedd55d49dee94 ! ("kconfig: Remove silentoldconfig from help and docs; fix kconfig/conf's help")
      1b9eda2e4892cb   ("kconfig: Warn if help text is blank")
      cb67ab2cd2b8ab   ("kconfig: do not write choice values when their dependency becomes n")
      4f208f392103e8   ("kconfig: show '?' prompt even if no help text is available")
      cd58a91def2acc   ("kconfig: remove 'config*' pattern from .gitignnore")
      d2a04648a5dbc3   ("kconfig: remove check_stdin()")
      f3ff6fb5db68bc   ("kconfig: echo stdin to stdout if either is redirected")
      9e3e10c725360b   ("kconfig: send error messages to stderr")
      d717f24d8c6808   ("kconfig: add xrealloc() helper")
      523ca58b7db2e3   ("kconfig: remove const qualifier from sym_expand_string_value()")
      cd81fc82b93fa4   ("kconfig: add xstrdup() helper")
      f4bc1eefc1608e   ("kconfig: set SYMBOL_AUTO to the symbol marked with defconfig_list")
      bf0bbdcf100322   ("kconfig: Don't leak choice names during parsing")
      1a90ce36c6eff6   ("kconfig: Update ncurses package names for menuconfig")
      5ae6fcc4bb82bd   ("kconfig: fix line number in recursive inclusion error message")
      07a422bb213adb ! ("kbuild: restore autoksyms.h touch to the top Makefile")
      9a47ceec543bfb   ("kconfig: clean-up reverse dependency help implementation")
      d9119b5925a03b   ("kconfig: Print reverse dependencies in groups")
      f467c5640c29ad   ("kconfig: only write '# CONFIG_FOO is not set' for visible symbols")
      59a80b5e892dde   ("kconfig: do not call check_conf() for olddefconfig")
      4bb3a5b085cd6f   ("kconfig: remove unneeded input_mode test in conf()")
      99f0b6578bab44   ("kconfig: remove redundant input_mode test for check_conf() loop")
      2aad9b89621386   ("kconfig: hide irrelevant sub-menus for oldconfig")
      81d2bc2273052e   ("kconfig: invoke oldconfig instead of silentoldconfig from local*config")
      911a91c39cabcb ! ("kconfig: rename silentoldconfig to syncconfig")
      2a61625835c7c8 ! ("kconfig: remove redundant streamline_config.pl prerequisite")
      022a4bf6b59dfd   ("kconfig: tests: add framework for Kconfig unit testing")
      1903c511905984   ("kconfig: tests: add basic choice tests")
      49ac3c0c3aa3b7   ("kconfig: tests: test automatic submenu creation")
      b76960c0f6b25d   ("kconfig: tests: test if new symbols in choice are asked")
      930c429a656fdb   ("kconfig: tests: check unneeded "is not set" with unmet dependency")
      ee236610653ede   ("kconfig: tests: check visibility of tristate choice values in y choice")
      beaaddb625400e   ("kconfig: tests: test defconfig when two choices interact")
      3e4888c2e3d77d   ("kconfig: tests: test randconfig for choice in choice")
      29c434f367ea7b   ("kconfig: tests: test if recursive dependencies are detected")
      e2c75e7667c737   ("kconfig: tests: test if recursive inclusion is detected")
      f622f827958162   ("kconfig: warn unmet direct dependency of tristate symbols selected by y")
      f8f69dc0b4e070   ("kconfig: make unmet dependency warnings readable")
      26561514cc9def   ("kconfig: do not include both curses.h and ncurses.h for nconfig")
      32a94b8b0c3e5a   ("kconfig: remove duplicated file name and lineno of recursive inclusion")
      379a8eb8eb1a55   ("kconfig: detect recursive inclusion earlier")
      18492685e479fd   ("kconfig: use yylineno option instead of manual lineno increments")
      59889300274569 ! (".gitignore: move *.lex.c *.tab.[ch] patterns to the top-level .gitignore")
      9a8dfb394c0467 ! ("kbuild: clean up *.lex.c and *.tab.[ch] patterns from top-level Makefile")
      833e622459432e ! ("genksyms: generate lexer and parser during build instead of shipping")
      b23d1a241f4eb4 ! ("kbuild: add %.lex.c and %.tab.[ch] to 'targets' automatically")
      17baab68d337a0   ("kconfig: extend output of 'listnewconfig'")
      e9781b52d4e0e3 ! ("kbuild: add PYTHON2 and PYTHON3 variables")
      
      The current Kconfig update generates below build-time warnings:
        YACC    scripts/dtc/dtc-parser.tab.h
      scripts/dtc/dtc-parser.y: warning: 3 shift/reduce conflicts [-Wconflicts-sr]
        YACC    scripts/dtc/dtc-parser.tab.c
      scripts/dtc/dtc-parser.y: warning: 3 shift/reduce conflicts [-Wconflicts-sr]
      
      This seems to happen because the Kbuild updates apparently didn't make
      room for both "*shipped"-based builds and flex/bison-based builds. A
      similar problem has been reported for genksyms parser in v4.17-rc1
      commit 833e622459432e ("genksyms: generate lexer and parser during build
      instead of shipping"). I have figured out empirically that the warnings
      are healed after updating the in-tree U-boot DTC to upstream v1.4.6-9,
      same as done by Linux v4.17-rc1 commit 9130ba88464032 ("scripts/dtc:
      Update to upstream version v1.4.6-9-gaadd0b65c987"). Whether fixing the
      DTC-related yacc warnings should be done together with the Kconfig
      re-sync, I would like to hear from community.
      
      My testing was limited to:
      - make defconfig all
      - make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- r8a7795_ulcb_defconfig all
      - comparing .config before and after the re-sync
      - running the newly imported Kconfig unit tests as seen below:
      
      $ make testconfig
      Tested-by: default avatarPetr Vorel <petr.vorel@gmail.com>
      
      ============================= test session starts =============================
      scripts/kconfig/tests/auto_submenu/__init__.py::test PASSED             [  7%]
      scripts/kconfig/tests/choice/__init__.py::test_oldask0 PASSED           [ 14%]
      scripts/kconfig/tests/choice/__init__.py::test_oldask1 PASSED           [ 21%]
      scripts/kconfig/tests/choice/__init__.py::test_allyes PASSED            [ 28%]
      scripts/kconfig/tests/choice/__init__.py::test_allmod PASSED            [ 35%]
      scripts/kconfig/tests/choice/__init__.py::test_allno PASSED             [ 42%]
      scripts/kconfig/tests/choice/__init__.py::test_alldef PASSED            [ 50%]
      scripts/kconfig/tests/choice_value_with_m_dep/__init__.py::test PASSED  [ 57%]
      scripts/kconfig/tests/err_recursive_inc/__init__.py::test PASSED        [ 64%]
      scripts/kconfig/tests/inter_choice/__init__.py::test PASSED             [ 71%]
      scripts/kconfig/tests/new_choice_with_dep/__init__.py::test PASSED      [ 78%]
      scripts/kconfig/tests/no_write_if_dep_unmet/__init__.py::test PASSED    [ 85%]
      scripts/kconfig/tests/rand_nested_choice/__init__.py::test PASSED       [ 92%]
      scripts/kconfig/tests/warn_recursive_dep/__init__.py::test PASSED       [100%]
      ========================== 14 passed in 0.34 seconds ==========================
      
      Signed-off-by: default avatarEugeniu Rosca <erosca@de.adit-jv.com>
      Reviewed-by: Masahiro Yamada's avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      Tested-by: default avatarPetr Vorel <petr.vorel@gmail.com>
      e91610da
  5. May 07, 2018
    • Tom Rini's avatar
      SPDX: Convert all of our single license tags to Linux Kernel style · 83d290c5
      Tom Rini authored
      
      When U-Boot started using SPDX tags we were among the early adopters and
      there weren't a lot of other examples to borrow from.  So we picked the
      area of the file that usually had a full license text and replaced it
      with an appropriate SPDX-License-Identifier: entry.  Since then, the
      Linux Kernel has adopted SPDX tags and they place it as the very first
      line in a file (except where shebangs are used, then it's second line)
      and with slightly different comment styles than us.
      
      In part due to community overlap, in part due to better tag visibility
      and in part for other minor reasons, switch over to that style.
      
      This commit changes all instances where we have a single declared
      license in the tag as both the before and after are identical in tag
      contents.  There's also a few places where I found we did not have a tag
      and have introduced one.
      
      Signed-off-by: default avatarTom Rini <trini@konsulko.com>
      83d290c5
  6. Jan 29, 2018
    • Masahiro Yamada's avatar
      kconfig: revert change that was not needed for -Wformat-security · 1414e09b
      Masahiro Yamada authored and Tom Rini's avatar Tom Rini committed
      
      Recent GCC versions warn if the format string is not a literal
      because the compiler cannot check the argument validity at compile
      time.
      
      Commit 192bc694 ("Fix GCC format-security errors and convert
      sprintfs.") blindly replaced sprintf() with strcpy(), including
      many cases where the format parameter is a string literal.
      
      For the kconfig change:
      
          sprintf(header, "   ");
      
      ..., here the format parameter is a string literal "   ", so it is
      definitely equivalent to:
      
          strcpy(header, "   ");
      
      Of course, if the 'header' did not have enough length for containing
      "   ", it would be a security problem, but another problem.  (in this
      case, the 'header' is 4 byte length buffer, so it is not a problem at
      all.)
      
      The kconfig code is kept as synced with Linux as possible, but this
      change made the code out-of-sync for nothing.  Just reverting.
      
      Signed-off-by: Masahiro Yamada's avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      1414e09b
  7. Nov 21, 2017
  8. Feb 12, 2017
  9. Jan 19, 2016
  10. Jan 15, 2016
  11. Nov 10, 2015
    • Tom Rini's avatar
      Various Makefiles: Add SPDX-License-Identifier tags · da58dec8
      Tom Rini authored
      
      After consulting with some of the SPDX team, the conclusion is that
      Makefiles are worth adding SPDX-License-Identifier tags too, and most of
      ours have one.  This adds tags to ones that lack them and converts a few
      that had full (or in one case, very partial) license blobs into the
      equivalent tag.
      
      Cc: Kate Stewart <kstewart@linuxfoundation.org>
      Signed-off-by: default avatarTom Rini <trini@konsulko.com>
      da58dec8
  12. Jul 27, 2015
    • Masahiro Yamada's avatar
      kconfig: sync with Linux 4.1 · 9b5f0b1d
      Masahiro Yamada authored and Tom Rini's avatar Tom Rini committed
      
      Update the files under scripts/kconfig/ to match Linux 4.1.
      Some Kconfig sources have diverged from those in the kernel,
      so commit-base syncing was done not to lose U-Boot specific updates.
      
      The commits cherry-picked from Linux are:
      
      [1] commit be8af2d54a66911693eddc556e4f7a866670082b
          Author: Bjørn Forsman <bjorn.forsman@gmail.com>
          kconfig/lxdialog: get ncurses CFLAGS with pkg-config
      
      [2] commit 3943f42c11896ce82ad3da132c8a5630313bdd0e
          Author: Andrey Utkin <andrey.krieger.utkin@gmail.com>
          Replace mentions of "list_struct" to "list_head"
      
      [3] commit e4e458b45c5861808674eebfea94cee2258bb2ea
          Author: Arjun Sreedharan <arjun024@gmail.com>
          calloc/xcalloc: Fix argument order
      
      [4] commit 09950bc256e3628d275f90e016e6f5a039fbdcab
          Author: Olof Johansson <olof@lixom.net>
          merge_config.sh: Display usage if given too few arguments
      
      [5] commit b6a2ab2cd4739a9573ed41677e53171987b8da34
          Author: Colin Ian King <colin.king@canonical.com>
          kconfig: use va_end to match corresponding va_start
      
      [6] commit 70529b1a1784503169416df19ce3d68746401340
          Author: Michal Marek <mmarek@suse.cz>
          kconfig: Get rid of the P() macro in headers
      
      [7] commit 463157444e377bf9b279101b1f16a94c4648c03a
          Author: Michal Marek <mmarek@suse.cz>
          kconfig: Remove dead code
      
      [8] commit ad8d40cda3ad22ad9e8863d55a5c88f85c0173f0
          Author: Michal Marek <mmarek@suse.cz>
          kconfig: Remove unnecessary prototypes from headers
      
      [9] commit de4619937229378e81f95e99c9866acc8e207d34
          Author: Masahiro Yamada <yamada.masahiro@socionext.com>
          kbuild: mergeconfig: fix "jobserver unavailable" warning
      
      [10] commit b9fe99c5b994c6ddc57780993966b18899526c0b
          Author: Masahiro Yamada <yamada.masahiro@socionext.com>
          kbuild: mergeconfig: move an error check to merge_config.sh
      
      [11] commit 371cfd4ff0611d8bc5d18bbb9cc6a2bc3d56cd3d
          Author: Masahiro Yamada <yamada.masahiro@socionext.com>
          kbuild: mergeconfig: remove redundant $(objtree)
      
      [12] commit 3a975b8cfcbe026b535f83bde9a3c009bae214f9
          Author: Masahiro Yamada <yamada.masahiro@socionext.com>
          merge_config.sh: improve indentation
      
      [13] commit bc8f8f5fc47cd02c2c5f3580dac2fe6695af1edd
          Author: Masahiro Yamada <yamada.masahiro@socionext.com>
          merge_config.sh: rename MAKE to RUNMAKE
      
      [14] commit 63a91033d52e64a22e571fe84924c0b7f21c280d
          Author: Masahiro Yamada <yamada.masahiro@socionext.com>
          kbuild: add generic mergeconfig target, %.config
      
      [15] commit 1cba0c305758c3c1786ecaceb03e142c95a4edc9
          Author: Michal Marek <mmarek@suse.cz>
          kconfig: Simplify Makefile
      
      [16] commit 0a1f00a1c86421cc07cec87011c7cf4df68ee54b
          Author: Michal Marek <mmarek@suse.cz>
          kconfig: Do not print status messages in make -s mode
      
      Signed-off-by: Masahiro Yamada's avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      Signed-off-by: default avatarBjørn Forsman <bjorn.forsman@gmail.com>
      Signed-off-by: default avatarAndrey Utkin <andrey.krieger.utkin@gmail.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      Signed-off-by: default avatarArjun Sreedharan <arjun024@gmail.com>
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      Signed-off-by: default avatarColin Ian King <colin.king@canonical.com>
      Signed-off-by: default avatarMichal Marek <mmarek@suse.cz>
      9b5f0b1d
  13. Jun 08, 2015
    • Stefan Roese's avatar
      Kconfig: Enable usage of escape char '\' in string values · 20c20826
      Stefan Roese authored and Tom Rini's avatar Tom Rini committed
      
      I might have missed something, but I failed to use the escape char '\'
      in strings. To pass a printf format string like "foo %d bar\n" via
      Kconfig to the code.
      
      Right now its not possible to use the escape character '\' in Kconfig
      string values correctly to e.g. set this string value "test output\n".
      The '\n' will be converted to 'n'.
      
      The current implementation removes some of the '\' chars from the input
      string in conf_set_sym_val(). Examples:
      
      '\'	-> ''
      '\\'	-> '\'
      '\\\'	-> '\'
      '\\\\'	-> '\\'
      ...
      
      And then doubles the backslash chars in the output string in
      sym_escape_string_value(). Example:
      
      '\'	-> ''	-> ''
      '\\'	-> '\'	-> '\\'
      '\\\'	-> '\'	-> '\\'
      '\\\\'	-> '\\'	-> '\\\\'
      ...
      
      As you see in these examples, its impossible to generate a single '\'
      charater in the output string as its needed for something like '\n'.
      
      This patch now changes this behavior to not drop some backslashes in
      conf_set_sym_val() and to not add new backslashes in the resulting
      output string. Removing the function sym_escape_string_value()
      completely as its not needed anymore.
      
      Signed-off-by: default avatarStefan Roese <sr@denx.de>
      Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
      Reviewed-by: Simon Glass's avatarSimon Glass <sjg@chromium.org>
      Cc: Tom Rini <trini@konsulko.com>
      20c20826
  14. Mar 28, 2015
  15. Mar 02, 2015
  16. Dec 08, 2014
  17. Nov 12, 2014
  18. Nov 07, 2014
    • Masahiro Yamada's avatar
      kconfig: sync kconfig files with Linux 3.18-rc1 · ad618992
      Masahiro Yamada authored and Tom Rini's avatar Tom Rini committed
      
      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: default avatarJosh Triplett <josh@joshtriplett.org>
      Signed-off-by: default avatarBrian Norris <computersforpeace@gmail.com>
      Signed-off-by: default avatarMasahiro Yamada <yamada.m@jp.panasonic.com>
      ad618992
    • Masahiro Yamada's avatar
      kbuild: improve multi-objs dependency and cleanups · cb6e7b0d
      Masahiro Yamada authored and Tom Rini's avatar Tom Rini committed
      
      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: default avatarMasahiro Yamada <yamada.m@jp.panasonic.com>
      cb6e7b0d
  19. Oct 27, 2014
  20. Jul 30, 2014
    • Masahiro Yamada's avatar
      kconfig: switch to Kconfig · 51148790
      Masahiro Yamada authored and Tom Rini's avatar Tom Rini committed
      
      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 <board>_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:
      
        <target_image>/<config_command>
      
      Here, <target_image> is either 'spl' or 'tpl'
            <config_command> is 'config', 'menuconfig', 'xconfig', etc.
      
      When the configuration is done, run "make".
      (Or "make <board>_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: default avatarMasahiro Yamada <yamada.m@jp.panasonic.com>
      Acked-by: Simon Glass's avatarSimon Glass <sjg@chromium.org>
      51148790
    • Masahiro Yamada's avatar
      kconfig: import Kconfig files from Linux 3.16-rc7 · 0a9064fb
      Masahiro Yamada authored and Tom Rini's avatar Tom Rini committed
      
      Import
        - scripts/kconfig/*
        - include/linux/kconfig.h
      from Linux 3.16-rc7.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.m@jp.panasonic.com>
      Reviewed-by: Simon Glass's avatarSimon Glass <sjg@chromium.org>
      0a9064fb
Loading