configure | 9 ++ linux-user/ioctls.h | 124 ++++++++++++++++++++++++ linux-user/mmap.c | 110 ++++++++++++++------- linux-user/strace.c | 8 +- linux-user/syscall.c | 193 +++++++++++++++++++++++++++++++------ linux-user/syscall_defs.h | 42 ++++++++ linux-user/syscall_types.h | 140 +++++++++++++++++++++++++++ 7 files changed, 563 insertions(+), 63 deletions(-)
The following changes since commit d0ed6a69d399ae193959225cdeaa9382746c91cc:
Update version for v5.1.0 release (2020-08-11 17:07:03 +0100)
are available in the Git repository at:
git://github.com/vivier/qemu.git tags/linux-user-for-5.2-pull-request
for you to fetch changes up to 04275cad60c8f99e0dd7f56aecda68ceac926da8:
linux-user: Fix 'utimensat()' implementation (2020-08-12 10:09:58 +0200)
----------------------------------------------------------------
Add btrfs ioctls
Add clock_getres_time64, timer_gettime64, timer_settime64,
timerfd_gettime64, timerfd_settime64
Some fixes (page protection, print_fdset, timerspec, itimerspec)
----------------------------------------------------------------
Filip Bozuta (12):
linux-user: Fix "print_fdset()" in "strace.c" to not print ", " after
last value
linux-user: Modify 'target_to_host/host_to_target_itimerspec()'
linux-user: Add support for a group of 2038 safe syscalls
linux-user: Add support for a group of btrfs ioctls used for
subvolumes
linux-user: Add support for a group of btrfs ioctls used for snapshots
linux-user: Add support for btrfs ioctls used to manipulate with
devices
linux-user: Add support for btrfs ioctls used to get/set features
linux-user: Add support for a group of btrfs inode ioctls
linux-user: Add support for two btrfs ioctls used for subvolume
linux-user: Add support for btrfs ioctls used to manage quota
linux-user: Add support for btrfs ioctls used to scrub a filesystem
linux-user: Fix 'utimensat()' implementation
Richard Henderson (2):
linux-user: Validate mmap/mprotect prot value
linux-user: Adjust guest page protection for the host
configure | 9 ++
linux-user/ioctls.h | 124 ++++++++++++++++++++++++
linux-user/mmap.c | 110 ++++++++++++++-------
linux-user/strace.c | 8 +-
linux-user/syscall.c | 193 +++++++++++++++++++++++++++++++------
linux-user/syscall_defs.h | 42 ++++++++
linux-user/syscall_types.h | 140 +++++++++++++++++++++++++++
7 files changed, 563 insertions(+), 63 deletions(-)
--
2.26.2
On Thu, 13 Aug 2020 at 07:51, Laurent Vivier <laurent@vivier.eu> wrote:
>
> The following changes since commit d0ed6a69d399ae193959225cdeaa9382746c91cc:
>
> Update version for v5.1.0 release (2020-08-11 17:07:03 +0100)
>
> are available in the Git repository at:
>
> git://github.com/vivier/qemu.git tags/linux-user-for-5.2-pull-request
>
> for you to fetch changes up to 04275cad60c8f99e0dd7f56aecda68ceac926da8:
>
> linux-user: Fix 'utimensat()' implementation (2020-08-12 10:09:58 +0200)
>
> ----------------------------------------------------------------
> Add btrfs ioctls
> Add clock_getres_time64, timer_gettime64, timer_settime64,
> timerfd_gettime64, timerfd_settime64
> Some fixes (page protection, print_fdset, timerspec, itimerspec)
>
> ----------------------------------------------------------------
Fails to compile:
../../linux-user/syscall_types.h:407:28: error:
‘BTRFS_INO_LOOKUP_USER_PATH_MAX’ undeclared here (not in a function);
did you mean ‘BTRFS_INO_LOOKUP_PATH_MAX’?
MK_ARRAY(TYPE_CHAR, BTRFS_INO_LOOKUP_USER_PATH_MAX)) /* path */
^
../../linux-user/syscall_types.h:451:17: error:
‘BTRFS_MAX_ROOTREF_BUFFER_NUM’ undeclared here (not in a function)
BTRFS_MAX_ROOTREF_BUFFER_NUM), /* rootref */
^
On PPC, even more errors, relating to not having
BTRFS_PATH_NAME_MAX, PTRFS_VOL_NAME_MAX, etc.
Not sure if this was a semantic conflict with the meson
conversion, or just an assumption of a newer btrfs.h
than some systems have.
thanks
-- PMM
Filip, could you have a look to see what's going wrong? Thanks, LAurent Le 21/08/2020 à 18:23, Peter Maydell a écrit : > On Thu, 13 Aug 2020 at 07:51, Laurent Vivier <laurent@vivier.eu> wrote: >> >> The following changes since commit d0ed6a69d399ae193959225cdeaa9382746c91cc: >> >> Update version for v5.1.0 release (2020-08-11 17:07:03 +0100) >> >> are available in the Git repository at: >> >> git://github.com/vivier/qemu.git tags/linux-user-for-5.2-pull-request >> >> for you to fetch changes up to 04275cad60c8f99e0dd7f56aecda68ceac926da8: >> >> linux-user: Fix 'utimensat()' implementation (2020-08-12 10:09:58 +0200) >> >> ---------------------------------------------------------------- >> Add btrfs ioctls >> Add clock_getres_time64, timer_gettime64, timer_settime64, >> timerfd_gettime64, timerfd_settime64 >> Some fixes (page protection, print_fdset, timerspec, itimerspec) >> >> ---------------------------------------------------------------- > > Fails to compile: > > ../../linux-user/syscall_types.h:407:28: error: > ‘BTRFS_INO_LOOKUP_USER_PATH_MAX’ undeclared here (not in a function); > did you mean ‘BTRFS_INO_LOOKUP_PATH_MAX’? > MK_ARRAY(TYPE_CHAR, BTRFS_INO_LOOKUP_USER_PATH_MAX)) /* path */ > ^ > > ../../linux-user/syscall_types.h:451:17: error: > ‘BTRFS_MAX_ROOTREF_BUFFER_NUM’ undeclared here (not in a function) > BTRFS_MAX_ROOTREF_BUFFER_NUM), /* rootref */ > ^ > > On PPC, even more errors, relating to not having > BTRFS_PATH_NAME_MAX, PTRFS_VOL_NAME_MAX, etc. > > Not sure if this was a semantic conflict with the meson > conversion, or just an assumption of a newer btrfs.h > than some systems have. > > thanks > -- PMM >
Hello, On 21.8.20. 20:45, Laurent Vivier wrote: > Filip, > > could you have a look to see what's going wrong? > > Thanks, > LAurent > > Le 21/08/2020 à 18:23, Peter Maydell a écrit : >> On Thu, 13 Aug 2020 at 07:51, Laurent Vivier <laurent@vivier.eu> wrote: >>> The following changes since commit d0ed6a69d399ae193959225cdeaa9382746c91cc: >>> >>> Update version for v5.1.0 release (2020-08-11 17:07:03 +0100) >>> >>> are available in the Git repository at: >>> >>> git://github.com/vivier/qemu.git tags/linux-user-for-5.2-pull-request >>> >>> for you to fetch changes up to 04275cad60c8f99e0dd7f56aecda68ceac926da8: >>> >>> linux-user: Fix 'utimensat()' implementation (2020-08-12 10:09:58 +0200) >>> >>> ---------------------------------------------------------------- >>> Add btrfs ioctls >>> Add clock_getres_time64, timer_gettime64, timer_settime64, >>> timerfd_gettime64, timerfd_settime64 >>> Some fixes (page protection, print_fdset, timerspec, itimerspec) >>> >>> ---------------------------------------------------------------- >> Fails to compile: >> >> ../../linux-user/syscall_types.h:407:28: error: >> ‘BTRFS_INO_LOOKUP_USER_PATH_MAX’ undeclared here (not in a function); >> did you mean ‘BTRFS_INO_LOOKUP_PATH_MAX’? >> MK_ARRAY(TYPE_CHAR, BTRFS_INO_LOOKUP_USER_PATH_MAX)) /* path */ >> ^ >> >> ../../linux-user/syscall_types.h:451:17: error: >> ‘BTRFS_MAX_ROOTREF_BUFFER_NUM’ undeclared here (not in a function) >> BTRFS_MAX_ROOTREF_BUFFER_NUM), /* rootref */ >> ^ >> >> On PPC, even more errors, relating to not having >> BTRFS_PATH_NAME_MAX, PTRFS_VOL_NAME_MAX, etc. >> >> Not sure if this was a semantic conflict with the meson >> conversion, or just an assumption of a newer btrfs.h >> than some systems have. Yes, this is because of asumption that a newer btrfs.h file is present than some systems have. There have been significant changes in btrfs.h from kernel version 3.9 (since it was introduced). For example, BTRFS_INO_LOOKPU_USER_PATH_MAX is used by BTRRS_IOC_INO_LOOKUP_USER which was introduced a little later which is why this error ocurres. I am guessing that this should be fixed by putting an #ifdef around thunk structure definitions in 'syscall_types.h' to check whether the values that are used by these structures are present (or if ioctls that use this structures are defined). I am sorry that I didn't notice this at first. I will try to send a fix as soon as possible. Best regards, Filip >> >> thanks >> -- PMM >>
Le 21/08/2020 à 18:23, Peter Maydell a écrit :
> On Thu, 13 Aug 2020 at 07:51, Laurent Vivier <laurent@vivier.eu> wrote:
>>
>> The following changes since commit d0ed6a69d399ae193959225cdeaa9382746c91cc:
>>
>> Update version for v5.1.0 release (2020-08-11 17:07:03 +0100)
>>
>> are available in the Git repository at:
>>
>> git://github.com/vivier/qemu.git tags/linux-user-for-5.2-pull-request
>>
>> for you to fetch changes up to 04275cad60c8f99e0dd7f56aecda68ceac926da8:
>>
>> linux-user: Fix 'utimensat()' implementation (2020-08-12 10:09:58 +0200)
>>
>> ----------------------------------------------------------------
>> Add btrfs ioctls
>> Add clock_getres_time64, timer_gettime64, timer_settime64,
>> timerfd_gettime64, timerfd_settime64
>> Some fixes (page protection, print_fdset, timerspec, itimerspec)
>>
>> ----------------------------------------------------------------
>
> Fails to compile:
>
> ../../linux-user/syscall_types.h:407:28: error:
> ‘BTRFS_INO_LOOKUP_USER_PATH_MAX’ undeclared here (not in a function);
> did you mean ‘BTRFS_INO_LOOKUP_PATH_MAX’?
> MK_ARRAY(TYPE_CHAR, BTRFS_INO_LOOKUP_USER_PATH_MAX)) /* path */
> ^
>
> ../../linux-user/syscall_types.h:451:17: error:
> ‘BTRFS_MAX_ROOTREF_BUFFER_NUM’ undeclared here (not in a function)
> BTRFS_MAX_ROOTREF_BUFFER_NUM), /* rootref */
> ^
>
> On PPC, even more errors, relating to not having
> BTRFS_PATH_NAME_MAX, PTRFS_VOL_NAME_MAX, etc.
>
> Not sure if this was a semantic conflict with the meson
> conversion, or just an assumption of a newer btrfs.h
> than some systems have.
Well, for me master is also broken (F32, linux-user only, static):
Compiling C object libqemuutil.a.p/util_compatfd.c.o
../../../Projects/qemu/util/compatfd.c: In function 'qemu_signalfd':
../../../Projects/qemu/util/compatfd.c:103:19: error: 'SYS_signalfd'
undeclared (first use in this function); did you mean 'SYS_signalfd4'?
103 | ret = syscall(SYS_signalfd, -1, mask, _NSIG / 8);
| ^~~~~~~~~~~~
| SYS_signalfd4
../../../Projects/qemu/util/compatfd.c:103:19: note: each undeclared
identifier is reported only once for each function it appears in
Thanks,
Laurent
Le 21/08/2020 à 21:08, Laurent Vivier a écrit :
> Le 21/08/2020 à 18:23, Peter Maydell a écrit :
>> On Thu, 13 Aug 2020 at 07:51, Laurent Vivier <laurent@vivier.eu> wrote:
>>>
>>> The following changes since commit d0ed6a69d399ae193959225cdeaa9382746c91cc:
>>>
>>> Update version for v5.1.0 release (2020-08-11 17:07:03 +0100)
>>>
>>> are available in the Git repository at:
>>>
>>> git://github.com/vivier/qemu.git tags/linux-user-for-5.2-pull-request
>>>
>>> for you to fetch changes up to 04275cad60c8f99e0dd7f56aecda68ceac926da8:
>>>
>>> linux-user: Fix 'utimensat()' implementation (2020-08-12 10:09:58 +0200)
>>>
>>> ----------------------------------------------------------------
>>> Add btrfs ioctls
>>> Add clock_getres_time64, timer_gettime64, timer_settime64,
>>> timerfd_gettime64, timerfd_settime64
>>> Some fixes (page protection, print_fdset, timerspec, itimerspec)
>>>
>>> ----------------------------------------------------------------
>>
>> Fails to compile:
>>
>> ../../linux-user/syscall_types.h:407:28: error:
>> ‘BTRFS_INO_LOOKUP_USER_PATH_MAX’ undeclared here (not in a function);
>> did you mean ‘BTRFS_INO_LOOKUP_PATH_MAX’?
>> MK_ARRAY(TYPE_CHAR, BTRFS_INO_LOOKUP_USER_PATH_MAX)) /* path */
>> ^
>>
>> ../../linux-user/syscall_types.h:451:17: error:
>> ‘BTRFS_MAX_ROOTREF_BUFFER_NUM’ undeclared here (not in a function)
>> BTRFS_MAX_ROOTREF_BUFFER_NUM), /* rootref */
>> ^
>>
>> On PPC, even more errors, relating to not having
>> BTRFS_PATH_NAME_MAX, PTRFS_VOL_NAME_MAX, etc.
>>
>> Not sure if this was a semantic conflict with the meson
>> conversion, or just an assumption of a newer btrfs.h
>> than some systems have.
>
> Well, for me master is also broken (F32, linux-user only, static):
>
> Compiling C object libqemuutil.a.p/util_compatfd.c.o
> ../../../Projects/qemu/util/compatfd.c: In function 'qemu_signalfd':
> ../../../Projects/qemu/util/compatfd.c:103:19: error: 'SYS_signalfd'
> undeclared (first use in this function); did you mean 'SYS_signalfd4'?
> 103 | ret = syscall(SYS_signalfd, -1, mask, _NSIG / 8);
> | ^~~~~~~~~~~~
> | SYS_signalfd4
> ../../../Projects/qemu/util/compatfd.c:103:19: note: each undeclared
> identifier is reported only once for each function it appears in
"--static" seems broken too:
$ '.../configure' '--disable-system' '--enable-linux-user'
'--disable-tools' '--static' '--disable-slirp' '--enable-capstone=git'
C++ compiler c++ does not work with C compiler cc
Disabling C++ specific optional code
cross containers docker
NOTE: guest cross-compilers enabled: cc
The Meson build system
Version: 0.55.0
...
gprof enabled: NO
sparse enabled: NO
strip binaries: YES
profiler: NO
static build: NO
SDL support: NO
SDL image support: NO
GTK support: YES
...
Thanks,
Laurent
Le 21/08/2020 à 21:08, Laurent Vivier a écrit : > Le 21/08/2020 à 18:23, Peter Maydell a écrit : >> On Thu, 13 Aug 2020 at 07:51, Laurent Vivier <laurent@vivier.eu> wrote: >>> >>> The following changes since commit d0ed6a69d399ae193959225cdeaa9382746c91cc: >>> >>> Update version for v5.1.0 release (2020-08-11 17:07:03 +0100) >>> >>> are available in the Git repository at: >>> >>> git://github.com/vivier/qemu.git tags/linux-user-for-5.2-pull-request >>> >>> for you to fetch changes up to 04275cad60c8f99e0dd7f56aecda68ceac926da8: >>> >>> linux-user: Fix 'utimensat()' implementation (2020-08-12 10:09:58 +0200) >>> >>> ---------------------------------------------------------------- >>> Add btrfs ioctls >>> Add clock_getres_time64, timer_gettime64, timer_settime64, >>> timerfd_gettime64, timerfd_settime64 >>> Some fixes (page protection, print_fdset, timerspec, itimerspec) >>> >>> ---------------------------------------------------------------- >> >> Fails to compile: >> >> ../../linux-user/syscall_types.h:407:28: error: >> ‘BTRFS_INO_LOOKUP_USER_PATH_MAX’ undeclared here (not in a function); >> did you mean ‘BTRFS_INO_LOOKUP_PATH_MAX’? >> MK_ARRAY(TYPE_CHAR, BTRFS_INO_LOOKUP_USER_PATH_MAX)) /* path */ >> ^ >> >> ../../linux-user/syscall_types.h:451:17: error: >> ‘BTRFS_MAX_ROOTREF_BUFFER_NUM’ undeclared here (not in a function) >> BTRFS_MAX_ROOTREF_BUFFER_NUM), /* rootref */ >> ^ >> >> On PPC, even more errors, relating to not having >> BTRFS_PATH_NAME_MAX, PTRFS_VOL_NAME_MAX, etc. >> >> Not sure if this was a semantic conflict with the meson >> conversion, or just an assumption of a newer btrfs.h >> than some systems have. > > Well, for me master is also broken (F32, linux-user only, static): > > Compiling C object libqemuutil.a.p/util_compatfd.c.o > ../../../Projects/qemu/util/compatfd.c: In function 'qemu_signalfd': > ../../../Projects/qemu/util/compatfd.c:103:19: error: 'SYS_signalfd' > undeclared (first use in this function); did you mean 'SYS_signalfd4'? > 103 | ret = syscall(SYS_signalfd, -1, mask, _NSIG / 8); > | ^~~~~~~~~~~~ > | SYS_signalfd4 > ../../../Projects/qemu/util/compatfd.c:103:19: note: each undeclared > identifier is reported only once for each function it appears in My build env was dirty and I had an asm/unistd.h that was not valid. Fixed now. Thanks, Laurent
© 2016 - 2026 Red Hat, Inc.