Template Version: @(#)sac_nextcase %I% %G% SMI This information is Copyright 2008 Sun Microsystems 1. Introduction 1.1. Project/Component Working Name: GNU binutils version 4.3.x 1.2. Name of Document Author/Supplier: Author: Stefan Teleman 1.3 Date of This Document: 23 October, 2008 4. Technical Description Including the GNU Binary Utilities [ GNU binutils ] 2.17 with Solaris
Stefan Teleman <Stefan.Teleman at Sun.COM> October 23, 2008 1. Summary and motivation The GNU binutils [ version 2.15 ] [0] have already been included in the SFW Consolidation, in Solaris 10 FCS. [1] This FastTrack proposes the Integration of a more recent version of GNU binutils, which is compatible with Versions 4.3.x of the GNU Compiler Collection [ GCC ]. [2] This Case seeks Micro/Patch release binding. 2. Technical issues 2.1. Key objects /usr/gnu/gcc4/bin/addr2line /usr/gnu/gcc4/bin/c++filt /usr/gnu/gcc4/bin/gas /usr/gnu/gcc4/bin/gld /usr/gnu/gcc4/bin/gnm /usr/gnu/gcc4/bin/gobjcopy /usr/gnu/gcc4/bin/gobjdump /usr/gnu/gcc4/bin/gprof /usr/gnu/gcc4/bin/greadelf /usr/gnu/gcc4/bin/gsize /usr/gnu/gcc4/bin/gstrings /usr/gnu/gcc4/bin/gstrip /usr/gnu/gcc4/include/ansidecl.h /usr/gnu/gcc4/include/bfd.h /usr/gnu/gcc4/include/bfdlink.h /usr/gnu/gcc4/include/dis-asm.h /usr/gnu/gcc4/include/symcat.h /usr/gnu/gcc4/info/gas.info /usr/gnu/gcc4/info/bfd.info /usr/gnu/gcc4/info/binutils.info /usr/gnu/gcc4/info/configure.info /usr/gnu/gcc4/info/gprof.info /usr/gnu/gcc4/info/gld.info /usr/gnu/gcc4/info/standards.info /usr/gnu/gcc4/lib/libbfd-2.17.so /usr/gnu/gcc4/lib/libbfd.so -> libbfd-2.17.so /usr/gnu/gcc4/lib/libopcodes-2.17.so /usr/gnu/gcc4/lib/libopcodes.so -> libopcodes-2.17.so /usr/gnu/gcc4/man/man1/addr2line.1 /usr/gnu/gcc4/man/man1/gas.1 /usr/gnu/gcc4/man/man1/c++filt.1 /usr/gnu/gcc4/man/man1/gprof.1 /usr/gnu/gcc4/man/man1/gld.1 /usr/gnu/gcc4/man/man1/gnm.1 /usr/gnu/gcc4/man/man1/gobjcopy.1 /usr/gnu/gcc4/man/man1/gobjdump.1 /usr/gnu/gcc4/man/man1/greadelf.1 /usr/gnu/gcc4/man/man1/gsize.1 /usr/gnu/gcc4/man/man1/gstrings.1 /usr/gnu/gcc4/man/man1/gstrip.1 The following symbolic links will be provided under /usr/gnu, following the precedent set by PSARC/2007/047. [3] /usr/gnu/bin/addr2line -> /usr/gnu/gcc4/bin/addr2line /usr/gnu/bin/c++filt -> /usr/gnu/gcc4/bin/c++filt /usr/gnu/bin/gas -> /usr/gnu/gcc4/bin/gas /usr/gnu/bin/gld -> /usr/gnu/gcc4/bin/gld /usr/gnu/bin/gnm -> /usr/gnu/gcc4/bin/gnm /usr/gnu/bin/gobjcopy -> /usr/gnu/gcc4/bin/gobjcopy /usr/gnu/bin/gobjdump -> /usr/gnu/gcc4/bin/gobjdump /usr/gnu/bin/gprof -> /usr/gnu/gcc4/bin/gprof /usr/gnu/bin/greadelf -> /usr/gnu/gcc4/bin/greadelf /usr/gnu/bin/gsize -> /usr/gnu/gcc4/bin/gsize /usr/gnu/bin/gstrings -> /usr/gnu/gcc4/bin/gstrings /usr/gnu/bin/gstrip -> /usr/gnu/gcc4/bin/gstrip /usr/gnu/share/man/man1/addr2line.1 -> /usr/gnu/gcc4/man/man1/addr2line.1 /usr/gnu/share/man/man1/gas.1 -> /usr/gnu/gcc4/man/man1/gas.1 /usr/gnu/share/man/man1/c++filt.1 -> /usr/gnu/gcc4/man/man1/c++filt.1 /usr/gnu/share/man/man1/gprof.1 -> /usr/gnu/gcc4/man/man1/gprof.1 /usr/gnu/share/man/man1/gld.1 -> /usr/gnu/gcc4/man/man1/gld.1 /usr/gnu/share/man/man1/gnm.1 -> /usr/gnu/gcc4/man/man1/gnm.1 /usr/gnu/share/man/man1/gobjcopy.1 -> /usr/gnu/gcc4/man/man1/gobjcopy.1 /usr/gnu/share/man/man1/gobjdump.1 -> /usr/gnu/gcc4/man/man1/gobjdump.1 /usr/gnu/share/man/man1/greadelf.1 -> /usr/gnu/gcc4/man/man1/greadelf.1 /usr/gnu/share/man/man1/gsize.1 -> /usr/gnu/gcc4/man/man1/gsize.1 /usr/gnu/share/man/man1/gstrings.1 -> /usr/gnu/gcc4/man/man1/gstrings.1 /usr/gnu/share/man/man1/gstrip.1 -> /usr/gnu/gcc4/man/man1/gstrip.1 2.2. Documentation GNU binutils provide documentation in GNU texinfo, and in UNIX man page formats. Both documentation sets will be included in this Integration. 3. Interfaces 3.1. Interface Stability GNU binutils only provides executables. Although two shared libraries will be included in this Integration [ libbfd.so and libopcodes.so ], the interfaces exposed by these shared objects are classified as Project Private, and should no be relied upon, or used, by any other userland software application. The Interfaces exposed by GNU binutils' executables provide some level of consistency across releases. However, the binutils project is controlled by a group of developers external to SMI. It is to be expected that incompatible changes in Interfaces may occur in the future. 3.2. Imported Interfaces GNU binutils imports interfaces from the Standard C Library, the Standard Math Library, and the GCC-Dependent libgcc_s library. The latter creates a circular dependency between the compiler collection, and the binutils collection the compiler relies upon. This circular dependency will be intentionally broken at software construction time, by building GNU binutils twice: once with the existing GCC installed on the build system, and linked against the system available dynamic libgcc_s.so, and again with the newly built GCC, linking against the new GCC's static libgcc_s.a. This awkward software construction mechanism will eliminate binutils' run-time dynamic dependency on libgcc_s.so. 3.3. Exported Interfaces As a general principle, the command-line interfaces exposed by GNU binutils' executables, and ancillary documentation materials, will be formally assigned an Uncommmitted classification level. All other interfaces expsed by GNU binutils are classified as Project Private. NAME STABILITY NOTES SUNWgnu-binutils217 Uncommitted Package Name /usr/gnu/gcc4/bin/addr2line Uncommitted Executable /usr/gnu/gcc4/bin/c++filt Uncommitted Executable /usr/gnu/gcc4/bin/gas Uncommitted Executable /usr/gnu/gcc4/bin/gld Uncommitted Executable /usr/gnu/gcc4/bin/gnm Uncommitted Executable /usr/gnu/gcc4/bin/gobjcopy Uncommitted Executable /usr/gnu/gcc4/bin/gobjdump Uncommitted Executable /usr/gnu/gcc4/bin/gprof Uncommitted Executable /usr/gnu/gcc4/bin/greadelf Uncommitted Executable /usr/gnu/gcc4/bin/gsize Uncommitted Executable /usr/gnu/gcc4/bin/gstrings Uncommitted Executable /usr/gnu/gcc4/bin/gstrip Uncommitted Executable /usr/gnu/gcc4/info/gas.info Uncommitted GNU texinfo /usr/gnu/gcc4/info/bfd.info Uncommitted GNU texinfo /usr/gnu/gcc4/info/binutils.info Uncommitted GNU texinfo /usr/gnu/gcc4/info/configure.info Uncommitted GNU texinfo /usr/gnu/gcc4/info/gprof.info Uncommitted GNU texinfo /usr/gnu/gcc4/info/gld.info Uncommitted GNU texinfo /usr/gnu/gcc4/info/standards.info Uncommitted GNU texinfo /usr/gnu/gcc4/man/man1/addr2line.1 Uncommitted UNIX man page /usr/gnu/gcc4/man/man1/gas.1 Uncommitted UNIX man page /usr/gnu/gcc4/man/man1/c++filt.1 Uncommitted UNIX man page /usr/gnu/gcc4/man/man1/gprof.1 Uncommitted UNIX man page /usr/gnu/gcc4/man/man1/gld.1 Uncommitted UNIX man page /usr/gnu/gcc4/man/man1/gnm.1 Uncommitted UNIX man page /usr/gnu/gcc4/man/man1/gobjcopy.1 Uncommitted UNIX man page /usr/gnu/gcc4/man/man1/gobjdump.1 Uncommitted UNIX man page /usr/gnu/gcc4/man/man1/greadelf.1 Uncommitted UNIX man page /usr/gnu/gcc4/man/man1/gsize.1 Uncommitted UNIX man page /usr/gnu/gcc4/man/man1/gstrings.1 Uncommitted UNIX man page /usr/gnu/gcc4/man/man1/gstrip.1 Uncommitted UNIX man page Identical Interface Stability Classification levels apply to the corresponding symbolic links in /usr/gnu/bin and /usr/gnu/share/man. /usr/gnu/gcc4/include/ansidecl.h Project Private Header file /usr/gnu/gcc4/include/bfd.h Project Private Header file /usr/gnu/gcc4/include/bfdlink.h Project Private Header file /usr/gnu/gcc4/include/dis-asm.h Project Private Header file /usr/gnu/gcc4/include/symcat.h Project Private Header file /usr/gnu/gcc4/lib/libbfd-2.17.so Project Private Shared Library /usr/gnu/gcc4/lib/libbfd.so -> libbfd-2.17.so Project Private Symbolic link /usr/gnu/gcc4/lib/libopcodes-2.17.so Project Private Shared Library /usr/gnu/gcc4/lib/libopcodes.so -> libopcodes-2.17.so Project Private Symbolic link 4. References [0] http://www.gnu.org/software/binutils/ [1] PSARC/2004/742 [2] http://gcc.gnu.org/ [3] PSARC/2007/047 6. Resources and Schedule 6.4. Steering Committee requested information 6.4.1. Consolidation C-team Name: SFW 6.5. ARC review type: FastTrack 6.6. ARC Exposure: open