Re: WITHOUT_CASPER ghost?

2024-02-23 Thread Brooks Davis
On Fri, Feb 23, 2024 at 10:21:12AM -0800, Michael Dexter wrote:
> On 2/23/24 9:13 AM, Brooks Davis wrote:
> > Things are in a somewhat messy state.  CASPER and CAPSICUM were moved to
> > a new __REQUIRED_OPTIONS list, but the various bits still exist and
> > there's even one use of MK_CASPER=no in Makefile.inc1.  The commit
> > message (c24c117b9644) suggests that the intent was to finish removal
> > after 14 branched and it just hasn't happened yet.
> 
> Understood.
> 
> > I do wonder if the tool would also benefit from learning about
> > __REQUIRED_OPTIONS.
> 
> By required do you mean WITHOUT_AUTO_OBJ, WITHOUT_UNIFIED_OBJDIR,
> WITHOUT_INSTALLLIB which I manually skip/mask my build option testing?

>From bsd.mkopt.mk:

# For each option FOO in __REQUIRED_OPTIONS, MK_FOO is set to "yes".

If you set MK_FOO=no in a way that make can't override them (e.g., on
the make command line) then the functionality is still there during the
transition.  It's probably a bug that we don't whine about this case
like we do with WITHOUT_FOO.

> If so, what syntax would use __REQUIRED_OPTIONS and what branches support it?

__REQUIRED_OPTIONS isn't really a user accessible bit of machinery, but
the survey should probably be aware of it.  It looks like
__REQUIRED_OPTIONS is in 14, but not 13.

-- Brooks



Re: WITHOUT_CASPER ghost?

2024-02-23 Thread Michael Dexter

On 2/23/24 9:13 AM, Brooks Davis wrote:

Things are in a somewhat messy state.  CASPER and CAPSICUM were moved to
a new __REQUIRED_OPTIONS list, but the various bits still exist and
there's even one use of MK_CASPER=no in Makefile.inc1.  The commit
message (c24c117b9644) suggests that the intent was to finish removal
after 14 branched and it just hasn't happened yet.


Understood.


I do wonder if the tool would also benefit from learning about
__REQUIRED_OPTIONS.


By required do you mean WITHOUT_AUTO_OBJ, WITHOUT_UNIFIED_OBJDIR, 
WITHOUT_INSTALLLIB which I manually skip/mask my build option testing?


If so, what syntax would use __REQUIRED_OPTIONS and what branches 
support it?


Michael



Re: WITHOUT_CASPER ghost?

2024-02-23 Thread Brooks Davis
On Thu, Feb 22, 2024 at 07:49:08PM -0800, Michael Dexter wrote:
> All,
> 
> The WITHOUT_CASPER build option was deprecated in main and 14-stable branches
> but is still showing up and will trip up the build option survey:
> 
> sh src/tools/tools/build_option_survey/listallopts.sh | grep CASPER
> WITHOUT_CASPER

Things are in a somewhat messy state.  CASPER and CAPSICUM were moved to
a new __REQUIRED_OPTIONS list, but the various bits still exist and
there's even one use of MK_CASPER=no in Makefile.inc1.  The commit
message (c24c117b9644) suggests that the intent was to finish removal
after 14 branched and it just hasn't happened yet.

I do wonder if the tool would also benefit from learning about
__REQUIRED_OPTIONS.

-- Brooks



WITHOUT_CASPER ghost?

2024-02-22 Thread Michael Dexter

All,

The WITHOUT_CASPER build option was deprecated in main and 14-stable 
branches but is still showing up and will trip up the build option survey:


sh src/tools/tools/build_option_survey/listallopts.sh | grep CASPER
WITHOUT_CASPER

--- all_subdir_sbin/mdconfig ---
===> sbin/mdconfig (all)
make[4]: "/b/stable/14/src/share/mk/bsd.mkopt.mk" line 62: warning: 
WITHOUT_CAPSICUM option ignored: it is no longer supported
make[4]: "/b/stable/14/src/share/mk/bsd.mkopt.mk" line 62: warning: 
WITHOUT_CASPER option ignored: it is no longer supported

--- .depend ---
echo mdconfig: 
/b/stable/14/obj/b/stable/14/src/amd64.amd64/tmp/usr/lib/libc.a 
/b/stable/14/obj/b/stable/14/src/amd64.amd64/tmp/usr/lib/libutil.a 
/b/stable/14/obj/b/stable/14/src/amd64.amd64/tmp/usr/lib/libgeom.a 
/b/stable/14/obj/b/stable/14/src/amd64.amd64/tmp/usr/lib/libbsdxml.a 
/b/stable/14/obj/b/stable/14/src/amd64.amd64/tmp/usr/lib/libsbuf.a >> 
depend

--- mdconfig.o ---
cc -target x86_64-unknown-freebsd14.0 
--sysroot=/b/stable/14/obj/b/stable/14/src/amd64.amd64/tmp 
-B/b/stable/14/obj/b/stable/14/src/amd64.amd64/tmp/usr/bin  -O2 -pipe 
-fno-common   -DNDEBUG -MD  -MF.depend.mdconfig.o -MTmdconfig.o 
-std=gnu99 -Wno-format-zero-length -nobuiltininc -idirafter 
/usr/lib/clang/16/include -Qunused-arguments   -c 
/b/stable/14/src/sbin/mdconfig/mdconfig.c -o mdconfig.o

--- all_subdir_sbin/md5 ---
4 warnings generated.
--- md5 ---
cc -target x86_64-unknown-freebsd14.0 
--sysroot=/b/stable/14/obj/b/stable/14/src/amd64.amd64/tmp 
-B/b/stable/14/obj/b/stable/14/src/amd64.amd64/tmp/usr/bin -O2 -pipe 
-fno-common -DHAVE_CAPSICUM -DWITH_CASPER -DNDEBUG -std=gnu99 
-Wno-format-zero-length -nobuiltininc -idirafter 
/usr/lib/clang/16/include -Qunused-arguments  -Wl,-znorelro -static   -o 
md5 md5.o   -lmd  -lcasper  -lnv  -lcap_fileargs  -lnv

ld: error: unable to find library -lcasper
ld: error: unable to find library -lcap_fileargs
cc: error: linker command failed with exit code 1 (use -v to see invocation)
*** [md5] Error code 1

make[4]: stopped in /b/stable/14/src/sbin/md5
1 error

I am tracking the build options here:

https://callfortesting.org/results/bos-ci/

My apologies if this is a false positive.

Michael