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"