Page MenuHomeFreeBSD

Base infra for meta mode
ClosedPublic

Authored by sjg on Jun 12 2015, 2:47 PM.
Tags
None
Referenced Files
Unknown Object (File)
Mon, Nov 3, 12:45 AM
Unknown Object (File)
Sat, Nov 1, 2:50 PM
Unknown Object (File)
Sat, Nov 1, 2:50 PM
Unknown Object (File)
Sat, Nov 1, 10:36 AM
Unknown Object (File)
Sat, Nov 1, 10:36 AM
Unknown Object (File)
Sat, Nov 1, 10:35 AM
Unknown Object (File)
Sat, Nov 1, 10:35 AM
Unknown Object (File)
Sat, Nov 1, 10:35 AM
Subscribers

Details

Summary

All the strictly non-meta mode changes are in head,
this diff is the basic infra for meta mode in a "do no harm" form.
Ie. buildworld works as it always has.

A separate diff will show the initial targets hierarchy

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

sjg retitled this revision from to Base infra for meta mode.
sjg updated this object.
sjg edited the test plan for this revision. (Show Details)
sjg added reviewers: brooks, imp.

Some comments on the changes to existing files. Will review the the new files tomorrow

etc/Makefile
333 ↗(On Diff #6143)

We've used 'MK_* != "no"' historically, but for new code 'MK_* == "yes"' is easier to read and Warner made a change to make yes and no be the only possible values.

include/Makefile
131 ↗(On Diff #6143)

.if ${MK_STAGING} == "yes"

include/arpa/Makefile
6 ↗(On Diff #6143)

Is this intentional? I remember telnet.h is weird, but don't remember why.

kerberos5/lib/libhx509/Makefile
303 ↗(On Diff #6143)

extra line?

lib/clang/clang.build.mk
42 ↗(On Diff #6143)

left over debug output?

lib/libpam/static_modules/Makefile
44 ↗(On Diff #6143)

where does openpam_static.c come from?

lib/ncurses/ncurses/Makefile
311 ↗(On Diff #6143)

Is this and ENABLE_WIDEC redundant?

share/mk/bsd.crunchgen.mk
109 ↗(On Diff #6143)

this change looks like it could be separate from meta_mode.

sjg marked 3 inline comments as done.Jun 13 2015, 3:23 PM
sjg added inline comments.
lib/clang/clang.build.mk
42 ↗(On Diff #6143)

Yes, removed.

lib/libpam/static_modules/Makefile
44 ↗(On Diff #6143)

contrib/libpam

lib/ncurses/ncurses/Makefile
311 ↗(On Diff #6143)

I'm not sure actually, the test above is to avoid ncurses and ncursesw
both trying to install the same headers - which meta.stage.mk will throw an error for.

share/mk/bsd.crunchgen.mk
109 ↗(On Diff #6143)

Sure

sjg edited edge metadata.

update per review

OK, so there's a bunch of nit-picky comments, but generally I like this.

Makefile
106 ↗(On Diff #6170)

I'd be tempted to have a .include "Makefile.classic" for the classic buildworld goo. But maybe in a separate commit to show how you've changed things before moving it. Not a huge priority, but just a suggestion...

include/Makefile
169 ↗(On Diff #6170)

Why do we need to do this here, and elsewhere? Perhaps a quick comment would be helpful since it's done in two places...

378 ↗(On Diff #6170)

Are the new MACHINE types like this used in meta mode? Or is that something that is a separate feature?

lib/libc/Makefile
171 ↗(On Diff #6170)

Since we're already invoking make to have msun tell us the arch, perhaps it can tell it to us in a way we don't need the following crazy .if?

lib/libpam/libpam/Makefile
179 ↗(On Diff #6170)

This is fine for now, but I've half way been considering automatically include src.opts.mk inside of src.sys.mk which is included from local.sys.mk from sys.mk. Have you considered this?

lib/libpam/static_modules/Makefile
2 ↗(On Diff #6170)

Silly not: We normally use earliest-latest rather than listing the years. And 2015 since it is being published this year.

46–47 ↗(On Diff #6170)

Do these two things still do anything? MAN= I think is the new way for NO_MAN.

share/mk/dirdeps.mk
609 ↗(On Diff #6170)

I'm shocked that you have no Douglas Adams references here. "Oh no. Not again." suggests itself.

share/mk/host-target.mk
15 ↗(On Diff #6170)

move this up a line...

share/mk/local.dirdeps.mk
5 ↗(On Diff #6170)

This could go away if the earlier suggesting is followed.

Also, why isn't this src.dirdeps.mk?

share/mk/local.sys.mk
1 ↗(On Diff #6170)

How do I know what to put here, and what to put in src.sys.mk?
At least as a FreeBSD developer...

share/mk/sys.mk
353–362 ↗(On Diff #6170)

Why is this here, and not in src.sys.mk?

sjg marked an inline comment as done.Jun 13 2015, 5:28 PM
sjg added inline comments.
lib/libpam/libpam/Makefile
179 ↗(On Diff #6170)

That sounds like a good idea.
Would involve hitting most makefiles though so best done separately.

share/mk/host-target.mk
15 ↗(On Diff #6170)

The comment is explaining why the next line is needed

share/mk/local.dirdeps.mk
5 ↗(On Diff #6170)

Yes, including src.opts.mk from src.sys.mk would be good change.
This could be src.dirdeps.mk but it would have to be included by local.dirdeps.mk
which is all dirdeps.mk will look for.

share/mk/local.sys.mk
1 ↗(On Diff #6170)

This is generic stuff that others might want to use (ie by copying this to their own tree)
Anything that is strictly related to budiling src, would go in src.sys.mk
but I don't think anything here is in that category.

share/mk/sys.mk
353–362 ↗(On Diff #6170)

Because the idea is to allow others (not just src/) to be able to use these.
The handling of MK_META_FILES could move to src.sys.mk

sjg edited edge metadata.

update per review

So including local.sys.mk earlier works fine, and allows us to easily hook in external toolchain ok

But src.opts.mk cannot be included that early since it includes bsd.compiler.mk which needs the compiler selected.
So src.opts.mk could be included from sys.mk but should be done later.

This revision was automatically updated to reflect the committed changes.