Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 5 Sep 2023 22:08:50 GMT
From:      Warner Losh <imp@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: b19d8afe4dd2 - main - msun: LIBCSRCDIR is too fragile, use ${SRCTOP}/lib/libc instead
Message-ID:  <202309052208.385M8oAZ042846@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by imp:

URL: https://cgit.FreeBSD.org/src/commit/?id=b19d8afe4dd205f7d4bfa3282f58b73d504926db

commit b19d8afe4dd205f7d4bfa3282f58b73d504926db
Author:     Warner Losh <imp@FreeBSD.org>
AuthorDate: 2023-09-05 20:58:06 +0000
Commit:     Warner Losh <imp@FreeBSD.org>
CommitDate: 2023-09-05 22:08:02 +0000

    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/libc/Makefile | 14 ++++++++------
 lib/msun/Makefile | 20 +++++++++++++++-----
 2 files changed, 23 insertions(+), 11 deletions(-)

diff --git a/lib/libc/Makefile b/lib/libc/Makefile
index a26215324332..7540eb8c21ad 100644
--- a/lib/libc/Makefile
+++ b/lib/libc/Makefile
@@ -7,12 +7,14 @@ SHLIBDIR?= /lib
 
 LIBC_SRCTOP?= ${.CURDIR}
 
-# 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.
-
-.if exists(${LIBC_SRCTOP}/${MACHINE_ARCH:S/powerpc64le/powerpc64/})
-LIBC_ARCH=${MACHINE_ARCH:S/powerpc64le/powerpc64/}
+# 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 copeid to msun/Makefile
+M=${MACHINE_ARCH:S/powerpc64le/powerpc64/}
+.if exists(${LIBC_SRCTOP}/${M})
+LIBC_ARCH=${M}
 .else
 LIBC_ARCH=${MACHINE_CPUARCH}
 .endif
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202309052208.385M8oAZ042846>