Message ID | 20200813064923.263565-1-laurent@vivier.eu |
---|---|
State | New |
Headers | show |
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 >
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
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 à 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