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");

Reply via email to