Re: [PATCH 3/3] add the clone64() and unshare64() syscalls

From: H. Peter Anvin
Date: Wed Apr 09 2008 - 23:44:18 EST


sukadev@xxxxxxxxxx wrote:
Jakub Jelinek [jakub@xxxxxxxxxx] wrote:
| On Wed, Apr 09, 2008 at 03:34:59PM -0700, sukadev@xxxxxxxxxx wrote:
| > From: Cedric Le Goater <clg@xxxxxxxxxx>
| > Subject: [PATCH 3/3] add the clone64() and unshare64() syscalls
| > | > This patch adds 2 new syscalls :
| > | > long sys_clone64(unsigned long flags_high, unsigned long flags_low,
| > unsigned long newsp);
| > | > long sys_unshare64(unsigned long flags_high, unsigned long flags_low);
| | Can you explain why are you adding it for 64-bit arches too? unsigned long
| is there already 64-bit, and both sys_clone and sys_unshare have unsigned
| long flags, rather than unsigned int.

Hmm,

By simply resuing clone() on 64 bit and adding a new call for 32-bit won't
the semantics of clone() differ between the two ?

i.e clone() on 64 bit supports say CLONE_NEWPTS clone() on 32bit does not ?

Wouldn't it be simpler/cleaner if clone() and clone64() behaved the same
on both 32 and 64 bit systems ?


No, not really. The way this work on the libc side is pretty much "use clone64 if it exists, otherwise use clone".

-hpa
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/