Subject: Toolchain status list (30-Oct-2001)
To: None <tech-toolchain@netbsd.org>
From: Todd Vierling <tv@wasabisystems.com>
List: tech-toolchain
Date: 10/30/2001 13:41:48
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.

==============================
=== IMPORTANT NEW FEATURES ===
==============================

Please see the new build documentation 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.  This is intended to replace UPDATING entirely,
as soon as all platforms are on the new toolchain.

=========================
=== CURRENTLY IN WORK ===
=========================

The following items have been implemented and are being 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)

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

 - Add objdir handling to top level to allow building files in that
   directory (requested by perry)

 - Add "-n" option to build.sh to function similarly to "make -n"
   (requested by mrg)

 - Add option to build.sh that makes it only update nbmake if needed;
   this is the only tool that can't really be built or updated properly
   from src/tools (...since if new .mk files need a new make, there's no way
   to build the new make in src/tools).  (requested by jchacon)

 - Allow relative paths to -[DTR] in build.sh (requested by soren)

===

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

 - Fix "make depend[all]" handling in src/tools (pr 14392)

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

 - Fix .ORDER special target in make(1) (related to pr 14378, also pr 14404)

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

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

 - Always descend into src/tools regardless of USETOOLS setting, so that
   objdirs get built and cleandir, etc. runs; put USETOOLS checks in
   tools/Makefile.* instead

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

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

===

The following items have been implemented and are waiting on external
issues.

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

===========================
=== BROKEN BUILD ISSUES ===
===========================

No new broken build issues as of this writing.

================================
=== NEW FUNCTIONALITY ISSUES ===
================================

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

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

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

 - 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

 - 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

===========================================
=== 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]

- Change sparc installboot to use magicwords instead of nlist(3) walking to
  find the block number table; would permit cross-installboot easily [thorpej]

-- 
-- Todd Vierling <tv@wasabisystems.com>  *  Wasabi NetBSD:  Run with it.
-- CDs, Integration, Embedding, Support -- http://www.wasabisystems.com/