From b19d8afe4dd205f7d4bfa3282f58b73d504926db Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Tue, 5 Sep 2023 14:58:06 -0600 Subject: msun: LIBCSRCDIR is too fragile, use ${SRCTOP}/lib/libc instead LIBCSRCDIR is defined in bsd.libnames.mk, which is read in later in the Makefile than the line: .if exists(${LIBCSRCDIR}/${MACHINE_ARCH}) so we test to see if /${MARCHIN_ARCH} exists which it usually doesn't (but did for me since I mounted 13.2R SD image there). Move to defining our own LIBC_SRCTOP in terms of SRCTOP to treat these uniformily. Sponsored by: Netflix Reviewed by: sjg Differential Revision: https://reviews.freebsd.org/D41661 --- lib/msun/Makefile | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'lib/msun') diff --git a/lib/msun/Makefile b/lib/msun/Makefile index 8bc984c2c342..9917be01d863 100644 --- a/lib/msun/Makefile +++ b/lib/msun/Makefile @@ -97,17 +97,27 @@ COMMON_SRCS+= s_cospi.c s_cospif.c \ s_sinpi.c s_sinpif.c \ s_tanpi.c s_tanpif.c +# LIBCSRCDIR is defined lazily, so can't be used for exists() below +LIBC_SRCTOP=${SRCTOP}/lib/libc # Location of fpmath.h and _fpmath.h -.if exists(${LIBCSRCDIR}/${MACHINE_ARCH}) -LIBC_ARCH=${MACHINE_ARCH} + +# Pick the current architecture directory for libc. In general, this is named +# MACHINE_CPUARCH, but some ABIs are different enough to require their own libc, +# so allow a directory named MACHINE_ARCH to override this (though treat +# powerpc64le and powerpc64 the same). +# Note: This is copied from libc/Makefile +M=${MACHINE_ARCH:S/powerpc64le/powerpc64/} +.if exists(${LIBC_SRCTOP}/${M}) +LIBC_ARCH=${M} .else LIBC_ARCH=${MACHINE_CPUARCH} .endif -CFLAGS+= -I${.CURDIR}/src -I${LIBCSRCDIR}/include \ - -I${LIBCSRCDIR}/${LIBC_ARCH} + +CFLAGS+= -I${.CURDIR}/src -I${LIBC_SRCTOP}/include \ + -I${LIBC_SRCTOP}/${LIBC_ARCH} SYM_MAPS+= ${.CURDIR}/Symbol.map -VERSION_DEF= ${LIBCSRCDIR}/Versions.def +VERSION_DEF= ${LIBC_SRCTOP}/Versions.def SYMBOL_MAPS= ${SYM_MAPS} # C99 long double functions -- cgit v1.2.3