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
F98178966: D16767.diff
Wed, Oct 2, 2:30 PM
Unknown Object (File)
Sat, Sep 21, 8:32 AM
Unknown Object (File)
Fri, Sep 20, 4:03 PM
Unknown Object (File)
Thu, Sep 19, 2:08 AM
Unknown Object (File)
Wed, Sep 18, 4:42 PM
Unknown Object (File)
Tue, Sep 17, 4:03 PM
Unknown Object (File)
Tue, Sep 17, 4:03 PM
Unknown Object (File)
Mon, Sep 16, 7:57 PM
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.