[strace/strace] building strace with buildroot fails when a toolchain is installed on the system (#150)

Heiko Thiery notifications at github.com
Sat Sep 5 11:18:16 UTC 2020


On the host an arm toolchain is installed (arm-linux-gnueabi-) but buildroot should use aarch64-buildroot-linux-gnu-. The strace configuration tries to use the host one.

Build output: https://pastebin.com/GeSYYvnB

```
>>> strace 5.7 Building
PATH="/srv/storage/hthiery/buildroot/output/host/bin:/srv/storage/hthiery/buildroot/output/host/sbin:/home/hthiery/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"  /usr/bin/make -j33  -C /srv/storage/hthiery/buildroot/output/build/strace-5.7/
make[1]: Entering directory '/srv/storage/hthiery/buildroot/output/build/strace-5.7'
for f in block.c btrfs.c dirent.c evdev_mpers.c fetch_bpf_fprog.c fetch_struct_flock.c fetch_struct_keyctl_kdf_params.c fetch_struct_mmsghdr.c fetch_struct_msghdr.c fetch_struct_stat.c fetch_struct_stat64.c fetch_struct_statfs.c fetch_struct_xfs_quotastat.c hdio.c ipc_msgctl.c ipc_shmctl.c loop.c mtd.c perf_ioctl.c print_aio_sigset.c print_group_req.c print_mq_attr.c print_msgbuf.c print_sg_req_info.c print_sigevent.c print_time.c print_timeval.c printrusage.c printsiginfo.c rt_sigreturn.c rtc.c sg_io_v3.c sigaltstack.c sock.c sysinfo.c times.c ustat.c utime.c v4l2.c; do \
	D="" \
	READELF="/srv/storage/hthiery/buildroot/output/host/bin/aarch64-buildroot-linux-gnu-readelf" \
	CC="arm-linux-gnueabi-gcc" \
	CFLAGS="-DHAVE_CONFIG_H   -I./linux/aarch64 -I./linux/aarch64 -I./linux -I./linux -I. -I.      -DMPERS_IS_m32" \
	CPP="/srv/storage/hthiery/buildroot/output/host/bin/aarch64-buildroot-linux-gnu-cpp" \
	CPPFLAGS="-DHAVE_CONFIG_H   -I./linux/aarch64 -I./linux/aarch64 -I./linux -I./linux -I. -I.      -DIN_MPERS -DMPERS_IS_m32" \
	./mpers.sh m32 "-std=gnu99 " $f || exit; \
done
mpers-m32/kernel_v4l2_buffer_t.c:16:23: error: invalid application of 'sizeof' to incomplete type 'struct v4l2_meta_format'
  static_assert(sizeof(struct s_) == sizeof(struct_##s_), \
                       ^
mpers-m32/kernel_v4l2_buffer_t.c:51:1: note: in expansion of macro 'CHECK_V4L2_STRUCT_SIZE'
 CHECK_V4L2_STRUCT_SIZE(v4l2_meta_format);
 ^~~~~~~~~~~~~~~~~~~~~~
mpers-m32/kernel_v4l2_buffer_t.c:16:16: error: expression in static assertion is not an integer
  static_assert(sizeof(struct s_) == sizeof(struct_##s_), \
                ^
mpers-m32/kernel_v4l2_buffer_t.c:51:1: note: in expansion of macro 'CHECK_V4L2_STRUCT_SIZE'
 CHECK_V4L2_STRUCT_SIZE(v4l2_meta_format);
 ^~~~~~~~~~~~~~~~~~~~~~
Makefile:10249: recipe for target 'mpers-m32.stamp' failed
make[1]: *** [mpers-m32.stamp] Error 1
```

The strace buildroot package is configured to use --enable-mpers=chech. When setting the value to --enable-mpers=no the build will succeed.

For me it is not clear if there is an issue in strace configuration that the host compiler will be selected or if the buildroot package is wrongly configured.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/strace/strace/issues/150
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.strace.io/pipermail/strace-devel/attachments/20200905/703bb385/attachment.htm>


More information about the Strace-devel mailing list