Module Name: src
Committed By: joerg
Date: Mon Nov 4 12:45:10 UTC 2019
Modified Files:
src/lib/libc/tls: Makefile.inc tls.c
src/libexec/ld.elf_so: Makefile tls.c
src/usr.bin/ldd: Makefile.elf
Log Message:
PR 54093: Align static TLS area to max_align_t.
To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/lib/libc/tls/Makefile.inc
cvs rdiff -u -r1.9 -r1.10 src/lib/libc/tls/tls.c
cvs rdiff -u -r1.141 -r1.142 src/libexec/ld.elf_so/Makefile
cvs rdiff -u -r1.12 -r1.13 src/libexec/ld.elf_so/tls.c
cvs rdiff -u -r1.5 -r1.6 src/usr.bin/ldd/Makefile.elf
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/lib/libc/tls/Makefile.inc
diff -u src/lib/libc/tls/Makefile.inc:1.2 src/lib/libc/tls/Makefile.inc:1.3
--- src/lib/libc/tls/Makefile.inc:1.2 Sat Mar 12 07:55:09 2011
+++ src/lib/libc/tls/Makefile.inc Mon Nov 4 12:45:10 2019
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.inc,v 1.2 2011/03/12 07:55:09 matt Exp $
+# $NetBSD: Makefile.inc,v 1.3 2019/11/04 12:45:10 joerg Exp $
.include <bsd.own.mk>
@@ -6,4 +6,4 @@
.PATH: ${.PARSEDIR} ${ARCHDIR}/tls
SRCS+= tls.c
-CPPFLAGS.tls.c+= -D_LIBC_SOURCE
+CPPFLAGS.tls.c+= -D_LIBC_SOURCE -std=gnu11
Index: src/lib/libc/tls/tls.c
diff -u src/lib/libc/tls/tls.c:1.9 src/lib/libc/tls/tls.c:1.10
--- src/lib/libc/tls/tls.c:1.9 Fri Jul 13 19:50:21 2018
+++ src/lib/libc/tls/tls.c Mon Nov 4 12:45:10 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: tls.c,v 1.9 2018/07/13 19:50:21 joerg Exp $ */
+/* $NetBSD: tls.c,v 1.10 2019/11/04 12:45:10 joerg Exp $ */
/*-
* Copyright (c) 2011 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__RCSID("$NetBSD: tls.c,v 1.9 2018/07/13 19:50:21 joerg Exp $");
+__RCSID("$NetBSD: tls.c,v 1.10 2019/11/04 12:45:10 joerg Exp $");
#include "namespace.h"
@@ -85,7 +85,7 @@ _rtld_tls_allocate(void)
if (initial_thread_tcb == NULL) {
#ifdef __HAVE_TLS_VARIANT_II
- tls_size = roundup2(tls_size, sizeof(void *));
+ tls_size = roundup2(tls_size, sizeof(max_align_t));
#endif
tls_allocation = tls_size + sizeof(*tcb);
Index: src/libexec/ld.elf_so/Makefile
diff -u src/libexec/ld.elf_so/Makefile:1.141 src/libexec/ld.elf_so/Makefile:1.142
--- src/libexec/ld.elf_so/Makefile:1.141 Wed Apr 3 21:37:58 2019
+++ src/libexec/ld.elf_so/Makefile Mon Nov 4 12:45:10 2019
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.141 2019/04/03 21:37:58 christos Exp $
+# $NetBSD: Makefile,v 1.142 2019/11/04 12:45:10 joerg Exp $
#
# NOTE: when changing ld.so, ensure that ldd still compiles.
#
@@ -92,6 +92,7 @@ CLEANFILES+= errlist_concat.h ${PROG}.ma
BINDIR= ${SHLINKINSTALLDIR}
+CPPFLAGS.tls.c+= -std=gnu11
CPPFLAGS+= -DLIBDIR=\"${LIBDIR}\" -D_PATH_RTLD=\"${BINDIR}/${PROG}\"
CPPFLAGS+= -I${.CURDIR} -I. -D_KERNTYPES
CPPFLAGS+= -DRTLD_LOADER
Index: src/libexec/ld.elf_so/tls.c
diff -u src/libexec/ld.elf_so/tls.c:1.12 src/libexec/ld.elf_so/tls.c:1.13
--- src/libexec/ld.elf_so/tls.c:1.12 Sat Apr 13 00:23:32 2019
+++ src/libexec/ld.elf_so/tls.c Mon Nov 4 12:45:10 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: tls.c,v 1.12 2019/04/13 00:23:32 rin Exp $ */
+/* $NetBSD: tls.c,v 1.13 2019/11/04 12:45:10 joerg Exp $ */
/*-
* Copyright (c) 2011 The NetBSD Foundation, Inc.
* All rights reserved.
@@ -29,11 +29,12 @@
*/
#include <sys/cdefs.h>
-__RCSID("$NetBSD: tls.c,v 1.12 2019/04/13 00:23:32 rin Exp $");
+__RCSID("$NetBSD: tls.c,v 1.13 2019/11/04 12:45:10 joerg Exp $");
#include <sys/param.h>
#include <sys/ucontext.h>
#include <lwp.h>
+#include <stddef.h>
#include <string.h>
#include "debug.h"
#include "rtld.h"
@@ -99,7 +100,7 @@ _rtld_tls_initial_allocation(void)
#ifndef __HAVE_TLS_VARIANT_I
_rtld_tls_static_space = roundup2(_rtld_tls_static_space,
- sizeof(void *));
+ sizeof(max_align_t));
#endif
dbg(("_rtld_tls_static_space %zu", _rtld_tls_static_space));
Index: src/usr.bin/ldd/Makefile.elf
diff -u src/usr.bin/ldd/Makefile.elf:1.5 src/usr.bin/ldd/Makefile.elf:1.6
--- src/usr.bin/ldd/Makefile.elf:1.5 Tue May 7 13:00:35 2013
+++ src/usr.bin/ldd/Makefile.elf Mon Nov 4 12:45:10 2019
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.elf,v 1.5 2013/05/07 13:00:35 christos Exp $
+# $NetBSD: Makefile.elf,v 1.6 2019/11/04 12:45:10 joerg Exp $
# Makefile fragment to build a (32 or 64 bit) libldd_elfxx.a.
# Expects CPPFLAGS to have ELFSIZE set, and LIB to be set.
@@ -7,4 +7,6 @@ SRCS= ldd_elfxx.c
SRCS+= xmalloc.c debug.c expand.c map_object.c load.c search.c \
headers.c paths.c tls.c symver.c
+CPPFLAGS.tls.c+= -std=gnu11
+
.include "Makefile.common"