Subject: gcc/binutils/gdb import proposal
To: None <tech-toolchain@netbsd.org>
From: Todd Vierling <tv@pobox.com>
List: tech-toolchain
Date: 07/16/2000 16:32:27
Here's a revision of the toolchain update layout, available for comment.
No date is yet set for the import, as I do anticipate several comments. 8^)
Note that this will require careful importing, for which I'll create some
scripts to make the job less human-error-prone--and have a checked-in text
file documenting the procedures for the future (...so we don't end up with a
frazzled mess like we have now in gnu/dist).
***** SOURCE LAYOUT *****
gnusrc/gnu/dist/toolchain/
Top level directory. This keeps the tools that can be built
as a "bulk cross-tools unit" together.
The files in this directory, and in config/, will be taken on a
datestamped basis from source.redhat.com:/cvs/src
(formerly sourceware.cygnus.com). This keeps us as up to date as
possible with config.guess and the other "non-source-specific" files.
Once integrated, a complete set of cross tools should be creatable
on any host platform simply by using this directory tree.
gnusrc/gnu/dist/toolchain/{gcc,contrib,INSTALL,install,
libio,libstdc++,libobjc,libchill,libf2c}
These will come from gcc-2.95.2, and track gcc versions.
The testsuites will be imported, and a test Makefile structure
created to make use of them.
gnusrc/gnu/dist/toolchain/{libjava,boehm-gc,zip}
These will come from libgcj-2.95.1, and track libgcj as it is updated
alongside gcc. This will use the NetBSD-supplied zlib. I am
researching the license on a "minizip" program to allow for the creation
of the zip (jar) files with zlib without needing the infozip code.
gnusrc/gnu/dist/toolchain/{bfd,opcodes,gas,ld,gprof,include,libiberty}
These will come from binutils-2.10. The testsuites will be imported.
gnusrc/gnu/dist/toolchain/{gdb,sim}
These will come from gdb-5.0. gdb will use libedit's readline
emulation.
gnusrc/gnu/usr.bin/gcc/frontend/{cc,c++,cpp,c89,fort77,gcj}
gnusrc/gnu/usr.bin/gcc/backend/{collect2,common,cc1,cc1plus,cc1obj,f771,jc1}
gnusrc/gnu/usr.bin/gcc/runtime/{libgcc,libgccP,libgcj,libstdc++,
libobjc,libchill}
Build structure for gcc-2.95.2. "libgcc" is compiled -fpic;
"libgccP" is compiled -fPIC, only on platforms needing an alternate.
This layout comes from several requests to group gcc's build structure
into one top-level tree.
gnusrc/gnu/usr.bin/binutils/{addr2line,ar,as,c++filt,common,gprof,ld,nm,
objcopy,objdump,ranlib,size,strings,strip,
libbfd,libopcodes,gdb}
Build structure for binutils-2.10 and gdb-5.0. gdb is grouped here
based on two factors (grouping of the libbfd-using programs, and the
fact that Cygnus/Redhat actually maintains binutils and gdb together
in the same source tree).
Note the split of libbfd and libopcodes; some binutils tools
do not need the overhead of resolving the libopcodes objects.
***** INSTALL LAYOUT *****
/usr/bin/
Contains all command line executable programs.
/usr/lib/{libbfd,libopcodes}.so
Shared objects for commonly reused code.
/usr/libexec/gcc/
Contains collect2, cc1*, f771, and jc1.
/usr/share/ldscripts/
Contains ld scripts for all platforms.
/usr/share/locale/*/
Contains the multilanguage files for gcc and binutils.
--
-- Todd Vierling (tv@pobox.com)