Prev: [PATCH -rc] memcg: disable move charge in no mmu case
Next: [PATCH] x86,perf: Enable not tagged retired instruction counting
From: Andreas Schwab on 18 Mar 2010 13:30 Steven Munroe <munroesj(a)linux.vnet.ibm.com> writes: > extern long int syscall (long int __sysno, ...) __THROW; > > #endif /* Use misc. */ > > Changing this would be an ABI change and would have to be versioned. It > would effect any one using syscall not just SYS_fallocate. > > the question is do programmers in practice include unistd.h when they > use syscall. > > If the changed prototype is not in scope then the 1st parm (__sysno) > defaults to int and is passed in on r3 which gets moved to r0. int is incompatible with long, so you already get undefined behaviour anyway. Andreas. -- Andreas Schwab, schwab(a)redhat.com GPG Key fingerprint = D4E8 DBE3 3813 BB5D FA84 5EC7 45C6 250E 6F00 984E "And now for something completely different." -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Benjamin Herrenschmidt on 18 Mar 2010 17:20 On Thu, 2010-03-18 at 12:03 -0500, Steven Munroe wrote: > Sorry in and long are compatible in 32-bit but not long long. > > int and long are not compatible in 64-bit > > It is hard the keep all the nodes and arguments straight. > > But the concern about changing the prototype and are people actually > using the prototype are still valid. Well, using the macro trick instead would fix that problem, code wouldn't build if it doesn't include unistd.h :-) Cheers, Ben. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Jamie Lokier on 18 Mar 2010 21:30 Benjamin Herrenschmidt wrote: > On Thu, 2010-03-18 at 12:03 -0500, Steven Munroe wrote: > > Sorry in and long are compatible in 32-bit but not long long. > > > > int and long are not compatible in 64-bit > > > > It is hard the keep all the nodes and arguments straight. > > > > But the concern about changing the prototype and are people actually > > using the prototype are still valid. > > Well, using the macro trick instead would fix that problem, code > wouldn't build if it doesn't include unistd.h :-) Or it will build, but call the old ABI version - no change to those programs. -- Jamie -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
First
|
Prev
|
Pages: 1 2 3 4 5 6 7 Prev: [PATCH -rc] memcg: disable move charge in no mmu case Next: [PATCH] x86,perf: Enable not tagged retired instruction counting |