Re: lang/gcc: Change exception style, moar Ada support, add -rdynamic to 4.8

2013-06-27 Thread Pascal Stumpf
On Tue, 25 Jun 2013 14:41:53 +0200, Tobias Ulmer wrote:
 This is a bit of a mixed bag update, I'm hoping to fix the intermittent
 build problems, make gnat more useful, and include Pascals -rdynamic
 diff since that requires a revision bump as well and is useful in any
 case.
 
 This patch set survived ~35 test builds of 4.6 and 4.8 on i386 in
 addition to three builds per adastrap.
 
 OK?

Some comments inline:

 Details:
  * Enable -rdynamic in 4.8, from pascal@
  * Switch all architectures to setjump/longjump exceptions because of
suspected problems with ZCX.
  * Call __errno() from librthread when using pthreads (Tero Koskinen)
  * Enable gnat shared library support for OpenBSD (Tero Koskinen)
  * Provide OpenBSD specific OS support, including struct layout fixes.
  * Sync 4.6 with the changes done to 4.8
 

[...]

 ++   type Signal_Set is array (Natural range ) of Signal;
 ++
 ++   --  Interrupts that must be unmasked at all times.  FreeBSD
 ++   --  pthreads will not allow an application to mask out any
 ++   --  interrupt needed by the threads library.
 ++   Unmasked : constant Signal_Set :=
 ++ (SIGTRAP, SIGBUS, SIGTTIN, SIGTTOU, SIGTSTP);
 ++
 ++   --  FreeBSD will uses SIGPROF for timing.  Do not allow a
 ++   --  handler to attach to this signal.
 ++   Reserved : constant Signal_Set := (0 .. 0 = SIGPROF);

Is this true on OpenBSD as well?  (On another note, you may want to
s/FreeBSD/OpenBSD/ in these files.

 ++
 ++   type sigset_t is private;
 ++

[...]

These functions are not implemented in rthreads; also applies to 4.8 of
course:

 ++   function pthread_attr_setscope
 ++ (attr: access pthread_attr_t;
 ++  contentionscope : int) return int;
 ++   pragma Import (C, pthread_attr_setscope, pthread_attr_setscope);
 ++
 ++   function pthread_attr_getscope
 ++ (attr: access pthread_attr_t;
 ++  contentionscope : access int) return int;
 ++   pragma Import (C, pthread_attr_getscope, pthread_attr_getscope);
 ++
 ++   function pthread_attr_setinheritsched
 ++ (attr: access pthread_attr_t;
 ++  inheritsched : int) return int;
 ++   pragma Import
 ++ (C, pthread_attr_setinheritsched, pthread_attr_setinheritsched);
 ++
 ++   function pthread_attr_getinheritsched
 ++ (attr : access pthread_attr_t;
 ++  inheritsched : access int) return int;
 ++   pragma Import
 ++ (C, pthread_attr_getinheritsched, pthread_attr_getinheritsched);
 ++
 ++   function pthread_attr_setschedpolicy
 ++ (attr   : access pthread_attr_t;
 ++  policy : int) return int;
 ++   pragma Import (C, pthread_attr_setschedpolicy,
 ++ pthread_attr_setschedpolicy);
 ++
 ++   function pthread_attr_getschedpolicy
 ++ (attr   : access pthread_attr_t;
 ++  policy : access int) return int;
 ++   pragma Import (C, pthread_attr_getschedpolicy,
 ++ pthread_attr_getschedpolicy);
 ++
 ++   function pthread_attr_setschedparam
 ++ (attr: access pthread_attr_t;
 ++  sched_param : int) return int;
 ++   pragma Import (C, pthread_attr_setschedparam, 
 pthread_attr_setschedparam);
 ++
 ++   function pthread_attr_getschedparam
 ++ (attr: access pthread_attr_t;
 ++  sched_param : access int) return int;
 ++   pragma Import (C, pthread_attr_getschedparam, 
 pthread_attr_getschedparam);



Re: lang/gcc: Change exception style, moar Ada support, add -rdynamic to 4.8

2013-06-27 Thread Pascal Stumpf
On Thu, 27 Jun 2013 15:27:32 +0200, Pascal Stumpf wrote:
 These functions are not implemented in rthreads; also applies to 4.8 of
 course:

Sorry, ignore this part.  Only the manpages are missing.

 
  ++   function pthread_attr_setscope
  ++ (attr: access pthread_attr_t;
  ++  contentionscope : int) return int;
  ++   pragma Import (C, pthread_attr_setscope, pthread_attr_setscope);
  ++
  ++   function pthread_attr_getscope
  ++ (attr: access pthread_attr_t;
  ++  contentionscope : access int) return int;
  ++   pragma Import (C, pthread_attr_getscope, pthread_attr_getscope);
  ++
  ++   function pthread_attr_setinheritsched
  ++ (attr: access pthread_attr_t;
  ++  inheritsched : int) return int;
  ++   pragma Import
  ++ (C, pthread_attr_setinheritsched, pthread_attr_setinheritsched);
  ++
  ++   function pthread_attr_getinheritsched
  ++ (attr : access pthread_attr_t;
  ++  inheritsched : access int) return int;
  ++   pragma Import
  ++ (C, pthread_attr_getinheritsched, pthread_attr_getinheritsched);
  ++
  ++   function pthread_attr_setschedpolicy
  ++ (attr   : access pthread_attr_t;
  ++  policy : int) return int;
  ++   pragma Import (C, pthread_attr_setschedpolicy,
  ++ pthread_attr_setschedpolicy);
  ++
  ++   function pthread_attr_getschedpolicy
  ++ (attr   : access pthread_attr_t;
  ++  policy : access int) return int;
  ++   pragma Import (C, pthread_attr_getschedpolicy,
  ++ pthread_attr_getschedpolicy);
  ++
  ++   function pthread_attr_setschedparam
  ++ (attr: access pthread_attr_t;
  ++  sched_param : int) return int;
  ++   pragma Import (C, pthread_attr_setschedparam, 
  pthread_attr_setschedparam);
  ++
  ++   function pthread_attr_getschedparam
  ++ (attr: access pthread_attr_t;
  ++  sched_param : access int) return int;
  ++   pragma Import (C, pthread_attr_getschedparam, 
  pthread_attr_getschedparam);
 
 



Re: lang/gcc: Change exception style, moar Ada support, add -rdynamic to 4.8

2013-06-25 Thread Marc Espie
On Tue, Jun 25, 2013 at 02:41:53PM +0200, Tobias Ulmer wrote:
 This is a bit of a mixed bag update, I'm hoping to fix the intermittent
 build problems, make gnat more useful, and include Pascals -rdynamic
 diff since that requires a revision bump as well and is useful in any
 case.
 
 This patch set survived ~35 test builds of 4.6 and 4.8 on i386 in
 addition to three builds per adastrap.
 
 OK?
 
 Details:
  * Enable -rdynamic in 4.8, from pascal@
  * Switch all architectures to setjump/longjump exceptions because of

Big question: this is only for ada, right ? doesn't affect other languages ?
(sjlj is VERY BAD for C++).