Re: git: 264594efbe69 - main - Makefile.inc1: Automatically generate _LIBCOMPATS and list-old-* libcompats

From: Yuri <yuri_at_aetern.org>
Date: Thu, 27 Jul 2023 23:12:52 UTC
Jessica Clarke wrote:
> On 27 Jul 2023, at 23:33, Yuri <yuri@aetern.org> wrote:
>>
>> Jessica Clarke wrote:
>>> The branch main has been updated by jrtc27:
>>>
>>> URL: https://cgit.FreeBSD.org/src/commit/?id=264594efbe699defbe2ac4e1d7a91fde3db45e8f
>>>
>>> commit 264594efbe699defbe2ac4e1d7a91fde3db45e8f
>>> Author:     Jessica Clarke <jrtc27@FreeBSD.org>
>>> AuthorDate: 2023-07-27 04:10:43 +0000
>>> Commit:     Jessica Clarke <jrtc27@FreeBSD.org>
>>> CommitDate: 2023-07-27 04:10:43 +0000
>>>
>>>    Makefile.inc1: Automatically generate _LIBCOMPATS and list-old-* libcompats
>>
>> This seems to break the list-old-libs target for me (with or without
>> WITHOUT_LIB32= in src.conf):
>>
>> $ make list-old-libs
>> /bin/sh: -V: not found
>>
>> Reverting this commit makes it work again.
>>
>>>    Reviewed by:    brooks, jhb
>>>    Differential Revision:  https://reviews.freebsd.org/D41180
>>> ---
>>> Makefile.inc1 | 19 ++++++++++++-------
>>> 1 file changed, 12 insertions(+), 7 deletions(-)
>>>
>>> diff --git a/Makefile.inc1 b/Makefile.inc1
>>> index 53699a454ff6..b3a33a928ee5 100644
>>> --- a/Makefile.inc1
>>> +++ b/Makefile.inc1
>>> @@ -857,9 +857,12 @@ XCFLAGS+= --sysroot=${WORLDTMP}
>>> XCFLAGS+= ${BFLAGS}
>>> .endif
>>>
>>> -.if ${MK_LIB32} == "yes"
>>> -_LIBCOMPATS+= 32
>>> +.include "share/mk/bsd.compat.pre.mk"
>>> +.for LIBCOMPAT in ${_ALL_LIBCOMPATS}
>>> +.if ${MK_LIB${LIBCOMPAT}} == "yes"
>>> +_LIBCOMPATS+= ${LIBCOMPAT}
>>> .endif
>>> +.endfor
>>> .include "Makefile.libcompat"
>>>
>>> # META_MODE normally ignores host file changes since every build updates
>>> @@ -3255,8 +3258,9 @@ list-old-files: .PHONY
>>> @cd ${.CURDIR}; \
>>> ${MAKE} -f ${.CURDIR}/Makefile.inc1 ${.MAKEFLAGS} ${.TARGET} \
>>>     -V "OLD_FILES:ts\n" -V "OLD_FILES:Musr/share/*.gz:R:ts\n" \
>>> -     -V "OLD_FILES:Mlib/*.so.*:S,^lib,usr/lib32,:ts\n" \
>>> -     -V "OLD_FILES:Musr/lib/*:S,^usr/lib,usr/lib32,:ts\n" | sort
>>> +     ${_ALL_libcompats:@v@-V "OLD_FILES:Mlib/*.so.*:S,^lib,usr/lib$v,:ts\n"@} \
>>> +     ${_ALL_libcompats:@v@-V "OLD_FILES:Musr/lib/*:S,^usr/lib,usr/lib$v,:ts\n"@} | \
>>> + sort
>>>
>>> delete-old-files: .PHONY
>>> @echo ">>> Removing old files (only deletes safe to delete libs)"
>>> @@ -3321,9 +3325,10 @@ list-old-libs: .PHONY
>>> @cd ${.CURDIR}; \
>>> ${MAKE} -f ${.CURDIR}/Makefile.inc1 ${.MAKEFLAGS} ${.TARGET} \
>>>     -V "OLD_LIBS:ts\n" -V "MOVED_LIBS:ts\n" \
>>> -     -V "OLD_LIBS:Mlib/*:S,^lib,usr/lib32,:ts\n" \
>>> -     -V "OLD_LIBS:Musr/lib/*:S,^usr/lib,usr/lib32,:ts\n" \
>>> -     -V "OLD_LIBS:Mlib/casper/*:S,^lib/casper,usr/lib32,:ts\n" | sort
>>> +     ${_ALL_libcompats:@v@-V "OLD_LIBS:Mlib/*:S,^lib,usr/lib$v,:ts\n"@} \
>>> +     ${_ALL_libcompats:@v@-V "OLD_LIBS:Musr/lib/*:S,^usr/lib,usr/lib$v,:ts\n"@} | \
>>
>> Looks like there is stray pipe symbol.
> 
> Oops, copy paste strikes again. Does deleting the pipe symbol, i.e. the
> following patch, also fix things for you, rather than reverting the
> commit?

Yes, delete-old-libs now properly does its job of removing lib32 contents.

>> diff --git a/Makefile.inc1 b/Makefile.inc1
>> index af7d5b8ad0c5..2e965b603d78 100644
>> --- a/Makefile.inc1
>> +++ b/Makefile.inc1
>> @@ -3368,7 +3368,7 @@ list-old-libs: .PHONY
>>  	${MAKE} -f ${.CURDIR}/Makefile.inc1 ${.MAKEFLAGS} ${.TARGET} \
>>  	    -V "OLD_LIBS:ts\n" -V "MOVED_LIBS:ts\n" \
>>  	    ${_ALL_libcompats:@v@-V "OLD_LIBS:Mlib/*:S,^lib,usr/lib$v,:ts\n"@} \
>> -	    ${_ALL_libcompats:@v@-V "OLD_LIBS:Musr/lib/*:S,^usr/lib,usr/lib$v,:ts\n"@} | \
>> +	    ${_ALL_libcompats:@v@-V "OLD_LIBS:Musr/lib/*:S,^usr/lib,usr/lib$v,:ts\n"@} \
>>  	    ${_ALL_libcompats:@v@-V "OLD_LIBS:Mlib/casper/*:S,^lib/casper,usr/lib$v,:ts\n"@} | \
>>  	sort
>>  
> 
> 
> Thanks for the report.
> 
> Jess