On Monday 16 December 2013 07:29:45 Rolf Eike Beer wrote: > I try to build strace 4.8 against an old glibc (2.3.4). This breaks > multiple times in loop.c. The failures I found so far are: > > -the glibc <linux/loop.h> forbids the header to be used from glibc using > programs, because glibc uses a 32 bit dev_t, which would cause wrong struct > layout in loop_info. I fixed this by this before including <linux/loop.h>:
there is no "glibc linux/loop.h". what you're describing is actually the kernel's loop.h, and it's from the pre-userspace sanitization days. the kernel header linux/loop.h doesn't use dev_t, it uses __kernel_old_dev_t. it was fixed here: commit 3f586c74e6b1620bb495d8a1508ec40f5d301d8e Author: Andries E. Brouwer <[email protected]> Date: Fri Apr 18 03:18:49 2003 -0700 that was first released in linux-2.5.68 in Apr 2003. so the question really is, do we care about linux systems using kernel headers that are more than a decade old ? i think the sane answer is "no". it would be easy to add a check like so though: #include <linux/version.h> #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0) int loop_ioctl(struct tcb *tcp, long code, long arg) { /* Your system is too old for us to care. */ return 0; } #else ... existing code ... #endif -mike
signature.asc
Description: This is a digitally signed message part.
------------------------------------------------------------------------------ Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________ Strace-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/strace-devel
