[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#740286: gnat-4.9: s-osinte-posix.adb is wrong about timespec.tv_nsec compared to gnat-4.8



Ludovic Brenta writes:
> Svante Signell <svante.signell@gmail.com> writes:
>> Ping, adding this bug report to debian-ada too. Who is Ada upstream?
>
> Patience.  I'm waiting for Matthias to upload a newer gcc-4.9-source
> containing the fix for your bug #740153, then I will upload a gnat-4.9
> incorporating this and your patch.

Now that the newer gcc-4.9 has been uploaded, I am reviewing this issue
and I discovered that the change you complain about was in fact made
upstream (that was not clear to me from your bug report):

commit e3a1f6b50495473f677f413d8740808a3fde5a9a
Author: hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Fri Nov 15 12:06:25 2013 +0000

    Add and use System.Linux.time_t for time_t
    
    	PR ada/54040
    	* s-linux-x32.ads: New file.
    	* s-osprim-x32.adb: Likewise.
    	* s-linux.ads (time_t): New type.
    	* s-linux-alpha.ads (time_t):  Likewise.
    	* s-linux-hppa.ads (time_t):  Likewise.
    	* s-linux-mipsel.ads (time_t):  Likewise.
    	* s-linux-sparc.ads (time_t):  Likewise.
    	* s-osinte-linux.ads (time_t): Mark it private.  Replace long
    	with System.Linux.time_t.
    	(timespec): Replace long with time_t.
    	* s-osinte-posix.adb (To_Timespec): Likewise.
    	* s-taprop-linux.adb (timeval): Replace C.long with
    	System.OS_Interface.time_t.
    	* gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS): Replace
    	s-linux.ads with s-linux-x32.ads, s-osprim-posix.adb with
    	s-osprim-x32.adb for x32.
    
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204840 138bc75d-0d04-0410-961f-82ee72b054a4


I also see that s-osinte-gnu.ads, which is used solely by hurd-i386 and
added by the Debian patch ada-hurd.diff, has this to say about the
matter:

   type time_t is new long;

   type timespec is record
      tv_sec  : time_t;
      tv_nsec : long;
   end record;
   pragma Convention (C, timespec);

I propose to make "time_t" a subtype, rather than a derived type, of
long.  This should keep everyone happy.  Comments?

-- 
Ludovic Brenta.


Reply to: