Since I've been told that this status list didn't make it to tech-toolchain,
I'm sending it again. I think my local mail relay is chewing some larger
outbound mails.
As a general appeal, please don't fiddle with build.sh directly for the next
several days. I'm working intensively on that build structure and I've been
clobbered several times because of many different sudden commits. PLEASE
SEND FEATURE REQUESTS FOR BUILD.SH DIRECTLY TO ME VIA E-MAIL.
----------
If you have items to add, please let me know so that I may update this list.
==============================
=== IMPORTANT NEW FEATURES ===
==============================
- Please see the build documentation for new toolchain systems contained in
src/BUILDING.{html,txt}. It's pretty well fleshed out, but I can always
use comments on what should be added to this document.
- TOOLDIR is no longer required by default! If you don't set TOOLDIR, it
will be set automatically to a directory under src/tools (or its
corresponding objdir) based on "uname" information from the host system
- "build.sh" has reached a pretty good milestone, as it is now able to be
invoked without arguments to build the entire tree on a native NetBSD
host (including the host tools).
=========================
=== CURRENTLY IN WORK ===
=========================
The following items have been implemented and are being tested and/or
cleaned up for committal; they should appear in-tree within 24 hours.
- Create defaults based on host machine and MAKEOBJDIRPREFIX for TOOLDIR
and objdirs under src/tools, to distinguish host/target pairs and allow
TOOLDIR to be left unset by the builder (related to pr 14278)
- Redo the way src/tools builds, so as to have tools install only as
properly needed. This will let dependencies work as they do elsewhere in
the tree. (pr 14392)
- Fix dependencies in src/gnu/usr.bin/f771 for a UPDATE build (pr 14387)
- Add option to build.sh to build and install only src/tools (requested
by thorpej)
===
The following items are actively being worked on by me as of this writing,
but are not yet complete.
- Sweep gnu/dist/toolchain, gnu/dist/texinfo, and gnu/dist/groff for GNU
Makefile bogus timestamp handling with "mv" for .y and .l files
(may delete corresponding .c/.h files, where appropriate)
- Convert host tools using GCCisms to more standard code where possible
to make them usable on more host OS's
===
The following items have been implemented and are waiting on external
issues.
- Add objdir handling to top level to allow building files in that
directory (requested by perry) [delayed due to problems using
BSDSRCDIR/BSDOBJDIR rewriting; pending on possible enhanced objdir
handling with make]
- Change intermediate "make build" targets to use timestamps to permit
automatic recognition of restart point if RESTARTBUILD is set
(somewhat like pkgsrc's .*_done stamps) [delayed because of missing
objdir support at top level]
- Add cross-groff to src/tools [delayed due to work in progress to update
groff; will reanalyze and add ASAP]
===================================
=== IMPORTANT DEVELOPMENT TASKS ===
===================================
The following issues are considered important for the toolchain. I intend
to address all of these; if you wish to help out or take over a bulleted
item, please let me know in e-mail.
- Move source for BUILDING.* (BUILDING.mdoc) to be installed to
/usr/share/doc, keeping build structure for top-level readable copies
- Investigate newer, more lenient printf -Wformat checks and see if
stricter checks can be reenabled easily (pr 14314)
- Check "distrib" Makefiles to ensure that standard null targets are
included where appropriate
- Add -fPIC (and -fpic, where needed) versions of libgcc for compiling
complex C++ shared objects or runtime loaded program modules
- Fix lib/checkver to work even if shlib_version does not exist (by
extracting SHLIB_MAJOR, SHLIB_MINOR, and SHLIB_TEENY from "make -V")
- Integrate mipseb properly into config.guess and configure.in segments
=================================
=== FURTHER DEVELOPMENT TASKS ===
=================================
These tasks are lower priority, giving precedence where practical to the
tasks above, because of size or complexity (or because the platform involved
isn't completely working on the new toolchain). Volunteers to help with
these issues are welcome.
- Port forward changes to gcc 3.0.x and gcc-current
(may create cvs.netbsd.org CVS tree for collaborative merge work)
- Submit patches for all active gcc branches to FSF
- Add ability for mtree to look at custom passwd and group files
(should probably work with a flat text master.passwd, and pull these
right from src/etc, to provide the necessary gids)
- Investigate various MIPS reloc lossage on new toolchain (tech-toolchain,
rafal@mediaone.net)
- Fix gcc/bfd/ld on alpha to use our current (historic) PLT format and
nop/unop sequence properly
- Fix ld.elf_so to work with newer MP-safe PLT format on alpha
(and change gcc/bfd/ld to use it on systems that are capable)
- Investigate why the "new" nop/unop sequence on alpha gives us pipeline
caching issues (this has been an issue since binutils 2.9.x) - will
coordinate with thorpej for tech assistance
- Fix 128-bit FP emulation on sparc64 so the "-msoft-quad-float" hack
is unnecessary
===========================================
=== ISSUES BEING INVESTIGATED BY OTHERS ===
===========================================
These tasks have been volunteered by other developers and are listed here to
notify interested people that they are in work.
- Create libsa bootloader for dnard port (requires a working conversion from
ELF to a.out for the resultant binary) [thorpej]
- Convert installboot(8) programs currently using nlist(3) for finding
block-load tables to using a detectable structure [thorpej?]
- Fix libsa loadfile() to be cross-compile safe for int bitsizes [thorpej?]
- Make sure to use byte swapping where needed in installboot(8)s [thorpej?]
--
-- Todd Vierling <tv@wasabisystems.com> * Wasabi NetBSD: Run with it.
-- CDs, Integration, Embedding, Support -- http://www.wasabisystems.com/