Page MenuHomeFreeBSD

Build pxeboot files for all interpreters.
Needs RevisionPublic

Authored by rpokala on Dec 13 2019, 7:10 AM.
Tags
None
Referenced Files
Unknown Object (File)
May 8 2024, 1:59 PM
Unknown Object (File)
May 8 2024, 1:57 PM
Unknown Object (File)
May 8 2024, 12:18 PM
Unknown Object (File)
Dec 20 2023, 8:31 AM
Unknown Object (File)
Jul 4 2023, 1:58 PM
Unknown Object (File)
Apr 8 2023, 12:36 AM
Unknown Object (File)
Mar 21 2023, 8:35 PM
Subscribers
None

Details

Reviewers
kevans
imp
Summary

We build versions of BIOS loader, UEFI loader, and Userboot for all three
interpreters (4th, Lua, and Simple). Do the same for the pxeboot loader.

Test Plan

Run make LOADER_DEFAULT_INTERP=${INTERP} installworld for each of the
interpreters; confirm that all /boot/pxeboot_${INTERP} are installed,
and that /boot/pxeboot is a hardlink to the default one.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 28120
Build 26258: arc lint + arc unit

Event Timeline

I will be the first to admit that this is somewhat hackish; if someone can suggest a better way, I'm all for it.

You should rename btxldr/Makefile to be btxldr/Makefile.inc
You should create a new btxldr/Makefile that (1) installs btdldr.8 and (2) create a symlink to btxldr from the default interpreter.

stand/i386/Makefile
17

There's an implied ordering here too that needs to be obeyed. Not sure how you can enforce that.

stand/i386/pxeldr/Makefile
8

this is bogus: it will cause pxeboot.8 to be installed 3 times.

9

this already adds pxeldr.S, so no need in the including makefiles.

stand/i386/pxeldr_4th/Makefile
4

this should be in pxeldr makefile.

imp requested changes to this revision.Dec 13 2019, 3:36 PM
This revision now requires changes to proceed.Dec 13 2019, 3:36 PM
In D22792#499018, @imp wrote:

You should rename btxldr/Makefile to be btxldr/Makefile.inc
You should create a new btxldr/Makefile that (1) installs btdldr.8 and (2) create a symlink to btxldr from the default interpreter.

I presume s/btxldr/pxeldr/g throughout that comment?

Also: LINKS+= appears to come into play at install time, and creates hardlinks. You're talking about a symlink, and I don't know how to tell make to do that. Also, did you mean you want me to create the symlink at build time, or at install time?

stand/i386/pxeldr/Makefile
8

Yes, I noticed that was happening. As I have said, my knowledge of Makefiles is extremely limited, so I didn't know how to fix it.

9

Without explicitly adding it in the including Makefiles, they complained about not knowing how to make pxeldr.S.

In any case, I will take another swing at this, using a Makefile.inc as @imp suggested.

stand/i386/pxeldr/Makefile
8

Leaving it here and splitting the build bits out into a separate Makefile.inc should naturally alleviate that. Just don't carry this with you -- it should likely only get installed with the default flavor here (I think).

In D22792#499018, @imp wrote:

You should rename btxldr/Makefile to be btxldr/Makefile.inc
You should create a new btxldr/Makefile that (1) installs btdldr.8 and (2) create a symlink to btxldr from the default interpreter.

I presume s/btxldr/pxeldr/g throughout that comment?

yes

Also: LINKS+= appears to come into play at install time, and creates hardlinks. You're talking about a symlink, and I don't know how to tell make to do that. Also, did you mean you want me to create the symlink at build time, or at install time?

I am talking LINKS.

stand/i386/pxeldr/Makefile
9

Then we've done something wrong... Why not just SRCS=pxeldr.S

rpokala marked an inline comment as not done.Dec 13 2019, 8:15 PM
rpokala added inline comments.
stand/i386/pxeldr/Makefile
8

Just don't carry this with you ...

I don't know what you mean by that...?

stand/i386/pxeldr/Makefile
8

my understanding is that Makefile.inc would be most of what's included here (with a .PATH to find the ${LDR}.s), then Makefile would just be a MAN and copy the default-flavored binary to the final name, but now that I say that out loud it makes less sense I think.