The 'linux/ioctlent.sh' that build is using, uses [A-Z] regexps that will fail with some alphabets like Estonian language: [snip] >>> Compiling source in /var/tmp/portage/dev-util/strace-4.5.20-r1/work/strace-4.5.20 ... make /bin/sh linux/ioctlent.sh /usr/include asm Looking for AGPIOC_BASE AGPIOC_BASE is a #define Looking for CCISS_IOC_MAGIC CCISS_IOC_MAGIC is a #define Looking for CM_IOC_MAGIC CM_IOC_MAGIC is a #define Looking for MGSL_MAGIC_IOC MGSL_MAGIC_IOC is a #define x86_64-pc-linux-gnu-gcc -march=native -ggdb -O2 -pipe -Wl,-O1 -Wl,--as-needed -I. -I/usr/include \ -o ioctlsort linux/ioctlsort.c In file included from linux/ioctlsort.c:20: ./ioctls.h:123: error: ‘PP_IOCTL’ undeclared here (not in a function) make: *** [ioctlsort] Error 1 emake failed [/snip]
Oh sh♥t…
ioctlsort shouldnt be used in the ebuild ...
It's needed if you wish to strace more recent ioctl()s that are not supported by strace out-of-the-box. Try debugging an ALSA-based software with strace without rebuilding the ioctl list and you'll know.
BTW I'll fix this up tomorrow, tonight I'm just too tired to do something sane, I broke it, I'll fix it → thus why the bug is assigned to me.
except ioctlsort does not generate a complete list (nor can it), nor does the single header you're changing affect all arches. simply patch in the few ioctls you're missing instead of mucking with this hack script. it is meant purely as reference material.
Finally fixed this since -r2 applies the new ioctl() as a patch.
for future reference, do not add `die` to `dodoc` calls