Subject: Toolchain Update (09-Nov-2001 Pt 1)
To: None <>
From: Todd Vierling <>
List: tech-toolchain
Date: 11/09/2001 14:22:08
First update.  I have a LOT to commit today, so I will make a second posting
late this evening with plans for what's next and an updated feature list.

If you have items to add, please let me know so that I may update this list.


The following items have been implemented and will appear in-tree within the
next 2-6 hours.

 - Reimplement BSDSRCDIR/BSDOBJDIR via a <> rewrite and .OBJDIR:
   override.  (Allows the top level to gain an objdir; the BSDSRCDIR
   rewrite would not work with it as-is.)

 - Change objdir names for src/tools to use a host*target tuple if
   OBJMACHINE is set, rather than just the target.  Use .OBJDIR: to override.

 - 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)

 - Add a switch to make(1) to turn off objdir handling explicitly.  (pr 3938)

 - Re-enable PWD env logic in make, with the exception that MAKEOBJDIR
   transforms (MAKEOBJDIR containing a '$') should also disable it.
   (Similar problems as MAKEOBJDIRPREFIX, which also disabled PWD.)

 - Fix dependencies in src/gnu/usr.bin/f771 for a UPDATE build (pr 14387).

 - Use timestamp files at the top level to allow for automatic recognition
   of restart points.

 - Add src/tools/groff.

 - Move source for BUILDING.* (BUILDING.mdoc) to be installed to
   /usr/share/doc, keeping build structure for top-level readable copies.

 - Fix make(1) bug causing xsrc/xfree/xc/lib/GL/GL build to fail (search
   paths confusion).


The following items are actively being worked on by me as of this writing,
and will be finished tomorrow (Saturday, 10 Nov):

 - Check "distrib" Makefiles to ensure that standard null targets are
   included where appropriate


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.

 - Convert host tools using GCCisms to more standard code where possible
   to make them usable on more host OS's

 - Investigate newer, more lenient printf -Wformat checks and see if
   stricter checks can be reenabled easily (pr 14314)

 - 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 segments


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 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,

 - 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


This list will be re-added in the second update, this evening.

-- Todd Vierling <>  *  Wasabi NetBSD:  Run with it.
-- CDs, Integration, Embedding, Support --