Subject: Toolchain Update (31-Oct-2001) (fwd)
To: None <tech-toolchain@netbsd.org>
From: Todd Vierling <tv@wasabisystems.com>
List: tech-toolchain
Date: 10/31/2001 21:26:56
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/