2018-01-30 17:01 GMT+09:00 Michael Forney <mforney@xxxxxxxxxxx>: > On 2018-01-28, Michael Forney <mforney@xxxxxxxxxxx> wrote: >> From: Michael Forney <forney@xxxxxxxxxx> >> >> stat(1) is not standardized and different implementations have their own >> (conflicting) flags for querying the size of a file. >> >> ls(1) provides the same information (value of st.st_size) in the 5th >> column, >> except when the file is a character or block device. > > Forgot to add > > Signed-off-by: Michael Forney <forney@xxxxxxxxxx> > >> --- >> scripts/Makefile.lib | 3 ++- >> scripts/link-vmlinux.sh | 6 ++++-- >> 2 files changed, 6 insertions(+), 3 deletions(-) >> >> diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib >> index 7dee1da83e2a..24566d1c10d2 100644 >> --- a/scripts/Makefile.lib >> +++ b/scripts/Makefile.lib >> @@ -319,7 +319,8 @@ dtc-tmp = $(subst $(comma),_,$(dot-target).dts.tmp) >> size_append = printf $(shell \ >> dec_size=0; \ >> for F in $1; do \ >> - fsize=$$(stat -c "%s" $$F); \ >> + set -- $$(ls -dn $$F); \ >> + fsize=$$5; \ >> dec_size=$$(expr $$dec_size + $$fsize); \ >> done; \ >> printf "%08x\n" $$dec_size | \ I sometimes see patches that address portability. But, the resulted code is generally ugly. (I would not say this is too ugly in this case.) Also, I see some more instances. If 'stat' is a problem, do you have an idea for alternative of "stat -c %Y"? $ git grep 'stat -c' Documentation/acpi/ssdt-overlays.txt:dd if=$tmp of="$EFIVARFS/$name-$guid" bs=$(stat -c %s $tmp) arch/arm/boot/deflate_xip_data.sh:file_end=$(stat -c "%s" "$XIPIMAGE") arch/blackfin/boot/install.sh: local stamp=$(stat -c %Y ${file} 2>/dev/null) arch/powerpc/boot/wrapper:strip_size=$(stat -c %s $vmz.$$) tools/testing/selftests/efivarfs/efivarfs.sh: if [ $(stat -c %s $file) -ne 5 ]; then >> diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh >> index c0d129d7f430..4a5737647a79 100755 >> --- a/scripts/link-vmlinux.sh >> +++ b/scripts/link-vmlinux.sh >> @@ -296,8 +296,10 @@ if [ -n "${CONFIG_KALLSYMS}" ]; then >> kallsyms .tmp_vmlinux2 .tmp_kallsyms2.o >> >> # step 3 >> - size1=$(stat -c "%s" .tmp_kallsyms1.o) >> - size2=$(stat -c "%s" .tmp_kallsyms2.o) >> + set -- $(ls -dn .tmp_kallsyms1.o) >> + size1=$5 >> + set -- $(ls -dn .tmp_kallsyms2.o) >> + size2=$5 >> >> if [ $size1 -ne $size2 ] || [ -n "${KALLSYMS_EXTRA_PASS}" ]; then >> kallsymso=.tmp_kallsyms3.o >> -- >> 2.15.1 >> >> -- Best Regards Masahiro Yamada -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html