Message ID | 20200325075757.1959961-1-laurent@vivier.eu |
---|---|
State | New |
Headers | show |
Series | linux-user, configure: fix (again) syscall_nr.h dependencies cleanup | expand |
On 3/25/20 12:57 AM, Laurent Vivier wrote: > This patch fixes two problems: > - it cleanups linux-user variants (for instance ppc64-linux-user > and ppc64le-linux-user) > - it removes the .o file when it removes the .d file, otherwise the .o > file is never updated > > Fixes: 5f29856b852d ("linux-user, configure: improve syscall_nr.h dependencies checking") > Fixes: 4d6a835dea47 ("linux-user: introduce parameters to generate syscall_nr.h") > Signed-off-by: Laurent Vivier <laurent@vivier.eu> > --- > configure | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) Reviewed-by: Richard Henderson <richard.henderson@linaro.org> I haven't been able to reproduce the same failure from master, but this looks right. r~
Le 25/03/2020 à 17:01, Richard Henderson a écrit : > On 3/25/20 12:57 AM, Laurent Vivier wrote: >> This patch fixes two problems: >> - it cleanups linux-user variants (for instance ppc64-linux-user >> and ppc64le-linux-user) >> - it removes the .o file when it removes the .d file, otherwise the .o >> file is never updated >> >> Fixes: 5f29856b852d ("linux-user, configure: improve syscall_nr.h dependencies checking") >> Fixes: 4d6a835dea47 ("linux-user: introduce parameters to generate syscall_nr.h") >> Signed-off-by: Laurent Vivier <laurent@vivier.eu> >> --- >> configure | 8 +++++--- >> 1 file changed, 5 insertions(+), 3 deletions(-) > > Reviewed-by: Richard Henderson <richard.henderson@linaro.org> > > I haven't been able to reproduce the same failure from master, but this looks > right. > To reproduce the failure (either the one with the vsyscalls or the one with missing TARGET_NR_XXX define reported by dgilbert/imammedo on the IRC), I did: git checkout -f v4.2.0 && \ ./build.sh reset && \ git checkout master && \ ./build.sh and build.sh is: ------8<------------------------------------------------------------------ SRC=$PWD OBJ=$SRC/build DIR=test-linux-user TEST=/backup/linux-user-test-0.3 set -x if [ "$1" = "reset" ] ; then (cd $OBJ && \ rm -fr $DIR && \ mkdir $DIR && \ cd $DIR && \ "$SRC/configure" '--cc=ccache gcc' '--enable-debug' '--static' '--disable-system' '--disable-gnutls' '--disable-tools') fi make --output-sync -C $OBJ/$DIR -j 17 && \ make --output-sync -C $OBJ/$DIR -j check V=1 && \ make --output-sync BUILDDIR=$OBJ/$DIR -C $TEST test ------8<------------------------------------------------------------------ Thanks, Laurent
diff --git a/configure b/configure index da09c3589572..89fe881dd46f 100755 --- a/configure +++ b/configure @@ -1910,9 +1910,11 @@ for arch in alpha hppa m68k xtensa sh4 microblaze arm ppc s390x sparc sparc64 \ # remove the file if it has been generated in the source directory rm -f "${source_path}/linux-user/${arch}/syscall_nr.h" # remove the dependency files - test -d ${arch}-linux-user && find ${arch}-linux-user -type f -name "*.d" \ - -exec grep -q "${source_path}/linux-user/${arch}/syscall_nr.h" {} \; \ - -exec rm {} \; + for target in ${arch}*-linux-user ; do + test -d "${target}" && find "${target}" -type f -name "*.d" \ + -exec grep -q "${source_path}/linux-user/${arch}/syscall_nr.h" {} \; \ + -print | while read file ; do rm "${file}" "${file%.d}.o" ; done + done done if test -z "$python"
This patch fixes two problems: - it cleanups linux-user variants (for instance ppc64-linux-user and ppc64le-linux-user) - it removes the .o file when it removes the .d file, otherwise the .o file is never updated Fixes: 5f29856b852d ("linux-user, configure: improve syscall_nr.h dependencies checking") Fixes: 4d6a835dea47 ("linux-user: introduce parameters to generate syscall_nr.h") Signed-off-by: Laurent Vivier <laurent@vivier.eu> --- configure | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)