linux-user/i386/cpu_loop.c | 201 ++++++++++++++++++++++++++----------- linux-user/syscall.c | 39 ++++++- target/i386/cpu.h | 12 ++- target/i386/translate.c | 14 ++- 4 files changed, 200 insertions(+), 66 deletions(-)
The following changes since commit 29e0855c5af62bbb0b0b6fed792e004dad92ba95: Merge remote-tracking branch 'remotes/elmarco/tags/slirp-pull-request' into staging (2020-03-22 21:00:38 +0000) are available in the Git repository at: git://github.com/vivier/qemu.git tags/linux-user-for-5.0-pull-request for you to fetch changes up to eec24827f7e67ead39349bb78597da566f854a4c: linux-user: Flush out implementation of gettimeofday (2020-03-24 12:04:14 +0100) ---------------------------------------------------------------- Emulate x86_64 vsyscall v2: remove trailing space ---------------------------------------------------------------- Richard Henderson (5): target/i386: Renumber EXCP_SYSCALL linux-user/i386: Split out gen_signal linux-user/i386: Emulate x86_64 vsyscalls linux-user: Add x86_64 vsyscall page to /proc/self/maps linux-user: Flush out implementation of gettimeofday linux-user/i386/cpu_loop.c | 201 ++++++++++++++++++++++++++----------- linux-user/syscall.c | 39 ++++++- target/i386/cpu.h | 12 ++- target/i386/translate.c | 14 ++- 4 files changed, 200 insertions(+), 66 deletions(-) -- 2.25.1
On Tue, 24 Mar 2020 at 11:18, Laurent Vivier <laurent@vivier.eu> wrote: > > The following changes since commit 29e0855c5af62bbb0b0b6fed792e004dad92ba95: > > Merge remote-tracking branch 'remotes/elmarco/tags/slirp-pull-request' into staging (2020-03-22 21:00:38 +0000) > > are available in the Git repository at: > > git://github.com/vivier/qemu.git tags/linux-user-for-5.0-pull-request > > for you to fetch changes up to eec24827f7e67ead39349bb78597da566f854a4c: > > linux-user: Flush out implementation of gettimeofday (2020-03-24 12:04:14 +0100) > > ---------------------------------------------------------------- > Emulate x86_64 vsyscall > > v2: remove trailing space > > ---------------------------------------------------------------- > > Richard Henderson (5): > target/i386: Renumber EXCP_SYSCALL > linux-user/i386: Split out gen_signal > linux-user/i386: Emulate x86_64 vsyscalls > linux-user: Add x86_64 vsyscall page to /proc/self/maps > linux-user: Flush out implementation of gettimeofday Fails as before: /home/petmay01/linaro/qemu-for-merges/build/all-linux-static/x86_64-linux-user/qemu-x86_64 -L ./gnemul/qemu-x86_64 x86_64/ls -l dummyfile qemu: 0x40008117e9: unhandled CPU exception 0x101 - aborting RAX=000000000000003f RBX=000000006ffffe34 RCX=0000004000800b18 RDX=0000004000813180 RSI=0000000000000064 RDI=0000004000800670 RBP=000000006fffff40 RSP=0000004000800668 R8 =0000000000000000 R9 =0000004000800b45 R10=0000004000801a18 R11=0000004000801260 R12=00000040008008c0 R13=0000000000000008 R14=0000000000400040 R15=00000040008032d0 RIP=00000040008117e9 RFL=00000246 [---Z-P-] CPL=3 II=0 A20=1 SMM=0 HLT=0 ES =0000 0000000000000000 00000000 00000000 CS =0033 0000000000000000 ffffffff 00effb00 DPL=3 CS64 [-RA] SS =002b 0000000000000000 ffffffff 00cff300 DPL=3 DS [-WA] DS =0000 0000000000000000 00000000 00000000 FS =0000 0000000000000000 00000000 00000000 GS =0000 0000000000000000 00000000 00000000 LDT=0000 0000000000000000 0000ffff 00008200 DPL=0 LDT TR =0000 0000000000000000 0000ffff 00008b00 DPL=0 TSS64-busy GDT= 000000400091a000 0000007f IDT= 0000004000919000 000001ff CR0=80010001 CR2=0000000000000000 CR3=0000000000000000 CR4=00000220 DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 DR3=0000000000000000 DR6=00000000ffff0ff0 DR7=0000000000000400 EFER=0000000000000500 Makefile:6: recipe for target 'test' failed make: *** [test] Error 127 make: Leaving directory '/home/petmay01/linaro/linux-user-test-0.3' thanks -- PMM
Le 24/03/2020 à 13:20, Peter Maydell a écrit :
> On Tue, 24 Mar 2020 at 11:18, Laurent Vivier <laurent@vivier.eu> wrote:
>>
>> The following changes since commit 29e0855c5af62bbb0b0b6fed792e004dad92ba95:
>>
>> Merge remote-tracking branch 'remotes/elmarco/tags/slirp-pull-request' into staging (2020-03-22 21:00:38 +0000)
>>
>> are available in the Git repository at:
>>
>> git://github.com/vivier/qemu.git tags/linux-user-for-5.0-pull-request
>>
>> for you to fetch changes up to eec24827f7e67ead39349bb78597da566f854a4c:
>>
>> linux-user: Flush out implementation of gettimeofday (2020-03-24 12:04:14 +0100)
>>
>> ----------------------------------------------------------------
>> Emulate x86_64 vsyscall
>>
>> v2: remove trailing space
>>
>> ----------------------------------------------------------------
>>
>> Richard Henderson (5):
>> target/i386: Renumber EXCP_SYSCALL
>> linux-user/i386: Split out gen_signal
>> linux-user/i386: Emulate x86_64 vsyscalls
>> linux-user: Add x86_64 vsyscall page to /proc/self/maps
>> linux-user: Flush out implementation of gettimeofday
>
> Fails as before:
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"?
I will not resend this PR while I don't understand what really happens.
Thanks,
Laurent
On Tue, 24 Mar 2020 at 12:32, Laurent Vivier <laurent@vivier.eu> 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).
thanks
-- PMM
Le 24/03/2020 à 14:14, Peter Maydell a écrit :
> On Tue, 24 Mar 2020 at 12:32, Laurent Vivier <laurent@vivier.eu> 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.
Any idea?
Thanks,
Laurent
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 <laurent@vivier.eu> 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
© 2016 - 2025 Red Hat, Inc.