linux-arch.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "H. Peter Anvin" <hpa@zytor.com>
To: "Joseph S. Myers" <joseph@codesourcery.com>
Cc: Arnd Bergmann <arnd@arndb.de>,
	Chung-Lin Tang <cltang@codesourcery.com>,
	John Stultz <john.stultz@linaro.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Christoph Hellwig <hch@infradead.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ley Foon Tan <lftan@altera.com>,
	Linux-Arch <linux-arch@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	LeyFoon Tan <lftan.linux@gmail.com>
Subject: Re: [PATCH 00/25] Change time_t and clock_t to 64 bit
Date: Sun, 18 May 2014 09:10:43 -0700	[thread overview]
Message-ID: <5378DB83.1000406@zytor.com> (raw)
In-Reply-To: <Pine.LNX.4.64.1405181325520.4608@digraph.polyomino.org.uk>

On 05/18/2014 06:46 AM, Joseph S. Myers wrote:
> 
> It's advising against breaking compatibility with existing applications 
> (in that case, C90 applications that assume sizes can be cast to unsigned 
> long for printing, etc.) unless necessary.
> 

Yes, the values in question will not be a problem for that in this case,
so it doesn't apply.

> Rich Felker suggests 
> <https://sourceware.org/bugzilla/show_bug.cgi?id=16438> there are similar 
> security risks from various types in the x32 ABI being wider than size_t.  
> That seems entirely plausible, if unconfirmed; I don't think there's been 
> much effort to look for such issues where applications expect types to be 
> no wider than size_t when there's no use to them being wider than size_t.  
> Most of those choices are valid but may be risky to existing software much 
> as IL32LLP64 can be risky to existing software.

Everything can be risky if done poorly, unfortunately.

> The userspace ABI for struct timespec with 64-bit time_t and 32-bit long 
> should use long tv_nsec in any future ports, with appropriate conversion 
> code in glibc if the kernel interface is different (for ports that started 
> out with 32-bit time_t, conversion code will be needed anyway to convert 
> to the 32-bit structure if the new syscalls are unavailable at runtime and 
> so the old syscalls need to be used, but if the kernel's structure with 
> 64-bit time_t is different from that in userspace then both old and new 
> kernels need conversion code).  Given Rich Felker's bug reports, it seems 
> reasonable to suppose that musl will wish to do this as well as glibc.

This potentially requires the kernel to maintain three separate ABIs if
there is a legacy 32-bit ABI, which is quite frankly idiotic.  You seem
to be thinking of POSIX as something handed down by gods, which it
isn't... quite frankly they did something stupid here and should fix
their own mess.

As far as glibc is concerned, this would require glibc to intercept each
ioctl, which is completely infeasible... struct timespec/timeval is
embedded far too deep everywhere.

	-hpa

  reply	other threads:[~2014-05-18 16:12 UTC|newest]

Thread overview: 132+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-13  8:57 [PATCH 00/25] Change time_t and clock_t to 64 bit Ley Foon Tan
2014-05-13  9:02 ` [PATCH 01/25] asm-generic: " Ley Foon Tan
2014-05-13  9:15   ` James Hogan
2014-05-13  9:30     ` Thomas Gleixner
2014-05-13  9:30       ` Thomas Gleixner
2014-05-13  9:32     ` Ley Foon Tan
2014-05-13  9:32       ` Ley Foon Tan
2014-05-13  9:50       ` James Hogan
2014-05-13  9:50         ` James Hogan
2014-05-13 10:17         ` Ley Foon Tan
2014-05-13 10:21           ` Arnd Bergmann
2014-05-13 10:21             ` Arnd Bergmann
2014-05-13 12:07             ` Thomas Gleixner
2014-05-13 13:11               ` Geert Uytterhoeven
2014-05-13 13:38                 ` Arnd Bergmann
2014-05-13 14:37                   ` Thomas Gleixner
2014-05-13 10:22           ` James Hogan
2014-05-13 10:22             ` James Hogan
2014-05-14  3:47             ` H. Peter Anvin
2014-05-14 10:44               ` Geert Uytterhoeven
2014-05-13  9:02 ` [PATCH 02/25] arc: Add 32 bit time_t and clock_t Ley Foon Tan
2014-05-13  9:02   ` Ley Foon Tan
2014-05-13  9:02 ` [PATCH 03/25] arm: " Ley Foon Tan
2014-05-13  9:02   ` Ley Foon Tan
2014-05-13  9:02 ` [PATCH 04/25] avr32: " Ley Foon Tan
2014-05-13  9:02   ` Ley Foon Tan
2014-05-13 20:19   ` Hans-Christian Egtvedt
2014-05-14  1:54     ` Ley Foon Tan
2014-05-14  7:44       ` Hans-Christian Egtvedt
2014-05-14 21:39         ` H. Peter Anvin
2014-05-13  9:02 ` [PATCH 05/25] blackfin: " Ley Foon Tan
2014-05-13  9:02   ` Ley Foon Tan
2014-05-13  9:03 ` [PATCH 06/25] c6x: " Ley Foon Tan
2014-05-13  9:03   ` Ley Foon Tan
2014-05-13  9:03 ` [PATCH 08/25] frv: " Ley Foon Tan
2014-05-13  9:03   ` Ley Foon Tan
2014-05-13  9:03 ` [PATCH 09/25] hexagon: " Ley Foon Tan
2014-05-13  9:03   ` Ley Foon Tan
2014-05-13  9:03 ` [PATCH 10/25] m32r: " Ley Foon Tan
2014-05-13  9:03   ` Ley Foon Tan
2014-05-13  9:03 ` [PATCH 11/25] m68k: " Ley Foon Tan
2014-05-13  9:03   ` Ley Foon Tan
2014-05-13  9:04 ` [PATCH 12/25] metag: " Ley Foon Tan
2014-05-13  9:04   ` Ley Foon Tan
2014-05-13  9:22   ` James Hogan
2014-05-13  9:22     ` James Hogan
2014-05-13  9:28     ` Ley Foon Tan
2014-05-13  9:28       ` Ley Foon Tan
2014-05-13  9:05 ` [PATCH 13/25] microblaze: " Ley Foon Tan
2014-05-13  9:05   ` Ley Foon Tan
2014-05-13  9:05 ` [PATCH 14/25] mips: " Ley Foon Tan
2014-05-13  9:05   ` Ley Foon Tan
2014-05-13  9:05 ` [PATCH 15/25] mn10300: " Ley Foon Tan
2014-05-13  9:05   ` Ley Foon Tan
2014-05-13  9:05 ` [PATCH 16/25] openrisc: " Ley Foon Tan
2014-05-13  9:05   ` Ley Foon Tan
2014-05-13  9:30   ` Jonas Bonn
2014-05-13  9:30     ` Jonas Bonn
2014-05-13  9:41     ` Ley Foon Tan
2014-05-13  9:41       ` Ley Foon Tan
2014-05-13  9:06 ` [PATCH 17/25] parisc: " Ley Foon Tan
2014-05-13  9:06   ` Ley Foon Tan
2014-05-13 20:17   ` Helge Deller
2014-05-14  1:57     ` Ley Foon Tan
2014-05-15  0:34     ` H. Peter Anvin
2014-05-15  0:34       ` H. Peter Anvin
2014-05-13  9:06 ` [PATCH 19/25] s390: " Ley Foon Tan
2014-05-13  9:06 ` [PATCH 20/25] score: " Ley Foon Tan
2014-05-13  9:06   ` Ley Foon Tan
2014-05-13  9:06 ` [PATCH 21/25] sh: " Ley Foon Tan
2014-05-13  9:06   ` Ley Foon Tan
2014-05-13  9:06 ` [PATCH 22/25] sparc: " Ley Foon Tan
2014-05-13  9:06   ` Ley Foon Tan
2014-05-13  9:06 ` [PATCH 23/25] unicore32: " Ley Foon Tan
2014-05-13  9:06   ` Ley Foon Tan
2014-05-13  9:06 ` [PATCH 25/25] xtense: " Ley Foon Tan
2014-05-13  9:06   ` Ley Foon Tan
2014-05-13  9:10 ` [PATCH 07/25] cris: " Ley Foon Tan
2014-05-13  9:10 ` [PATCH 00/25] Change time_t and clock_t to 64 bit Geert Uytterhoeven
2014-05-13  9:23   ` Ley Foon Tan
2014-05-13 15:24 ` Christoph Hellwig
2014-05-13 15:33   ` Thomas Gleixner
2014-05-13 17:46     ` Christoph Hellwig
2014-05-13 18:10       ` Arnd Bergmann
2014-05-13 18:24         ` Geert Uytterhoeven
2014-05-13 19:32           ` Arnd Bergmann
2014-05-13 20:35             ` Geert Uytterhoeven
2014-05-14 11:00               ` Arnd Bergmann
2014-05-14 12:21                 ` Thomas Gleixner
2014-05-14 14:01                   ` Arnd Bergmann
2014-05-14 14:01                     ` Arnd Bergmann
2014-05-14 14:46                     ` Thomas Gleixner
2014-05-14 15:48                       ` Arnd Bergmann
2014-05-15 15:47                 ` James Bottomley
2014-05-15 16:36                   ` Arnd Bergmann
2014-05-15 21:07                     ` One Thousand Gnomes
2014-05-16  7:48                       ` Christoph Hellwig
2014-05-16 23:06                         ` H. Peter Anvin
2014-05-16 23:06                           ` H. Peter Anvin
2014-05-14 21:33             ` John Stultz
2014-05-15  0:14               ` H. Peter Anvin
2014-05-15  3:32                 ` Nicolas Pitre
2014-05-15 11:08               ` Arnd Bergmann
2014-05-15 11:18                 ` Christoph Hellwig
2014-05-15 17:11                 ` Chung-Lin Tang
2014-05-15 17:12                 ` Chung-Lin Tang
2014-05-15 17:12                   ` Chung-Lin Tang
2014-05-15 18:01                   ` Joseph S. Myers
2014-05-15 19:18                     ` Arnd Bergmann
2014-05-15 20:10                       ` Joseph S. Myers
2014-05-15 20:38                         ` Arnd Bergmann
2014-05-15 20:38                           ` Arnd Bergmann
2014-05-15 21:05                           ` Joseph S. Myers
2014-05-19  8:08                             ` Arnd Bergmann
2014-05-19  8:08                               ` Arnd Bergmann
2014-05-19 14:46                               ` Joseph S. Myers
2014-05-19 17:22                                 ` Arnd Bergmann
2014-05-19 18:12                                   ` Joseph S. Myers
2014-05-19 18:20                                     ` Arnd Bergmann
2014-05-16 23:11                           ` H. Peter Anvin
2014-05-16 23:47                             ` Joseph S. Myers
2014-05-17  0:32                               ` H. Peter Anvin
2014-05-18 13:46                                 ` Joseph S. Myers
2014-05-18 16:10                                   ` H. Peter Anvin [this message]
2014-05-18 18:18                                     ` Joseph S. Myers
2014-05-14 10:13         ` Ley Foon Tan
2014-05-14 10:33           ` Arnd Bergmann
2014-05-14 21:04             ` H. Peter Anvin
2014-05-13 18:15       ` Geert Uytterhoeven
2014-05-13 19:14       ` Thomas Gleixner
2014-05-14  3:36 ` [PATCH 24/25] x86: Add 32 bit time_t and clock_t Ley Foon Tan
2014-05-14  3:36   ` Ley Foon Tan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5378DB83.1000406@zytor.com \
    --to=hpa@zytor.com \
    --cc=arnd@arndb.de \
    --cc=cltang@codesourcery.com \
    --cc=geert@linux-m68k.org \
    --cc=hch@infradead.org \
    --cc=john.stultz@linaro.org \
    --cc=joseph@codesourcery.com \
    --cc=lftan.linux@gmail.com \
    --cc=lftan@altera.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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 NNTP newsgroup(s).