summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Mustacchi <rm@joyent.com>2016-08-02 17:35:01 +0000
committerRobert Mustacchi <rm@joyent.com>2016-08-25 13:46:03 -0700
commitff892b7ce7155120a08759aeabce0b4cd24bc867 (patch)
tree1273f726d7f6c514cd152bf8d6306729d8910185
parentfbc2697c538d75e4d5d938d24a995afa043c99d2 (diff)
downloadillumos-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.h9
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 */