Subject: Re: Importing gdb-5.3 ....
To: matthew green <mrg@eterna.com.au>
From: James Chacon <jmc@netbsd.org>
List: tech-toolchain
Date: 07/20/2003 17:15:45
Sounds good. Any idea on a timeline?

James

>
>
>whoops, lets try that again...
>
>
>   When we import gdb-5.3 and gcc-3.3.1, will we be keeping the current method
>   of using gnu/dist/toolchain or are we going to switch [back] to
>   gnu/dist/{gdb,gcc,binutils}?  The latter has the advantage in that it
>   directly reflect how the GNU toolchain bits are split into distributions but
>   it will mean duplication of some of the binutils bits (bfd, opcodes) and, of
>   course, libiberty.
>
>
>i'd like to split things back up.  there are several reasons for
>this, and while i'd really prefer that we didn't from an aesthetic
>and code-sharing point of view, maintenence issues seem
>significantly more severe with the current method.
>
>rationale for splitting up the merged tools:
>
>        - GCC, GDB & binutils release at different intervals and
>	the shared code between them in the latest release is never
>	quite identical.  for instance, GDB 5.3 & binutils 2.13.2.1's
>	bfd library both had different sets of changes from
>	bfd-current such that it was difficult to determine exactly
>	what was new and what was old.  that means that we are using
>	a different set of libraries for our tools than everyone else
>	is, giving potential rise to "netbsd only" bugs.
>
>        - because of the above, updating any single component of the
>        toolchain requires extra testing and integration effort than
>        should be necessary.  updating toolchain components has
>	proven to be difficult, making it simpler helps.  the
>	"bfd_read deprecated" messages from GDB in -current are due
>	to this sharing.
>
>        - there is some additional work in maintaining two copies
>        of libbfd & libopcodes and 3 copies of libiberty.  libibery
>        should never be changed, and changes to libbfd & libopcodes
>        should not be common, and should always be sent back to the
>        FSF anyway.  while this will entail some additional work it
>        is likely to be outweighted by the better maintainibility of
>        the intree toolchain, and really should only entail applying
>	the same patches to both places.
>
>
>what i'd like to see happen is:
>
>        - import latest versions of gdb, binutils & gcc (any order!)
>        into gnu/dist/<foo>.  these are all currently empty (but do
>        have old history in some/all cases.)  that won't affect
>        anything currently working.
>
>        - split src/tools/toolchain into src/tools/{gcc,binutils,gdb},
>        make sure that binutils is built before gcc and only build
>        gdb if MKCROSSGDB is set.  (the cross gdb feature is too useful
>        to get rid of.)  we should be able to make these use either
>        of gnu/dist/{,toolchain/}<foo> with a simple change to the
>        path-to-./configure.
>
>        - for mknative, simply split the script into 3 scripts.  it
>        is already largely modular and will easily break up.  change
>        this to workon the gnu/dist/<foo> versions.
>
>        - for gnu/usr.bin/{gdb,binutils,gcc}, change the makefiles to
>        allow for either version.  as ports upgrade to the new versions,
>        regenerate their files with mknative (see above).
>
>        - do not use gnu/lib/lib{bfd,opcodes,iberty} for new tools.
>        build separate versions between gdb & binutils.  build a shared
>        libbfd for binutils and install that into /usr/lib, but build
>        a separate static libbfd for gdb.  (hmm, what about ports with
>        new binutils but old gdb... then gdb is goin to be wanting the
>        new libbfd, which isn't so bad maybe... the alternative is to
>        upgrade binutils after gdb... this is a one-time issue.)
>	we can just copy gnu/lib/lib{bfd,opcodes} into
>	gnu/usr.bin/binutils and build/link/install them from there..
>
>
>in my mind, the only way we can really have a merged tree is if we
>tracked the CVS versions of all tree parts of the tools and i don't
>think anyone would want us to do that :-)
>
>
>
>.mrg.
>
>
>