Subject: Toolchain Update (27-Nov-2001)
To: None <tech-toolchain@netbsd.org>
From: Todd Vierling <tv@wasabisystems.com>
List: tech-toolchain
Date: 11/27/2001 11:43:22
If you have items to add, please let me know so that I may update this list.
There are some bug reports that came in over the long (USA) weekend, and are
not reflected in this update, but these will be covered by the "Some
additional minor fixes and cleanups" bulleted item below.

You may note that the list has become significantly smaller.  Thanks to all
those helping fix minor issues in the build process; this is really coming
together.

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

The following items are actively being worked on by me as of this writing,
and will be finished today (Tuesday, 27 Nov):

 - Add autoconf build mechanism for src/tools/compat, add many stubs for
   compatibility for other host OS's (Solaris, Linux, Cygwin, etc.)
   Includes a new <bsd.hostlib.mk> build structure.

 - Overhaul src/distrib with common build components and proper recursion.
   In particular, I've factored out the identical yet duplicated crunch
   and fs build logic.

 - Add -fPIC (and -fpic, where needed) versions of libgcc for compiling
   complex C++ shared objects or runtime loaded program modules.

 - Some other minor fixes and cleanups.

===

The following items are on the schedule for completion tomorrow.

 - Clean up sys/lib/lib* and sys/arch/*/stand build structure, and add
   common makefile segment(s) in sys/conf for this purpose.

 - Change MKfoo=no back to NOfoo= in various Makefiles.  The behavior
   desired here is to override any user setting, which is precisely what
   NOfoo does.  (This manifests as a problem when someone sets MKMAN=yes or
   MKPIC=yes in mk.conf, which should be a perfectly legal action.)

 - Eliminate all direct use of ${CPP}, and replace by appropriate
   "${CC} -E" and/or "${CC} -x foo" commands.

===

The next major items on my agenda are machine-dependent.  In particular, I
now have a sparc64 machine, and will be working hard to get alpha and
sparc64 working and stable with the new toolchain over the rest of the week.

ALPHA:

 - Fix gcc/bfd/ld on alpha to use our current (historic) PLT format and
   nop/unop sequence properly (should allow turning on new toolchain for
   alpha)

 - 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), and set
   ld's configure.tgt to use the newer format on appropriate systems

 - Investigate why the "new" nop/unop sequence on alpha gives us pipeline
   caching issues (this has been an issue since binutils 2.9.x)

SPARC64:

 - Make sure that -msoft-quad-float results in ABI-compatible code on
   sparc64, and if so, enable this by default (and remove related
   workarounds in src)

 - Investigate ILP32-to-LP64 cross compile divergence.  It's been noted that
   cross compiling from, say, i386 to sparc64 results in differing asm
   output from the compiler due to lack of native 128-bit int (`TImode') on
   ILP32 machines.  It's rumored, but unconfirmed as yet, that this may
   cause codegen bugs on gcc 2.95.x.

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

 - Submit patches for active gcc branches to FSF.

   (Some porting forward has been done for existing changes in
   src/gnu/dist/toolchain.  However, because of the interrelationship of
   many changes, this may have to be delayed until at least mipse[bl] is
   stabilized.)

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