mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-16 14:30:06 -04:00
scripts: kconfig: merge_config.sh: pass output file as awk variable
The refactoring commit5fa9b82cbc("scripts: kconfig: merge_config.sh: refactor from shell/sed/grep to awk") passes $TMP_FILE.new as ARGV[3] to awk, using it as both an output destination and an input file argument. When the base file is empty, nothing is written to ARGV[3] during processing, so awk fails trying to open it for reading: awk: cmd. line:52: fatal: cannot open file `./.tmp.config.grcQin34jb.new' for reading: No such file or directory mv: cannot stat './.tmp.config.grcQin34jb.new': No such file or directory Pass the output path via -v outfile instead and drop the FILENAME == ARGV[3] { nextfile }. Fixes:5fa9b82cbc("scripts: kconfig: merge_config.sh: refactor from shell/sed/grep to awk") Signed-off-by: Daniel Gomez <da.gomez@samsung.com> Link: https://patch.msgid.link/20260310-fixes-merge-config-v1-1-beaeeaded6bd@samsung.com Signed-off-by: Nathan Chancellor <nathan@kernel.org>
This commit is contained in:
committed by
Nathan Chancellor
parent
3b4a3a00de
commit
5f47be1b44
@@ -151,6 +151,7 @@ for ORIG_MERGE_FILE in $MERGE_LIST ; do
|
||||
if ! "$AWK" -v prefix="$CONFIG_PREFIX" \
|
||||
-v warnoverride="$WARNOVERRIDE" \
|
||||
-v strict="$STRICT" \
|
||||
-v outfile="$TMP_FILE.new" \
|
||||
-v builtin="$BUILTIN" \
|
||||
-v warnredun="$WARNREDUN" '
|
||||
BEGIN {
|
||||
@@ -212,7 +213,7 @@ for ORIG_MERGE_FILE in $MERGE_LIST ; do
|
||||
|
||||
# Not a config or not in merge file - keep it
|
||||
if (cfg == "" || !(cfg in merge_cfg)) {
|
||||
print $0 >> ARGV[3]
|
||||
print $0 >> outfile
|
||||
next
|
||||
}
|
||||
|
||||
@@ -222,7 +223,7 @@ for ORIG_MERGE_FILE in $MERGE_LIST ; do
|
||||
# BUILTIN: do not demote y to m
|
||||
if (builtin == "true" && new_val ~ /=m$/ && prev_val ~ /=y$/) {
|
||||
warn_builtin(cfg, prev_val, new_val)
|
||||
print $0 >> ARGV[3]
|
||||
print $0 >> outfile
|
||||
skip_merge[merge_cfg_line[cfg]] = 1
|
||||
next
|
||||
}
|
||||
@@ -235,7 +236,7 @@ for ORIG_MERGE_FILE in $MERGE_LIST ; do
|
||||
|
||||
# "=n" is the same as "is not set"
|
||||
if (prev_val ~ /=n$/ && new_val ~ / is not set$/) {
|
||||
print $0 >> ARGV[3]
|
||||
print $0 >> outfile
|
||||
next
|
||||
}
|
||||
|
||||
@@ -246,25 +247,20 @@ for ORIG_MERGE_FILE in $MERGE_LIST ; do
|
||||
}
|
||||
}
|
||||
|
||||
# output file, skip all lines
|
||||
FILENAME == ARGV[3] {
|
||||
nextfile
|
||||
}
|
||||
|
||||
END {
|
||||
# Newline in case base file lacks trailing newline
|
||||
print "" >> ARGV[3]
|
||||
print "" >> outfile
|
||||
# Append merge file, skipping lines marked for builtin preservation
|
||||
for (i = 1; i <= merge_total; i++) {
|
||||
if (!(i in skip_merge)) {
|
||||
print merge_lines[i] >> ARGV[3]
|
||||
print merge_lines[i] >> outfile
|
||||
}
|
||||
}
|
||||
if (strict_violated) {
|
||||
exit 1
|
||||
}
|
||||
}' \
|
||||
"$ORIG_MERGE_FILE" "$TMP_FILE" "$TMP_FILE.new"; then
|
||||
"$ORIG_MERGE_FILE" "$TMP_FILE"; then
|
||||
# awk exited non-zero, strict mode was violated
|
||||
STRICT_MODE_VIOLATED=true
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user