Re: git: 6b1c5775d1c2 - main - Move libc++ from /usr/lib to /lib

From: Gary Jennejohn <gljennjohn_at_gmail.com>
Date: Thu, 30 Dec 2021 10:16:48 UTC
On Thu, 30 Dec 2021 09:08:47 +0000
Antoine Brodin <antoine@freebsd.org> wrote:

> On Wed, Dec 29, 2021 at 7:52 PM Ed Maste <emaste@freebsd.org> wrote:
> >
> > The branch main has been updated by emaste:
> >
> > URL: https://cgit.FreeBSD.org/src/commit/?id=6b1c5775d1c29c7c42201254df82aca9f3820bc8
> >
> > commit 6b1c5775d1c29c7c42201254df82aca9f3820bc8
> > Author:     Ed Maste <emaste@FreeBSD.org>
> > AuthorDate: 2021-12-29 19:50:03 +0000
> > Commit:     Ed Maste <emaste@FreeBSD.org>
> > CommitDate: 2021-12-29 19:51:28 +0000
> >
> >     Move libc++ from /usr/lib to /lib
> >
> >     As with other runtime components like libc or libcxxrt.
> >
> >     If desired we can stop linking devd statically after this change (to
> >     achive approximately no net change in required root filesystem size).
> >
> >     Reviewed by:    imp
> >     Sponsored by:   The FreeBSD Foundation
> >     Differential Revision:  https://reviews.freebsd.org/D33123
> > ---
> >  ObsoleteFiles.inc   | 3 +++
> >  lib/libc++/Makefile | 1 +
> >  2 files changed, 4 insertions(+)
> >
> > diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc
> > index 4e99c917e89a..6207ad302bba 100644
> > --- a/ObsoleteFiles.inc
> > +++ b/ObsoleteFiles.inc
> > @@ -40,6 +40,9 @@
> >  #   xargs -n1 | sort | uniq -d;
> >  # done
> >
> > +# 20211229 libc++ moved to /lib
> > +OLD_LIBS+=usr/lib/libc++.so.1
> > +
> >  # 20211221 efi_set_variables_supported.3 should be efi_variables_supported.3
> >  OLD_FILES+=usr/share/man/man3/efi_set_variables_supported.3.gz
> >
> > diff --git a/lib/libc++/Makefile b/lib/libc++/Makefile
> > index 2bc1bf40eccd..f535a0cfba8c 100644
> > --- a/lib/libc++/Makefile
> > +++ b/lib/libc++/Makefile
> > @@ -3,6 +3,7 @@
> >  .include <src.opts.mk>
> >
> >  PACKAGE=       clibs
> > +SHLIBDIR?=     /lib
> >  _LIBCXXRTDIR=  ${SRCTOP}/contrib/libcxxrt
> >  HDRDIR=                ${SRCTOP}/contrib/llvm-project/libcxx/include
> >  SRCDIR=                ${SRCTOP}/contrib/llvm-project/libcxx/src  
> 
> Hello,
> 
> Something seems missing:
> 
> # cc
> ld-elf.so.1: Shared object "libc++.so.1" not found, required by "cc"
> 

This is strange.  I just did buildworld/installworld at
main-n252047-f1d5e2c862e and cc works just fine for me.

My /libexec/ld-elf.so.1 is from December 22nd, but it's
identical to the ld-elf.so.1 which was built today (based on
sum values).

And my /usr/lib/libc++.so.1 was installed today.  There's no
/lib/libc++.so.1 on my system even though I had the modified
Makefile when I did the buildworld/installworld.

I don't delete old files using ObsoleteFiles.inc.

Still, libc++.so.1 should be present in your obj directory and
you can just copy it to /lib and/or /usr/lib as a temporary fix.

-- 
Gary Jennejohn