Subject: Toolchain status list (23-Oct-2001)
To: None <>
From: Todd Vierling <>
List: tech-toolchain
Date: 10/23/2001 23:22:04
Here's what is currently on my toolchain agenda.  If you have items to add,
please let me know so that I may update this list.


Everything in this section will be documented as part of a nroff-based
document that will be going in basesrc/BUILDING shortly (with source in
doc/BUILDING.mdoc).  I meant to have this in this afternoon, but recent
involved developments have prompted me to rewrite a bit well into the
evening.  A draft should be in first thing in the morning, ~0930 GMT-4.

 - "" now creates a script called $TOOLDIR/bin/nbmake-$MACHINE,
   which can be run by hand to set needed variables automatically
   (for compiling a subtree).


The following items have been implemented and are being cleaned up for
committal; they should appear in-tree within 24 hours.

 - Document new toolchain system and build structure (src/BUILDING,

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

 - Migrate asn1_compile to src/tools


The following items are actively being worked on by me as of this writing,
but are not yet complete.

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

 - Add proper conditionals to make use of USETOOLS=yes/no/never states
   (related to pr 14162)

 - Change intermediate "make build" targets to use timestamps to permit
   automatic recognition of restart pointif RESTARTBUILD is set
   (somewhat like pkgsrc's .*_done stamps)


The following items have been implemented and are waiting on external

 - Add cross-groff to src/tools (delayed due to work in progress to update
   groff; will reanalyze and add ASAP)


No known broken build issues as of this writing.


 - Add command line option to to specify an external obj tree
   root, creating a proper MAKEOBJDIRPREFIX setting

 - Make "dependall" work properly in src/tools

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

 - Investigate various MIPS reloc lossage on new toolchain (tech-toolchain,

 - 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

 - 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

 - General clean up of build system, particularly toolchain2netbsd


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]

- Provide way to locate top of source directory from any subtree; if found,
  set USETOOLS=yes on USE_NEW_TOOLCHAIN systems [jchacon]

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