Page MenuHomeFreeBSD

Add a tools/build/make.py script that bootstraps bmake and then runs the build
ClosedPublic

Authored by arichardson on Aug 17 2018, 1:59 PM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Nov 21, 12:57 AM
Unknown Object (File)
Wed, Nov 20, 5:05 AM
Unknown Object (File)
Wed, Nov 20, 12:33 AM
Unknown Object (File)
Wed, Nov 20, 12:31 AM
Unknown Object (File)
Tue, Nov 12, 8:21 PM
Unknown Object (File)
Sun, Nov 10, 3:47 PM
Unknown Object (File)
Thu, Nov 7, 6:22 AM
Unknown Object (File)
Wed, Nov 6, 11:52 AM
Subscribers
None

Details

Summary

This makes it possible to compile on non-FreeBSD systems since make will
usually be GNU make there. Even if they include bmake, it will often
either be a broken version or too old to build FreeBSD.

Test Plan

With this script I've been able to compile on Linux+MacOS (once I've applied
all the other patches from https://github.com/arichardson/cheribsd/tree/crossbuild-aug2018)

Diff Detail

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 32973
Build 30365: arc lint + arc unit

Event Timeline

Probably best to save this commit for last as once you commit it, people will try it. The change generally works fine for me.

tools/build/make.py
154

We should fix bsd.compiler.mk if it isn't too gross. I recently changed it to handle GCC from base/gcc installed as /usr/bin/cc in rS333414.

I've tested the latest in github today on Arch Linux and was able to build world and kernel - however at this moment, I haven't been able to test what has been built anywhere.

Pass -fuse-ld=$XLD when building with clang

I gave this a cursory glance and it seems broadly reasonable. I think it's fine to commit to tools/.

I'll commit this once all the dependent patches have been committed.

Stop setting -fuse-ld=, this should be handled by D26055

This revision was not accepted when it landed; it landed in state Needs Review.Sep 21 2020, 3:49 PM
This revision was automatically updated to reflect the committed changes.