From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/6993 Path: news.gmane.org!not-for-mail From: "H.J. Lu" Newsgroups: gmane.linux.kernel,gmane.linux.ports.arm.kernel,gmane.linux.lib.musl.general,gmane.comp.lib.glibc.alpha Subject: Re: [PATCHv3 00/24] ILP32 support in ARM64 Date: Wed, 11 Feb 2015 11:57:59 -0800 Message-ID: References: <20141002155217.GH32147@e104818-lin.cambridge.arm.com> <20150210181302.GA23886@brightrain.aerifal.cx> <20150211190252.GB23507@brightrain.aerifal.cx> <20150211192558.GE23507@brightrain.aerifal.cx> <20150211194741.GI23507@brightrain.aerifal.cx> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-Trace: ger.gmane.org 1423684695 11616 80.91.229.3 (11 Feb 2015 19:58:15 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 11 Feb 2015 19:58:15 +0000 (UTC) Cc: Catalin Marinas , Andrew Pinski , "linux-arm-kernel@lists.infradead.org" , LKML , Andrew Pinski , musl@lists.openwall.com, GNU C Library To: Rich Felker Original-X-From: linux-kernel-owner@vger.kernel.org Wed Feb 11 20:58:11 2015 Return-path: Envelope-to: glk-linux-kernel-3@plane.gmane.org Original-Received: from vger.kernel.org ([209.132.180.67]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1YLdQF-0001KV-BB for glk-linux-kernel-3@plane.gmane.org; Wed, 11 Feb 2015 20:58:07 +0100 Original-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753680AbbBKT6B (ORCPT ); Wed, 11 Feb 2015 14:58:01 -0500 Original-Received: from mail-ob0-f172.google.com ([209.85.214.172]:55539 "EHLO mail-ob0-f172.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752282AbbBKT6A (ORCPT ); Wed, 11 Feb 2015 14:58:00 -0500 Original-Received: by mail-ob0-f172.google.com with SMTP id nt9so5546854obb.3 for ; Wed, 11 Feb 2015 11:57:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=pk3gWwd14eLPNVuNibotnbx+Iytk+mW9zdTGgIECGg0=; b=kFXdDPU1EJS+XaNBl/eYefHYJjuJvnWcqoKimqnJ4+4G3hdQdfYFv4PT7baymCKRi1 jqj1+RviC8sV0vz7z6ouYboiRCTpg3dHuqtAlun/trWbHup9qwfbktwRAjrJUuSZKOb9 jCPtMb1L56Yw/jEsJT7TVM6cJ1+97e7kIyb+8IIF7gfBFRmEiHSKT+xkWf6VkPSxuWx6 7LBthcjmgSS/KfUl4cgsDjgcf1pT4Afevb5zGma4jDQpUftYchTz1NUdiCym9n17HNdC qOuGvTljl+ExS0MK8NO5h2bVledIstLxGcXAZrnthk6mKFTL4RITiifdsudqWqi4Nj40 YWKw== X-Received: by 10.60.133.70 with SMTP id pa6mr206614oeb.13.1423684679655; Wed, 11 Feb 2015 11:57:59 -0800 (PST) Original-Received: by 10.76.134.102 with HTTP; Wed, 11 Feb 2015 11:57:59 -0800 (PST) In-Reply-To: <20150211194741.GI23507@brightrain.aerifal.cx> Original-Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Xref: news.gmane.org gmane.linux.kernel:1886713 gmane.linux.ports.arm.kernel:392808 gmane.linux.lib.musl.general:6993 gmane.comp.lib.glibc.alpha:49163 Archived-At: >> > trivially satisfied if you consider x32 and x86_64 separate >> > compilation environments, but it's not related to the core issue: that >> > the definition of timespec violates core (not obscure) requirements of >> > both POSIX and C11. At the time you were probably unaware of the C11 >> > requirement. Note that it's a LOT harder to effect change in the C >> > standard, so even if the Austin Group would be amenable to changing >> > the requirement for timespec to allow something like nseconds_t, >> > getting WG14 to make this change to work around a Linux/glibc mistake >> > does not sound practical. >> >> That is very unfortunate. I consider it is too late for x32 to change. > > Why? It's hardly an incompatible ABI change, as long as the > kernel/libc fills the upper bits (for old programs that read them > based on the old headers) when structs are read from the kernel to the > application, and ignores the upper bits (potentially set or left > uninitialized by the application) when strings are passed from > userspace to the kernel. Newly built apps using the struct definition > with 32-bit tv_nsec would need new libc to ensure that the high bits > aren't interpreted, but this could be handled by symbol versioning. > We have considered this option. But since kernel wouldn't change tv_nsec/tv_usec handling just for x32, it wasn't selected. -- H.J.