From 556fcdce5b44d29a7da851d9f89c224dd45eb3f3 Mon Sep 17 00:00:00 2001 From: Bryan Drewery Date: Wed, 16 Dec 2020 14:06:15 -0800 Subject: [PATCH] bsd.compat.mk: Allow finding non-internal libraries Currently only libexec/rtld-elf32 uses internal LIBC_NOSSP_PIC during the build but it gets it directly from the objdir rather than a sysroot. For example, /usr/obj/usr/src/amd64.amd64/obj-lib32/lib/libc/libc_nossp_pic.a. We don't stage lib32 libraries in WORLDTMP/usr/lib32 and doing so doesn't buy much. If we want to use a staged lib32 library then we need to look in LIBCOMPATTMP where they were staged. For example if LIBC_PIC were wanted then look for /usr/obj/usr/src/amd64.amd64/obj-lib32/tmp/usr/lib32/libc_pic.a. Reported by: rlibby Reviewed by: rlibby Sponsored by: Dell EMC Differential Revision: https://reviews.freebsd.org/D27648 --- share/mk/bsd.compat.mk | 1 + share/mk/bsd.libnames.mk | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/share/mk/bsd.compat.mk b/share/mk/bsd.compat.mk index 9b3d2c2d22eb..d7d63bfe55db 100644 --- a/share/mk/bsd.compat.mk +++ b/share/mk/bsd.compat.mk @@ -161,6 +161,7 @@ LIBCOMPATCFLAGS+= -B${LIBCOMPATTMP}/usr/lib${libcompat} .if defined(WANT_COMPAT) LIBDIR_BASE:= /usr/lib${libcompat} _LIB_OBJTOP= ${LIBCOMPAT_OBJTOP} +LIBDESTDIR:= ${LIBCOMPATTMP} CFLAGS+= ${LIBCOMPATCFLAGS} LDFLAGS+= ${CFLAGS} ${LIBCOMPATLDFLAGS} MACHINE= ${LIBCOMPAT_MACHINE} diff --git a/share/mk/bsd.libnames.mk b/share/mk/bsd.libnames.mk index feb7f4c4070e..d030292d3c5e 100644 --- a/share/mk/bsd.libnames.mk +++ b/share/mk/bsd.libnames.mk @@ -8,7 +8,7 @@ .error bsd.libnames.mk cannot be included directly. .endif -LIBDESTDIR= ${SYSROOT:U${DESTDIR}} +LIBDESTDIR?= ${SYSROOT:U${DESTDIR}} .sinclude