Date: Fri, 16 Jul 2021 02:42:27 GMT From: Mark Johnston <markj@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: 9c97062b6201 - main - libc: Use the initial-exec TLS model Message-ID: <202107160242.16G2gRcO080507@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=9c97062b620137a1f7cad4c6b3fb030a396b3266 commit 9c97062b620137a1f7cad4c6b3fb030a396b3266 Author: Mark Johnston <markj@FreeBSD.org> AuthorDate: 2021-07-16 02:35:28 +0000 Commit: Mark Johnston <markj@FreeBSD.org> CommitDate: 2021-07-16 02:41:10 +0000 libc: Use the initial-exec TLS model This permits more efficient accesses of thread-local variables, which are heavily used at least by jemalloc and locale-aware code. Note that on amd64 and i386, jemalloc's thread-local variables already have their TLS model overridden by defining JEMALLOC_TLS_MODEL. For now the change is applied only to tested platforms, but should in principle be enabled everywhere. PR: 255840 Suggested by: jrtc27 Reviewed by: kib MFC after: 2 months Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D31070 --- lib/libc/Makefile | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/libc/Makefile b/lib/libc/Makefile index 958270e6ddf5..fdf6aa49932b 100644 --- a/lib/libc/Makefile +++ b/lib/libc/Makefile @@ -54,6 +54,13 @@ CANCELPOINTS_CFLAGS=-fexceptions CFLAGS+=${CANCELPOINTS_CFLAGS} .endif +# Use a more efficient TLS model for libc since we can reasonably assume that +# it will be loaded during program startup. +.if ${LIBC_ARCH} == "aarch64" || ${LIBC_ARCH} == "amd64" || \ + ${LIBC_ARCH} == "i386" || ${LIBC_ARCH} == "riscv" +CFLAGS+= -ftls-model=initial-exec +.endif + # # Link with static libcompiler_rt.a. #
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202107160242.16G2gRcO080507>