Page MenuHomeFreeBSD

config: Add no-ctfconvert support.
ClosedPublic

Authored by bdrewery on Apr 22 2020, 6:58 PM.

Details

Summary

Some files may purposely have debug info disabled or are *source files*
that attempt to run ctfconvert on them. Currently ctfconvert ignores
these errors but I have a change to make the errors real so we can
catch real problems like exceeding type limits.

I am not sure what to do with the versions/bootstrap here.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

It looks right to me. I'm not sure how to handle bootstrapping either.

usr.sbin/config/config.h
85 ↗(On Diff #70885)

Change these to hex while here?

This revision is now accepted and ready to land.Apr 22 2020, 7:06 PM
cem added a subscriber: kevans.

I think Kyle has looked at config(8) somewhat recently, maybe he has some insight here.

usr.sbin/config/mkmakefile.c
601–602 ↗(On Diff #70885)

Could just set NO_OBJ | NO_CTFCONVERT here.

815 ↗(On Diff #70885)

And then this test would just be for NO_CTFCONVERT, which seems reasonable given what the branch does. Not a big deal.

This should entail a CONFIGVERS bump to 600018 with a %VERSREQ bump to that version in all affected sys/conf/Makefile.* when a change is made that requires the new no-ctfconvert syntax. Tagging in @imp , though.

This revision now requires review to proceed.Apr 24 2020, 5:22 PM
This revision is now accepted and ready to land.Apr 24 2020, 5:28 PM
usr.sbin/config/mkmakefile.c
170–174 ↗(On Diff #70949)

@cem NO_OBJ has more behavior than NO_CTFCONVERT down in do_objs.

674–676 ↗(On Diff #70949)

@cem NO_OBJ has more behavior than NO_CTFCONVERT down in do_objs.

Will need to remember to bump config version for anything that uses a driver that's tagged with this.

usr.sbin/config/mkmakefile.c
674–676 ↗(On Diff #70949)

I don't think that's responsive to my suggestion, or at least I'm not seeing it.

The idea would be: "no-obj" sets both the NO_OBJ and NO_CTFCONVERT flags.

Then when we decide whether or not to emit "NORMAL_CTFCONVERT", we choose only on the basis of the NO_CTFCONVERT flag.

The only way this would break existing NO_OBJ logic is if something does an equality test for NO_OBJ rather than a flag bit test. If something does, I think it's already broken (given other attributes may be set already).

usr.sbin/config/mkmakefile.c
674–676 ↗(On Diff #70949)

I misinterpreted your suggestion as setting NO_OBJ with no-ctfconvert. I get it now.

Set NO_CTFCONVERT for no-obj

This revision now requires review to proceed.Apr 28 2020, 3:29 PM

Thanks! That's exactly what I had in mind :-).

This revision is now accepted and ready to land.Apr 28 2020, 4:05 PM
This revision was automatically updated to reflect the committed changes.