strace-4.5.12 does not build if it finds libaio-0.3.15 installed. Seems that there is a mismatch between the declaration of iocb in libaio.h and what desc.c is expecting. libaio.h defines iocb.aio_data (and .aio_key) desc.c expects iocb.data (and .key) Reproducible: Always Steps to Reproduce: 1. emerge libaio (0.3.15) 2. emerge strace Actual Results: Error compiling desc.c: if x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I. -Ilinux/x86_64 -I./linux/x86_64 -Ilinux -I./linux -Wall -pipe -O2 -mtune=athlon64 -MT ipc.o -MD -MP -MF ".deps/ipc.Tpo" -c -o ipc.o ipc.c; \ then mv -f ".deps/ipc.Tpo" ".deps/ipc.Po"; else rm -f ".deps/ipc.Tpo"; exit 1; fi desc.c: In function `sys_io_submit': desc.c:770: error: structure has no member named `data' desc.c:770: error: structure has no member named `key' desc.c: In function `sys_io_cancel': desc.c:796: error: structure has no member named `data' desc.c:796: error: structure has no member named `key' desc.c:811: warning: format argument is not a pointer (arg 2) desc.c:811: warning: format argument is not a pointer (arg 3) desc.c:811: warning: long int format, __s64 arg (arg 4) desc.c:811: warning: long int format, __s64 arg (arg 5) desc.c: In function `sys_io_getevents': desc.c:848: warning: format argument is not a pointer (arg 2) desc.c:848: warning: format argument is not a pointer (arg 3) desc.c:848: warning: long int format, __s64 arg (arg 4) desc.c:848: warning: long int format, __s64 arg (arg 5) Expected Results: Smoooth compile. Not sure if this is amd64 related, actually, but I don't have an x86 handy. Tentative patch will be attached.
Created attachment 66634 [details, diff] fix iocb in desc.c This is probably dependant on a recent libaio version...
fixed in cvs, thanks
Hi, I got hit by the problem tonight. So when does the fix goes from cvs into the life portage tree ? ;)
it's already in portage
This patch breaks x86 strace ebuild with libaio-0.3.104. This version of libaio has the iocb.data and iocb.key members.
*** Bug 112914 has been marked as a duplicate of this bug. ***
should update configure to detect the proper member name of aio
patch now checks to see what version of libaio it is building against and uses the appropriate structure members