Message ID | 1437484956-23985-1-git-send-email-srinivas.kandagatla@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Srinivas, 2015-07-21 22:22 GMT+09:00 Srinivas Kandagatla <srinivas.kandagatla@linaro.org>: > The issue is flags like ARCH can be passed to make via environment variable > or at command line by passing "ARCH=" argument to make file. The former case > works fine if used with merge_config but the later case would not work and > resulting config file from merge_config is useless. > > I hit this issue when I started using config fragments on arm64 bit platform > and I usually pass ARCH at the make command line. Me too. I always pass ARCH from the make command line. I did a simple test, but I did not hit this issue. I think both environment variables and make command line variables are inherited to sub-processes. I guess this patch is useful only when we directly invoke this shell script, not via the top-level Makefile. But, from your statement, I thought you invoke merge_config.sh from the Makefile. So, I cannot understand what you mean. Moreover, the top-level Makefile exports ARCH, so it is always an environment variable. See the line 408: export ARCH SRCARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC > As it is common for users like me to pass ARCH variable in command line, > providing such flexiblity in merge_config makes more sense. > > This patch adds support to pass arguments to make file, without this patch the > user has to set the enviroment variables which is not explicit. > > Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Hi Mashahiro, Thanks for the comments. On 24/07/15 07:10, Masahiro Yamada wrote: > Hi Srinivas, > > > 2015-07-21 22:22 GMT+09:00 Srinivas Kandagatla <srinivas.kandagatla@linaro.org>: >> The issue is flags like ARCH can be passed to make via environment variable >> or at command line by passing "ARCH=" argument to make file. The former case >> works fine if used with merge_config but the later case would not work and >> resulting config file from merge_config is useless. >> >> I hit this issue when I started using config fragments on arm64 bit platform >> and I usually pass ARCH at the make command line. > > Me too. I always pass ARCH from the make command line. > > I did a simple test, but I did not hit this issue. > > I think both environment variables and make command line variables > are inherited to sub-processes. > > I guess this patch is useful only when we directly invoke this shell script, > not via the top-level Makefile. But, from your statement, I thought > you invoke merge_config.sh from the Makefile. So, I cannot understand > what you mean. Actually Am invoking the script directly, Is this a valid usage? If this usage is not valid we can ignore this patch I guess :-) Sorry I should have put my command line in the log to make it clear. I use below command: ./scripts/kconfig/merge_config.sh -O /objs/ arch/arm64/configs/defconfig distro.conf > > Moreover, the top-level Makefile exports ARCH, so it is always an > environment variable. > > See the line 408: > export ARCH SRCARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC > Yes, It works if invoked with make with your patch "kbuild: add generic mergeconfig target, %.config" > > > >> As it is common for users like me to pass ARCH variable in command line, >> providing such flexiblity in merge_config makes more sense. >> >> This patch adds support to pass arguments to make file, without this patch the >> user has to set the enviroment variables which is not explicit. >> >> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> > > > > --srini -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/scripts/kconfig/merge_config.sh b/scripts/kconfig/merge_config.sh index ec8e203..8d9cae4 100755 --- a/scripts/kconfig/merge_config.sh +++ b/scripts/kconfig/merge_config.sh @@ -28,6 +28,7 @@ trap clean_up HUP INT TERM usage() { echo "Usage: $0 [OPTIONS] [CONFIG [...]]" + echo " -a arguments to make command. ex: ARCH=arm" echo " -h display this help text" echo " -m only merge the fragments, do not execute the make command" echo " -n use allnoconfig instead of alldefconfig" @@ -39,6 +40,7 @@ RUNMAKE=true ALLTARGET=alldefconfig WARNREDUN=false OUTPUT=. +MAKE_ARGS="" while true; do case $1 in @@ -61,6 +63,11 @@ while true; do shift continue ;; + "-a") + MAKE_ARGS=$2 + shift 2 + continue + ;; "-O") if [ -d $2 ];then OUTPUT=$(echo $2 | sed 's/\/*$//') @@ -139,7 +146,7 @@ fi # Use the merged file as the starting point for: # alldefconfig: Fills in any missing symbols with Kconfig default # allnoconfig: Fills in any missing symbols with # CONFIG_* is not set -make KCONFIG_ALLCONFIG=$TMP_FILE $OUTPUT_ARG $ALLTARGET +make $MAKE_ARGS KCONFIG_ALLCONFIG=$TMP_FILE $OUTPUT_ARG $ALLTARGET # Check all specified config values took (might have missed-dependency issues)
The issue is flags like ARCH can be passed to make via environment variable or at command line by passing "ARCH=" argument to make file. The former case works fine if used with merge_config but the later case would not work and resulting config file from merge_config is useless. I hit this issue when I started using config fragments on arm64 bit platform and I usually pass ARCH at the make command line. As it is common for users like me to pass ARCH variable in command line, providing such flexiblity in merge_config makes more sense. This patch adds support to pass arguments to make file, without this patch the user has to set the enviroment variables which is not explicit. Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> --- scripts/kconfig/merge_config.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)