From: Andreas Schwab on
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
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
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/