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


Reply via email to