public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PATCH v3 2/2] Use direct socket syscalls for new kernels on sparc
  2016-03-04 17:51 [PATCH v3 0/2] sparc64: fix socket syscalls with recent kernel headers Aurelien Jarno
  2016-03-04 17:51 ` [PATCH v3 1/2] sparc64: remove bind, listen, send and setsockopt from syscalls.list Aurelien Jarno
@ 2016-03-04 17:51 ` Aurelien Jarno
  2016-03-04 18:26   ` Dmitry V. Levin
  1 sibling, 1 reply; 5+ messages in thread
From: Aurelien Jarno @ 2016-03-04 17:51 UTC (permalink / raw)
  To: libc-alpha; +Cc: David S . Miller, Aurelien Jarno

All direct socket syscalls have been added in kernel version 4.4 for
SPARC32.

The 3 missing direct socket syscalls bind, listen and setsockopt have
been added in kernel version 4.4 for SPARC64. All others were already
present for SPARC64 in kernel versions 3.2 or earlier.

Changelog:
	* sysdeps/unix/sysv/linux/sparc/kernel-features.h
	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
	(ASSUME_ACCEPT_SYSCALL): New macro.
	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
	(ASSUME_CONNECT_SYSCALL): Likewise.
	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
	(ASSUME_GETPEERNAME_SYSCALL): Likewise.
	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
	(ASSUME_GETSOCKNAME_SYSCALL): Likewise.
	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
	(ASSUME_GETSOCKOPT_SYSCALL): Likewise.
	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
	(ASSUME_RECV_SYSCALL): Likewise.
	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
	(ASSUME_RECVFROM_SYSCALL): Likewise.
	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
	(ASSUME_RECVMSG_SYSCALL): Likewise.
	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
	(ASSUME_SENDMSG_SYSCALL): Likewise.
	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
	(ASSUME_SENDTO_SYSCALL): Likewise.
	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
	(ASSUME_SENDTO_FOR_SEND_SYSCALL): Likewise.
	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
	(ASSUME_SHUTDOWN_SYSCALL): Likewise.
	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
	(ASSUME_SOCKET_SYSCALL): Likewise.
	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
	(ASSUME_SOCKETPAIR_SYSCALL): Likewise.
	[__LINUX_KERNEL_VERSION >= 0x040400] (__ASSUME_BIND_SYSCALL):
	Likewise.
	[__LINUX_KERNEL_VERSION >= 0x040400] (__ASSUME_LISTEN_SYSCALL):
	Likewise.
	[__LINUX_KERNEL_VERSION >= 0x040400] (__ASSUME_SETSOCKOPT_SYSCALL):
	Likewise.
---
 ChangeLog                                       | 35 +++++++++++++++++++++++++
 sysdeps/unix/sysv/linux/sparc/kernel-features.h | 25 ++++++++++++++++++
 2 files changed, 60 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index 05277f9..32b1fc7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,41 @@
 
 	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list (bind, listen,
 	send, setsockopt): Remove.
+	* sysdeps/unix/sysv/linux/sparc/kernel-features.h
+	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
+	(ASSUME_ACCEPT_SYSCALL): New macro.
+	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
+	(ASSUME_CONNECT_SYSCALL): Likewise.
+	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
+	(ASSUME_GETPEERNAME_SYSCALL): Likewise.
+	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
+	(ASSUME_GETSOCKNAME_SYSCALL): Likewise.
+	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
+	(ASSUME_GETSOCKOPT_SYSCALL): Likewise.
+	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
+	(ASSUME_RECV_SYSCALL): Likewise.
+	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
+	(ASSUME_RECVFROM_SYSCALL): Likewise.
+	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
+	(ASSUME_RECVMSG_SYSCALL): Likewise.
+	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
+	(ASSUME_SENDMSG_SYSCALL): Likewise.
+	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
+	(ASSUME_SENDTO_SYSCALL): Likewise.
+	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
+	(ASSUME_SENDTO_FOR_SEND_SYSCALL): Likewise.
+	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
+	(ASSUME_SHUTDOWN_SYSCALL): Likewise.
+	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
+	(ASSUME_SOCKET_SYSCALL): Likewise.
+	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
+	(ASSUME_SOCKETPAIR_SYSCALL): Likewise.
+	[__LINUX_KERNEL_VERSION >= 0x040400] (__ASSUME_BIND_SYSCALL):
+	Likewise.
+	[__LINUX_KERNEL_VERSION >= 0x040400] (__ASSUME_LISTEN_SYSCALL):
+	Likewise.
+	[__LINUX_KERNEL_VERSION >= 0x040400] (__ASSUME_SETSOCKOPT_SYSCALL):
+	Likewise.
 
 2016-03-01  H.J. Lu  <hongjiu.lu@intel.com>
 
diff --git a/sysdeps/unix/sysv/linux/sparc/kernel-features.h b/sysdeps/unix/sysv/linux/sparc/kernel-features.h
index 3a7baa7..25e7434 100644
--- a/sysdeps/unix/sysv/linux/sparc/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/sparc/kernel-features.h
@@ -32,6 +32,31 @@
 #define __ASSUME_SENDMMSG_SYSCALL	1
 #define __ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL	1
 
+/* Direct socketcalls available for SPARC64 in 3.2 and for SPARC32 in 4.4.  */
+#if __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400
+# define __ASSUME_ACCEPT_SYSCALL		1
+# define __ASSUME_CONNECT_SYSCALL		1
+# define __ASSUME_GETPEERNAME_SYSCALL		1
+# define __ASSUME_GETSOCKNAME_SYSCALL		1
+# define __ASSUME_GETSOCKOPT_SYSCALL		1
+# define __ASSUME_RECV_SYSCALL			1
+# define __ASSUME_RECVFROM_SYSCALL		1
+# define __ASSUME_RECVMSG_SYSCALL		1
+# define __ASSUME_SENDMSG_SYSCALL		1
+# define __ASSUME_SENDTO_SYSCALL		1
+# define __ASSUME_SENDTO_FOR_SEND_SYSCALL	1
+# define __ASSUME_SHUTDOWN_SYSCALL		1
+# define __ASSUME_SOCKET_SYSCALL		1
+# define __ASSUME_SOCKETPAIR_SYSCALL		1
+#endif
+
+/* Direct socketcalls available for SPARC32 and for SPARC64 in 4.4.  */
+#if __LINUX_KERNEL_VERSION >= 0x040400
+# define __ASSUME_BIND_SYSCALL			1
+# define __ASSUME_LISTEN_SYSCALL		1
+# define __ASSUME_SETSOCKOPT_SYSCALL		1
+#endif
+
 #include_next <kernel-features.h>
 
 /* 32-bit SPARC kernels do not support
-- 
2.7.0

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v3 1/2] sparc64: remove bind, listen, send and setsockopt from syscalls.list
  2016-03-04 17:51 [PATCH v3 0/2] sparc64: fix socket syscalls with recent kernel headers Aurelien Jarno
@ 2016-03-04 17:51 ` Aurelien Jarno
  2016-03-04 17:51 ` [PATCH v3 2/2] Use direct socket syscalls for new kernels on sparc Aurelien Jarno
  1 sibling, 0 replies; 5+ messages in thread
From: Aurelien Jarno @ 2016-03-04 17:51 UTC (permalink / raw)
  To: libc-alpha; +Cc: David S . Miller, Aurelien Jarno

The bind, listen and setsockopt syscalls have recently been added in
kernel 4.4. They should therefore not appear in syscalls.list as it
means they are use inconditionally instead of possibly using the
the socketcall fallback.

The same way, remove the send syscall from syscalls.list as it only
exists as socketcall on the kernel side, and this might break in the
unlikely case it is wired-up later.

All other syscalls from syscalls.list with an equivalent socketcall
version are available in kernel 3.2, which is the required minimum.

Changelog:
	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list (bind, listen,
	send, setsockopt): Remove.
---
 ChangeLog                                           | 5 +++++
 sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list | 4 ----
 2 files changed, 5 insertions(+), 4 deletions(-)

I plan to backport this change into version 2.21, 2.22 and 2.23. I can
also backport it to older versions if requested.

diff --git a/ChangeLog b/ChangeLog
index 787fef1..05277f9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2016-03-02  Aurelien Jarno  <aurelien@aurel32.net>
+
+	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list (bind, listen,
+	send, setsockopt): Remove.
+
 2016-03-01  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* sysdeps/x86_64/_mcount.S (C_LABEL(_mcount)): Call
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list b/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
index 3d1c1da..68b1c09 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
@@ -3,18 +3,14 @@
 # Override select.S in parent directory:
 select		-	select		C:5	__select	select
 accept		-	accept		C:3	__libc_accept	__accept accept
-bind		-	bind		3	__bind		bind
 connect		-	connect		C:3	__libc_connect	__connect connect
 getpeername	-	getpeername	3	__getpeername	getpeername
 getsockname	-	getsockname	3	__getsockname	getsockname
 getsockopt	-	getsockopt	5	__getsockopt	getsockopt
-listen		-	listen		2	__listen	listen
 recv		-	recv		C:4	__libc_recv	__recv recv
 recvfrom	-	recvfrom	C:6	__libc_recvfrom	__recvfrom recvfrom
 recvmsg		-	recvmsg		C:3	__libc_recvmsg	__recvmsg recvmsg
-send		-	send		C:4	__libc_send	__send send
 sendmsg		-	sendmsg		C:3	__libc_sendmsg	__sendmsg sendmsg
 sendto		-	sendto		C:6	__libc_sendto	__sendto sendto
-setsockopt	-	setsockopt	5	__setsockopt	setsockopt
 shutdown	-	shutdown	2	__shutdown	shutdown
 socketpair	-	socketpair	4	__socketpair	socketpair
-- 
2.7.0

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v3 0/2] sparc64: fix socket syscalls with recent kernel headers
@ 2016-03-04 17:51 Aurelien Jarno
  2016-03-04 17:51 ` [PATCH v3 1/2] sparc64: remove bind, listen, send and setsockopt from syscalls.list Aurelien Jarno
  2016-03-04 17:51 ` [PATCH v3 2/2] Use direct socket syscalls for new kernels on sparc Aurelien Jarno
  0 siblings, 2 replies; 5+ messages in thread
From: Aurelien Jarno @ 2016-03-04 17:51 UTC (permalink / raw)
  To: libc-alpha; +Cc: David S . Miller, Aurelien Jarno

This patch series fixes the GNU libc on SPARC64 to not use direct socket
syscalls when used built against 4.4+ kernel headers and using
--enable-kernel with a version lower than 4.4.

Patch 1: remove the send syscall from syscalls.list 
Patch 2: add __ASSUME_* entries for SPARC32

Aurelien Jarno (2):
  sparc64: remove bind, listen, send and setsockopt from syscalls.list
  Use direct socket syscalls for new kernels on sparc

 ChangeLog                                          | 40 ++++++++++++++++++++++
 sysdeps/unix/sysv/linux/sparc/kernel-features.h    | 25 ++++++++++++++
 .../unix/sysv/linux/sparc/sparc64/syscalls.list    |  4 ---
 3 files changed, 65 insertions(+), 4 deletions(-)

-- 
2.7.0

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v3 2/2] Use direct socket syscalls for new kernels on sparc
  2016-03-04 17:51 ` [PATCH v3 2/2] Use direct socket syscalls for new kernels on sparc Aurelien Jarno
@ 2016-03-04 18:26   ` Dmitry V. Levin
  2016-03-06 23:50     ` Aurelien Jarno
  0 siblings, 1 reply; 5+ messages in thread
From: Dmitry V. Levin @ 2016-03-04 18:26 UTC (permalink / raw)
  To: Aurelien Jarno; +Cc: libc-alpha, David S . Miller

[-- Attachment #1: Type: text/plain, Size: 2778 bytes --]

On Fri, Mar 04, 2016 at 06:50:49PM +0100, Aurelien Jarno wrote:
> All direct socket syscalls have been added in kernel version 4.4 for
> SPARC32.
> 
> The 3 missing direct socket syscalls bind, listen and setsockopt have
> been added in kernel version 4.4 for SPARC64. All others were already
> present for SPARC64 in kernel versions 3.2 or earlier.
> 
> Changelog:
> 	* sysdeps/unix/sysv/linux/sparc/kernel-features.h
> 	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
> 	(ASSUME_ACCEPT_SYSCALL): New macro.
> 	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
> 	(ASSUME_CONNECT_SYSCALL): Likewise.
> 	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
> 	(ASSUME_GETPEERNAME_SYSCALL): Likewise.
> 	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
> 	(ASSUME_GETSOCKNAME_SYSCALL): Likewise.
> 	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
> 	(ASSUME_GETSOCKOPT_SYSCALL): Likewise.
> 	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
> 	(ASSUME_RECV_SYSCALL): Likewise.
> 	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
> 	(ASSUME_RECVFROM_SYSCALL): Likewise.
> 	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
> 	(ASSUME_RECVMSG_SYSCALL): Likewise.
> 	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
> 	(ASSUME_SENDMSG_SYSCALL): Likewise.
> 	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
> 	(ASSUME_SENDTO_SYSCALL): Likewise.
> 	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
> 	(ASSUME_SENDTO_FOR_SEND_SYSCALL): Likewise.
> 	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
> 	(ASSUME_SHUTDOWN_SYSCALL): Likewise.
> 	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
> 	(ASSUME_SOCKET_SYSCALL): Likewise.
> 	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
> 	(ASSUME_SOCKETPAIR_SYSCALL): Likewise.
> 	[__LINUX_KERNEL_VERSION >= 0x040400] (__ASSUME_BIND_SYSCALL):
> 	Likewise.
> 	[__LINUX_KERNEL_VERSION >= 0x040400] (__ASSUME_LISTEN_SYSCALL):
> 	Likewise.
> 	[__LINUX_KERNEL_VERSION >= 0x040400] (__ASSUME_SETSOCKOPT_SYSCALL):
> 	Likewise.

I suggest to make the ChangeLog entry for this change more compact, e.g.

	* sysdeps/unix/sysv/linux/sparc/kernel-features.h
	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
	(__ASSUME_ACCEPT_SYSCALL, __ASSUME_CONNECT_SYSCALL,
	__ASSUME_GETPEERNAME_SYSCALL, __ASSUME_GETSOCKNAME_SYSCALL,
	__ASSUME_GETSOCKOPT_SYSCALL, __ASSUME_RECV_SYSCALL,
	__ASSUME_RECVFROM_SYSCALL, __ASSUME_RECVMSG_SYSCALL,
	__ASSUME_SENDMSG_SYSCALL, __ASSUME_SENDTO_SYSCALL,
	__ASSUME_SENDTO_FOR_SEND_SYSCALL, __ASSUME_SHUTDOWN_SYSCALL,
	__ASSUME_SOCKET_SYSCALL, __ASSUME_SOCKETPAIR_SYSCALL):
	New macros.
	[__LINUX_KERNEL_VERSION >= 0x040400] (__ASSUME_BIND_SYSCALL,
	__ASSUME_LISTEN_SYSCALL, __ASSUME_SETSOCKOPT_SYSCALL): Likewise.

-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v3 2/2] Use direct socket syscalls for new kernels on sparc
  2016-03-04 18:26   ` Dmitry V. Levin
@ 2016-03-06 23:50     ` Aurelien Jarno
  0 siblings, 0 replies; 5+ messages in thread
From: Aurelien Jarno @ 2016-03-06 23:50 UTC (permalink / raw)
  To: libc-alpha, David S . Miller

[-- Attachment #1: Type: text/plain, Size: 2441 bytes --]

On 2016-03-04 21:25, Dmitry V. Levin wrote:
> On Fri, Mar 04, 2016 at 06:50:49PM +0100, Aurelien Jarno wrote:
> > All direct socket syscalls have been added in kernel version 4.4 for
> > SPARC32.
> > 
> > The 3 missing direct socket syscalls bind, listen and setsockopt have
> > been added in kernel version 4.4 for SPARC64. All others were already
> > present for SPARC64 in kernel versions 3.2 or earlier.
> > 
> > Changelog:
> > 	* sysdeps/unix/sysv/linux/sparc/kernel-features.h
> > 	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
> > 	(ASSUME_ACCEPT_SYSCALL): New macro.
> > 	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
> > 	(ASSUME_CONNECT_SYSCALL): Likewise.
> > 	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
> > 	(ASSUME_GETPEERNAME_SYSCALL): Likewise.
> > 	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
> > 	(ASSUME_GETSOCKNAME_SYSCALL): Likewise.
> > 	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
> > 	(ASSUME_GETSOCKOPT_SYSCALL): Likewise.
> > 	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
> > 	(ASSUME_RECV_SYSCALL): Likewise.
> > 	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
> > 	(ASSUME_RECVFROM_SYSCALL): Likewise.
> > 	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
> > 	(ASSUME_RECVMSG_SYSCALL): Likewise.
> > 	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
> > 	(ASSUME_SENDMSG_SYSCALL): Likewise.
> > 	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
> > 	(ASSUME_SENDTO_SYSCALL): Likewise.
> > 	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
> > 	(ASSUME_SENDTO_FOR_SEND_SYSCALL): Likewise.
> > 	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
> > 	(ASSUME_SHUTDOWN_SYSCALL): Likewise.
> > 	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
> > 	(ASSUME_SOCKET_SYSCALL): Likewise.
> > 	[ __arch64__ || __LINUX_KERNEL_VERSION >= 0x040400]
> > 	(ASSUME_SOCKETPAIR_SYSCALL): Likewise.
> > 	[__LINUX_KERNEL_VERSION >= 0x040400] (__ASSUME_BIND_SYSCALL):
> > 	Likewise.
> > 	[__LINUX_KERNEL_VERSION >= 0x040400] (__ASSUME_LISTEN_SYSCALL):
> > 	Likewise.
> > 	[__LINUX_KERNEL_VERSION >= 0x040400] (__ASSUME_SETSOCKOPT_SYSCALL):
> > 	Likewise.
> 
> I suggest to make the ChangeLog entry for this change more compact, e.g.

Thanks for the hint, I'll use that in the next version.

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
aurelien@aurel32.net                 http://www.aurel32.net

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-03-06 23:50 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-03-04 17:51 [PATCH v3 0/2] sparc64: fix socket syscalls with recent kernel headers Aurelien Jarno
2016-03-04 17:51 ` [PATCH v3 1/2] sparc64: remove bind, listen, send and setsockopt from syscalls.list Aurelien Jarno
2016-03-04 17:51 ` [PATCH v3 2/2] Use direct socket syscalls for new kernels on sparc Aurelien Jarno
2016-03-04 18:26   ` Dmitry V. Levin
2016-03-06 23:50     ` Aurelien Jarno

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).