qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PULL v2 0/5] Linux user for 5.0 patches


From: Laurent Vivier
Subject: Re: [PULL v2 0/5] Linux user for 5.0 patches
Date: Wed, 25 Mar 2020 08:41:25 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.6.0

Le 24/03/2020 à 23:10, Laurent Vivier a écrit :
> Le 24/03/2020 à 14:14, Peter Maydell a écrit :
>> On Tue, 24 Mar 2020 at 12:32, Laurent Vivier <address@hidden> wrote:
>>> OK, I think there is an existing problem in the build dependencies.
>>>
>>> Do you use enable all targets ("configure" without parameters)?
>>> Do you run make with "all" or "x86_64-linux-user/all"?
>>
>> This config is
>> '../../configure' '--cc=ccache gcc' '--enable-debug' '--static'
>> '--disable-system' '--disable-gnutls'
>> and it is an incremental build, so just
>>
>> make --output-sync -C build/all-linux-static -j8
>> make --output-sync -C build/all-linux-static check V=1 -j8
>> make --output-sync -C ~/linaro/linux-user-test-0.3/ test
>> make --output-sync -C build/all-linux-static check-tcg
>>
>> (it's step 3 that fails here).
>>
> 
> The problem is introduced by the change I made to be able to bisect
> while we move syscall_nr.h from source dir to build dir (as said by
> Richard):
> 
> 4d6a835dea47 ("linux-user: introduce parameters to generate syscall_nr.h")
> 
> There is also a new problem introduced by:
> 
> 5f29856b852d(" linux-user, configure: improve syscall_nr.h dependencies
> checking")
> 
> that doesn't scan arch variant (it scans ppc64-linux-user but not
> ppc64le-linux-user).
> 
> The best solution I can propose is to simply remove the piece of code
> I've added in configure and let the user to do a "make clean" if the
> build fails because of the move of syscall_nr.h from source dir to build
> dir.

This change fixes both problems:

--- 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 set -x; rm "${file}"
"${file%.d}.o" ; set +x ; done
+    done
 done

 if test -z "$python"

Thanks,
Laurent



reply via email to

[Prev in Thread] Current Thread [Next in Thread]