Bug 240506 - picobsd build script not producing usable output
Summary: picobsd build script not producing usable output
Status: New
Alias: None
Product: Base System
Classification: Unclassified
Component: bin (show other bugs)
Version: 12.0-RELEASE
Hardware: Any Any
: --- Affects Only Me
Assignee: Kyle Evans
Depends on: 240507
  Show dependency treegraph
Reported: 2019-09-11 13:07 UTC by rocky
Modified: 2019-09-12 15:05 UTC (History)
3 users (show)

See Also:


Note You need to log in before you can comment on or make changes to this bug.
Description rocky 2019-09-11 13:07:24 UTC
Tried running the picobsd script for amd64 native building but no usable output is produced.

./picobsd --src /usr/src -n --init -v qemu

find ./ -name \*.bin shows no picobsd.bin, nor does find /usr/obj-pico-amd64/ -name \*.bin.
Comment 1 Kyle Evans freebsd_committer 2019-09-11 13:09:55 UTC
Comment 2 Kyle Evans freebsd_committer 2019-09-12 02:33:38 UTC
CC'ing re@, because I think this is technically their territory being in release/, and CC'ing bugs@ to keep it on a list. 

Here's a summary of the bugs I've encountered in picobsd so far, and I still haven't gotten anything usable:

- Script unconditionally sets WITHOUT_CLANG/WITHOUT_CLANG_BOOTSTRAP [0] without dealing with GCC_BOOTSTRAP. The libllvm build fails because WITHOUT_CLANG shuts off all of the LLVM_TARGET_* -- build failure.

- Fixing that, native builds cannot work. The script does `set -e`, then [1] -- on a native build, ${o_arch} == `uname -m` and we don't descend down && path, leaving the function with an erroneous exit code and the script bails out.

- Fixing that, native amd64 builds cannot work. None of these [2] are valid CPU types for amd64 -- only i386. One can supply their own kernconf, so let's ignore this for now. 

What does work?

- Cross-builds -- kind of, for very primitive cases. [3] sets TARGET_ARCH and ARCH to whatever was passed in via --arch. This assumes ARCH=TARGET_ARCH, which rules out, e.g., arm.armv7, most mips flavors, most powerpc flavors, riscv, arm64

- The i386 build probably does, but I had to fix the ${CONF}/${CONFFILE} target in Makefile.conf to wrap [ -f ... ] && cpp in () || true in order to continue... around here I ran out of patience to tolerate further failures for the night, so I left the build running and detached for the night.

I think re@ should consider dropping this before 13.0, because:

1.) It has no active maintainer and has a lot of deferred maintenance that needs handled (see: pretty broken by default, and it's been this way for a while),

2.) It can't handle cross-builds,

3.) I think it fills a niche that's better fit for nanobsd or mfsbsd, which see more active maintenance

[0] https://svnweb.freebsd.org/base/head/release/picobsd/build/picobsd?view=markup&pathrev=349453#l975

[1] https://svnweb.freebsd.org/base/head/release/picobsd/build/picobsd?view=markup&pathrev=349453#l186

[2] https://svnweb.freebsd.org/base/head/release/picobsd/qemu/PICOBSD?revision=349253&view=markup&pathrev=349453#l17

[3] https://svnweb.freebsd.org/base/head/release/picobsd/build/picobsd?view=markup&pathrev=349453#l972
Comment 3 Glen Barber freebsd_committer 2019-09-12 15:05:18 UTC
This is not re@'s territory.  CC'd imp@, who I believe is the picobsd maintainer.