components/gcc49/patches/002-omp-lock.h.patch
changeset 5205 eaff9ab86216
equal deleted inserted replaced
5204:766639d560b9 5205:eaff9ab86216
       
     1 # Stefan Teleman <[email protected]>
       
     2 # Make sure these structs are always aligned on 8.
       
     3 # Internal patch. Submitted upstream. Status pending.
       
     4 --- libgomp/config/posix/omp-lock.h	2008-06-06 09:01:54.000000000 -0400
       
     5 +++ libgomp/config/posix/omp-lock.h	2014-11-19 08:34:08.522303786 -0500
       
     6 @@ -11,13 +11,28 @@
       
     7  #include <semaphore.h>
       
     8  
       
     9  typedef pthread_mutex_t omp_lock_25_t;
       
    10 -typedef struct { pthread_mutex_t lock; int count; } omp_nest_lock_25_t;
       
    11 +
       
    12 +typedef struct {
       
    13 +  pthread_mutex_t lock;
       
    14 +  int count;
       
    15 +} omp_nest_lock_25_t __attribute__((__aligned__(8)));
       
    16 +
       
    17  #ifdef HAVE_BROKEN_POSIX_SEMAPHORES
       
    18  /* If we don't have working semaphores, we'll make all explicit tasks
       
    19     tied to the creating thread.  */
       
    20  typedef pthread_mutex_t omp_lock_t;
       
    21 -typedef struct { pthread_mutex_t lock; int count; void *owner; } omp_nest_lock_t;
       
    22 +
       
    23 +typedef struct {
       
    24 +  pthread_mutex_t lock;
       
    25 +  int count;
       
    26 +  void *owner;
       
    27 +} omp_nest_lock_t __attribute__((__aligned__(8)));
       
    28  #else
       
    29  typedef sem_t omp_lock_t;
       
    30 -typedef struct { sem_t lock; int count; void *owner; } omp_nest_lock_t;
       
    31 +typedef struct {
       
    32 +  sem_t lock;
       
    33 +  int count;
       
    34 +  void *owner;
       
    35 +} omp_nest_lock_t __attribute__((__aligned__(8)));
       
    36  #endif
       
    37 +