diff options
author | Robert Mustacchi <rm@joyent.com> | 2016-08-02 17:35:01 +0000 |
---|---|---|
committer | Robert Mustacchi <rm@joyent.com> | 2016-08-25 13:46:03 -0700 |
commit | ff892b7ce7155120a08759aeabce0b4cd24bc867 (patch) | |
tree | 1273f726d7f6c514cd152bf8d6306729d8910185 | |
parent | fbc2697c538d75e4d5d938d24a995afa043c99d2 (diff) | |
download | illumos-joyent-ff892b7ce7155120a08759aeabce0b4cd24bc867.tar.gz |
7258 6951 caused uberdata32_t size to be incorrect
Reviewed by: Dan McDonald <danmcd@omniti.com>
Approved by: Gordon Ross <gordon.w.ross@gmail.com>
-rw-r--r-- | usr/src/lib/libc/inc/thr_uberdata.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/usr/src/lib/libc/inc/thr_uberdata.h b/usr/src/lib/libc/inc/thr_uberdata.h index 384a23582d..5adf2cfd51 100644 --- a/usr/src/lib/libc/inc/thr_uberdata.h +++ b/usr/src/lib/libc/inc/thr_uberdata.h @@ -905,15 +905,24 @@ typedef struct _qexthdlr { _quick_exithdlr_func_t hdlr; /* handler itself */ } _qexthdlr_t; +/* + * We add a pad on 32-bit systems to allow us to always have the structure size + * be 32-bytes which helps us deal with the compiler's alignment when building + * in ILP32 / LP64 systems. + */ typedef struct { mutex_t exitfns_lock; _qexthdlr_t *head; +#if !defined(_LP64) + uint32_t pad; +#endif } quickexit_root_t; #ifdef _SYSCALL32 typedef struct { mutex_t exitfns_lock; caddr32_t head; + uint32_t pad; } quickexit_root32_t; #endif /* _SYSCALL32 */ |