diff options
author | Piotr Kubaj <pkubaj@FreeBSD.org> | 2022-02-18 13:22:14 +0000 |
---|---|---|
committer | Piotr Kubaj <pkubaj@FreeBSD.org> | 2022-02-22 18:34:28 +0000 |
commit | 884ba43116d4456d5900d3c8824153c604f132b8 (patch) | |
tree | de2687d39289b9a598eea1eac841e0815d682980 | |
parent | 9835900cb95bcd068774934961fb1419719d595b (diff) | |
download | src-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.h | 2 | ||||
-rw-r--r-- | lib/libc/Makefile | 7 |
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 |