<feed xmlns='http://www.w3.org/2005/Atom'>
<title>buildroot/package/pkg-kconfig.mk, branch 2017.02.1</title>
<subtitle>OpenPOWER buildroot sources</subtitle>
<id>https://git.raptorcs.com/git/buildroot/atom?h=2017.02.1</id>
<link rel='self' href='https://git.raptorcs.com/git/buildroot/atom?h=2017.02.1'/>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/'/>
<updated>2016-09-17T12:44:10+00:00</updated>
<entry>
<title>pkg-kconfig: support alternative .config location</title>
<updated>2016-09-17T12:44:10+00:00</updated>
<author>
<name>Eric Le Bihan</name>
<email>eric.le.bihan.dev@free.fr</email>
</author>
<published>2016-09-13T19:45:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=bbbc8b5de32965aaf9fa01d4fabc461dd65f6c3a'/>
<id>urn:sha1:bbbc8b5de32965aaf9fa01d4fabc461dd65f6c3a</id>
<content type='text'>
Kconfig clones, such as openconf used by xvisor [1], do not look for
.config at the root of the build directory, but in a subdirectory (e.g.
build/openconf).

This patch introduces a new Makefile variable named
$(2)_KCONFIG_DOTCONFIG, which contains the path to .config relative to
the source directory of the package. It defaults to .config and can be
overridden in the package Makefile.

It also creates the full directory hierarchy where the .config file is
stored, in case it does not exist (e.g. in xvisor).

This allows the use of the kconfig-package infrastructure with packages
relying on such clones.

[1] https://github.com/xvisor/xvisor/tree/master/tools/openconf

Signed-off-by: Eric Le Bihan &lt;eric.le.bihan.dev@free.fr&gt;
Reviewed-by: "Yann E. MORIN" &lt;yann.morin.1998@free.fr&gt;
[Thomas: use "install -D" instead of "mkdir + cp", as suggested by
Yann.]
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>infra/pkg-kconfig: Be sure to reconfigure the package on foo-reconfigure</title>
<updated>2016-09-17T12:38:41+00:00</updated>
<author>
<name>Yann E. MORIN</name>
<email>yann.morin.1998@free.fr</email>
</author>
<published>2016-09-13T22:35:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=4b81badbcc0b25678ac6627548160702731cf393'/>
<id>urn:sha1:4b81badbcc0b25678ac6627548160702731cf393</id>
<content type='text'>
Currently, calling foo-reconfigure for a kconfig-based package will not
re-trigger the configuration (kconfig-wise) step for the package.

This can be problematic when using an override-srcdir suring development
and the content of the veride-srcdir changes (e.g. on a rebase, a merge,
or during a bisect).

This is because the configuration (kconfig-wise) of the package is not
done in the _CONFIGURE_CMDS block, but as a separate action that is not
part of any step [0].

So, be sure to remove the stamp file .stamp_kconfig_fixup_done during
the foo-clean-for-reconfigure rule, so that the configuration is applied
again with the new source tree.

We use another rule, foo-clean-kconfig-for-reconfigure, because we do
not want to override the default foo-clean-for-reconfigure rule, and we
have no way to add conditional commands to it.

[0] The reasons it was not done are not entirely clear in my head, but
IIRC that was not working at the time we tried with Thomas DS.

Reported-by: Vivien Didelot &lt;vivien.didelot@savoirfairelinux.com&gt;
Signed-off-by: "Yann E. MORIN" &lt;yann.morin.1998@free.fr&gt;
Cc: Vivien Didelot &lt;vivien.didelot@savoirfairelinux.com&gt;
Cc: Thomas De Schampheleire &lt;patrickdepinguin@gmail.com&gt;
Cc: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
Tested-by: Vivien Didelot &lt;vivien.didelot@savoirfairelinux.com&gt;
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) &lt;arnout@mind.be&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>core/pkg-kconfig: pass host PKG_CONFIG_PATH env var</title>
<updated>2016-05-28T17:46:47+00:00</updated>
<author>
<name>Bjørn Forsman</name>
<email>bjorn.forsman@gmail.com</email>
</author>
<published>2016-05-27T22:03:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=02302d21536b9c19cd87733f4eb1bd62065416bb'/>
<id>urn:sha1:02302d21536b9c19cd87733f4eb1bd62065416bb</id>
<content type='text'>
This is basically the same change as in 0515fe45661b6d320f8d2071df2
("Makefile: pass host PKG_CONFIG_PATH at "make menuconfig" time"). That
commit made sure to pass host PKG_CONFIG_PATH when invoking Buildroot's
own menuconfig program. This change ensures that the same is true for
third party menuconfig programs (i.e. Linux, uClibc and Busybox).

This unbreaks "make {linux,uclibc}-menuconfig" for host platforms which
rely on PKG_CONFIG_PATH to find .pc files (e.g. NixOS). (When Busybox
updates to a more recent Kconfig snapshot, one that uses pkg-config to
find ncurses, "make busybox-menuconfig" will also start working.)

Tested on Ubuntu and NixOS:

  $ make qemu_arm_versatile_defconfig
  $ make linux-menuconfig
  $ make

Signed-off-by: Bjørn Forsman &lt;bjorn.forsman@gmail.com&gt;
Acked-by: "Yann E. MORIN" &lt;yann.morin.1998@free.fr&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>core/pkg-kconfig: Use olddefconfig when available</title>
<updated>2016-05-05T06:13:39+00:00</updated>
<author>
<name>Romain Izard</name>
<email>romain.izard.pro@gmail.com</email>
</author>
<published>2016-05-02T08:36:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=0370cc9735ed16b8620120e09d34ce497f4a2503'/>
<id>urn:sha1:0370cc9735ed16b8620120e09d34ce497f4a2503</id>
<content type='text'>
Using 'yes "" | make oldconfig' to regenerate a .config file from an
existing defconfig does not work reliably in all cases. Specifically, it
does not work well with tristate choice entries.

The correct way to do it is to use 'make olddefconfig', but this target
is not supported in projects that use an old version of kconfig. As
most projects do not use tristate entries, there is no need for them to
upgrade.

'oldnoconfig' is an alias for 'olddefconfig', but it also is the only
name for this target between Linux versions 2.6.36 and 3.6.

Check which targets are supported by the current project, and use the
appropriate method to regenerate the .config file.

Signed-off-by: Romain Izard &lt;romain.izard.pro@gmail.com&gt;
Reviewed-by: "Yann E. MORIN" &lt;yann.morin.1998@free.fr&gt;
Tested-by: "Yann E. MORIN" &lt;yann.morin.1998@free.fr&gt;
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) &lt;arnout@mind.be&gt;
Signed-off-by: Peter Korsgaard &lt;peter@korsgaard.com&gt;
</content>
</entry>
<entry>
<title>Revert "core/pkg-kconfig: use olddefconfig when available"</title>
<updated>2016-04-25T13:29:38+00:00</updated>
<author>
<name>Thomas Petazzoni</name>
<email>thomas.petazzoni@free-electrons.com</email>
</author>
<published>2016-04-25T13:29:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=60c7d873814424d833a5d4a694d0386e070d67ed'/>
<id>urn:sha1:60c7d873814424d833a5d4a694d0386e070d67ed</id>
<content type='text'>
This reverts commit 638ea2d715950f1409475e01a37f25c3528df35e, since it
breaks the build of busybox in many configurations, with the following
issues:

/bin/bash: : command not found
make[1]: Entering directory `/home/test/autobuild/instance-0/output/build/busybox-1.24.2'
[...]
  GEN     miscutils/Config.in
make[2]: *** No rule to make target `olddefconfig'.  Stop.
make[1]: *** [olddefconfig] Error 2
make[1]: Leaving directory `/home/test/autobuild/instance-0/output/build/busybox-1.24.2'
make: *** [/home/test/autobuild/instance-0/output/build/busybox-1.24.2/.config] Error 1
make: Leaving directory `/home/test/autobuild/instance-0/buildroot'

See:

  http://autobuild.buildroot.org/results/48481bb3531927be35cda3df57d02f02cec709aa/

for example.

A minimal configuration with just Busybox doesn't exhibit the problem,
but adding libtirpc in the configuration is enough to trigger the
problem, so the following defconfig allows to reproduce the issue:

BR2_arm=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-arm-full-2016.02-3-g762b7c9.tar.bz2"
BR2_TOOLCHAIN_EXTERNAL_GCC_4_7=y
BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_10=y
BR2_TOOLCHAIN_EXTERNAL_LOCALE=y
BR2_TOOLCHAIN_EXTERNAL_INET_RPC=y
BR2_TOOLCHAIN_EXTERNAL_CXX=y
BR2_PACKAGE_LIBTIRPC=y

Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>core/pkg-kconfig: use olddefconfig when available</title>
<updated>2016-04-24T21:52:23+00:00</updated>
<author>
<name>Romain Izard</name>
<email>romain.izard.pro@gmail.com</email>
</author>
<published>2016-04-23T17:46:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=638ea2d715950f1409475e01a37f25c3528df35e'/>
<id>urn:sha1:638ea2d715950f1409475e01a37f25c3528df35e</id>
<content type='text'>
Using 'yes "" | make oldconfig' to regenerate a .config file from an
existing defconfig does not work reliably in all cases. Specifically, it
does not work well with tristate choice entries.

The correct way to do it is to use 'make olddefconfig', but this target
is not supported in projects that use an old version of kconfig. As
most projects do not use tristate entries, there is no need for them to
upgrade.

'oldnoconfig' is an alias for 'olddefconfig', but it also is the only
name for this target between Linux versions 2.6.36 and 3.6.

Check which targets are supported by the current project, and use the
appropriate method to regenerate the .config file.

Signed-off-by: Romain Izard &lt;romain.izard.pro@gmail.com&gt;
[yann.morin.1998@free.fr: use a shell construct instead of makefile code]
Signed-off-by: Yann E. MORIN &lt;yann.morin.1998@free.fr&gt;
Cc: Arnout Vandecappelle &lt;arnout@mind.be&gt;
Cc: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
[Thomas: fix minor typos.]
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>core/pkg-kconfig: Do not use $(call ...) without parameters</title>
<updated>2016-04-18T21:17:13+00:00</updated>
<author>
<name>Romain Izard</name>
<email>romain.izard.pro@gmail.com</email>
</author>
<published>2016-04-18T09:23:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=e645a3b0eda08422664abf798c640719c70549b0'/>
<id>urn:sha1:e645a3b0eda08422664abf798c640719c70549b0</id>
<content type='text'>
When there are no parameters, simply use $(var) instead of $(call var)

Signed-off-by: Romain Izard &lt;romain.izard.pro@gmail.com&gt;
Reviewed-by: "Yann E. MORIN" &lt;yann.morin.1998@free.fr&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>core/pkg-kconfig: Factorize make commands</title>
<updated>2016-04-18T21:12:09+00:00</updated>
<author>
<name>Romain Izard</name>
<email>romain.izard.pro@gmail.com</email>
</author>
<published>2016-04-18T09:23:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=ce83c3d515912b0a83ef461f071b88126b0f07d2'/>
<id>urn:sha1:ce83c3d515912b0a83ef461f071b88126b0f07d2</id>
<content type='text'>
Use a variable to factorize the calls to make, as we use the same set
of options multiple times.

Signed-off-by: Romain Izard &lt;romain.izard.pro@gmail.com&gt;
Reviewed-by: "Yann E. MORIN" &lt;yann.morin.1998@free.fr&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>core/pkg-kconfig: fix .config rule for silent mode</title>
<updated>2016-03-29T14:42:48+00:00</updated>
<author>
<name>Romain Izard</name>
<email>romain.izard.pro@gmail.com</email>
</author>
<published>2016-03-29T10:11:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=15a4210c622074efb2298e2a2f39f557ddcabe57'/>
<id>urn:sha1:15a4210c622074efb2298e2a2f39f557ddcabe57</id>
<content type='text'>
Ensure that each command line in the .config rule is prefixed by $$(Q)

Signed-off-by: Romain Izard &lt;romain.izard.pro@gmail.com&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>pkg-kconfig: add missing -patch dependency for defconfig</title>
<updated>2016-01-26T20:26:52+00:00</updated>
<author>
<name>Arnout Vandecappelle</name>
<email>arnout@mind.be</email>
</author>
<published>2016-01-24T22:58:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=c65612fff80f3ae5f9ab0a20a516ce20dd19981d'/>
<id>urn:sha1:c65612fff80f3ae5f9ab0a20a516ce20dd19981d</id>
<content type='text'>
Since the introduction of _KCONFIG_DEFCONFIG in 8ef62b99, the package's
.config file no longer depends on anything (unless a fragment is
defined). Therefore, there is no dependency anymore between .config
and &lt;pkg&gt;-patch. Thus, it is possible that the .config file is
attempted to be built before the package is extracted and patched.
Usually this works out OK because &lt;pkg&gt;-patch will always be done
before &lt;pkg&gt;-configure, but it will fail when the user calls
&lt;pkg&gt;-menuconfig explicitly. It will also fail when we enable
top-level parallel build.

To solve this, just add an explicit order-only dependency on
&lt;pkg&gt;-patch. It really is only necessary when _KCONFIG_DEFCONFIG is
defined and _KCONFIG_FRAGMENT_FILES is not, but it doesn't hurt to
add it unconditionally.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) &lt;arnout@mind.be&gt;
Reported-by: FrAnKenStEiN MC &lt;chfakht@gmail.com&gt;
Acked-by: "Yann E. MORIN" &lt;yann.morin.1998@free.fr&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
</feed>
