aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPiotr Kubaj <pkubaj@FreeBSD.org>2022-02-18 13:22:14 +0000
committerPiotr Kubaj <pkubaj@FreeBSD.org>2022-02-22 18:34:28 +0000
commit884ba43116d4456d5900d3c8824153c604f132b8 (patch)
treede2687d39289b9a598eea1eac841e0815d682980
parent9835900cb95bcd068774934961fb1419719d595b (diff)
downloadsrc-884ba43116d4456d5900d3c8824153c604f132b8.tar.gz
src-884ba43116d4456d5900d3c8824153c604f132b8.zip
powerpc: enable initial-exec TLS
Summary: Use initial-exec, like other architectures. While here, switch MACHINE_ARCH in lib/libc/Makefile to LIBC_ARCH and consistently use powerpc. Subscribers: imp, #contributor_reviews_base Differential Revision: https://reviews.freebsd.org/D34315 Reviewed by: luporl MFC after: 2 weeks
-rw-r--r--contrib/jemalloc/include/jemalloc/jemalloc_FreeBSD.h2
-rw-r--r--lib/libc/Makefile7
2 files changed, 6 insertions, 3 deletions
diff --git a/contrib/jemalloc/include/jemalloc/jemalloc_FreeBSD.h b/contrib/jemalloc/include/jemalloc/jemalloc_FreeBSD.h
index 6ff0ce18d5da..00848c0c48e3 100644
--- a/contrib/jemalloc/include/jemalloc/jemalloc_FreeBSD.h
+++ b/contrib/jemalloc/include/jemalloc/jemalloc_FreeBSD.h
@@ -63,9 +63,11 @@
#ifdef __powerpc64__
# define LG_VADDR 64
# define LG_SIZEOF_PTR 3
+# define JEMALLOC_TLS_MODEL __attribute__((tls_model("initial-exec")))
#elif defined(__powerpc__)
# define LG_VADDR 32
# define LG_SIZEOF_PTR 2
+# define JEMALLOC_TLS_MODEL __attribute__((tls_model("initial-exec")))
#endif
#ifdef __riscv
# define LG_VADDR 48
diff --git a/lib/libc/Makefile b/lib/libc/Makefile
index b6e4dd1787b4..3667eea15307 100644
--- a/lib/libc/Makefile
+++ b/lib/libc/Makefile
@@ -32,7 +32,7 @@ CFLAGS+=-DNO__SCCSID -DNO__RCSID
LIB=c
SHLIB_MAJOR= 7
.if ${MK_SSP} != "no" && \
- (${LIBC_ARCH} == "i386" || ${MACHINE_ARCH:Mpower*} != "")
+ (${LIBC_ARCH} == "i386" || ${LIBC_ARCH:Mpowerpc*} != "")
SHLIB_LDSCRIPT=libc.ldscript
.else
SHLIB_LDSCRIPT=libc_nossp.ldscript
@@ -57,7 +57,8 @@ CFLAGS+=${CANCELPOINTS_CFLAGS}
# 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"
+ ${LIBC_ARCH} == "i386" || ${LIBC_ARCH} == "riscv" || \
+ ${LIBC_ARCH:Mpowerpc*} != ""
CFLAGS+= -ftls-model=initial-exec
.endif
@@ -68,7 +69,7 @@ LDFLAGS+= -nodefaultlibs
LIBADD+= compiler_rt
.if ${MK_SSP} != "no" && \
- (${LIBC_ARCH} == "i386" || ${MACHINE_ARCH:Mpower*} != "")
+ (${LIBC_ARCH} == "i386" || ${LIBC_ARCH:Mpowerpc*} != "")
LIBADD+= ssp_nonshared
.endif