This information is Copyright 2009 Sun Microsystems 1. Introduction 1.1. Project/Component Working Name: GCC4: The GNU Compiler Collection 4.X 1.2. Name of Document Author/Supplier: Author: George Vasick 1.3 Date of This Document: 21 October, 2009 4. Technical Description Copyright 2009 Sun Microsystems
1. Introduction 1.1. Project/Component Working Name: GCC4: The GNU Compiler Collection 4.X 1.2. Name of Document Author/Supplier: George Vasick 1.3. Date of This Document: 10/19/2009 1.5. Email Aliases: 1.5.1. Responsible Manager: kurt.goebel at sun.com 1.5.2. Responsible Engineer: george.vasick at sun.com 1.5.4. Interest List: sfwnv-discuss at opensolaris.org 2. Project Summary 2.1. Project Description: Provide GCC 4.X and allow for the coexistence of multiple versions of GCC installed simultaneously. GCC 3.4.3, the current build compiler for OpenSolaris and Nevada, will remain unchanged in /usr/sfw. 4. Technical Description: 4.1. Details: Commands will be installed in /usr/bin with versioned suffixes, e.g. gcc-4.3.2. The runtime libraries will be installed /usr/lib with major, minor, and patch suffixes as appropriate along with a link for the major version, e.g libstdc++.so.6.0.10 and libstdc++.so.6 -> libstdc++.so.6.0.10. See section 4.5 Interfaces below for additional details. This case proposes to modify the previous release, LSARC/2008/776 GNU Developer Collection, as follows: 1) Localized message files will be moved from /usr/share/locale to /usr/lib/gcc/<machine>/<version>/share/locale. 2) Runtime libraries will be refactored from a single package into multiple packages, one package per library, to allow individual libraries to be upgraded in future releases. 4.2. Bug/RFE Number(s): 6674032: Introduce GCC 4.3.x (or later) in Nevada 4.5. Interfaces: Exported Interfaces Comments =================== ======== SUNWgcc432 GCC 432 compiler package. All interfaces Uncommited. usr/bin/c++-4.3.2=g++-4.3.2 usr/bin/cpp-4.3.2 usr/bin/g++-4.3.2 usr/bin/gcc-4.3.2 usr/bin/gccbug-4.3.2 usr/bin/gcov-4.3.2 usr/bin/gfortran-4.3.2 usr/bin/<machine>-c++-4.3.2=g++-4.3.2 usr/bin/<machine>-g++-4.3.2=g++-4.3.2 usr/bin/<machine>-gcc-4.3.2=gcc-4.3.2 usr/bin/<machine>-gfortran-4.3.2=gfortran-4.3.2 usr/include/c++/4.3.2/* usr/lib/gcc/<machine> usr/lib/gcc/<machine>/4.3.2 usr/lib/gcc/<machine>/4.3.2/cc1 usr/lib/gcc/<machine>/4.3.2/cc1obj usr/lib/gcc/<machine>/4.3.2/cc1plus usr/lib/gcc/<machine>/4.3.2/collect2 usr/lib/gcc/<machine>/4.3.2/crt1.o usr/lib/gcc/<machine>/4.3.2/crtbegin.o usr/lib/gcc/<machine>/4.3.2/crtend.o usr/lib/gcc/<machine>/4.3.2/crtfastmath.o usr/lib/gcc/<machine>/4.3.2/crti.o usr/lib/gcc/<machine>/4.3.2/crtn.o usr/lib/gcc/<machine>/4.3.2/f951 usr/lib/gcc/<machine>/4.3.2/finclude/* usr/lib/gcc/<machine>/4.3.2/gcrt1.o usr/lib/gcc/<machine>/4.3.2/gmon.o usr/lib/gcc/<machine>/4.3.2/include usr/lib/gcc/<machine>/4.3.2/include-fixed/* usr/lib/gcc/<machine>/4.3.2/include/* usr/lib/gcc/<machine>/4.3.2/install-tools/* usr/lib/gcc/<machine>/4.3.2/libgcc.a usr/lib/gcc/<machine>/4.3.2/libgcc_eh.a usr/lib/gcc/<machine>/4.3.2/libgcc_s.so=../../../libgcc_s.so.1 usr/lib/gcc/<machine>/4.3.2/libgcov.a usr/lib/gcc/<machine>/4.3.2/libgfortran.so=../../../libgfortran.so.3 usr/lib/gcc/<machine>/4.3.2/libgfortranbegin.a usr/lib/gcc/<machine>/4.3.2/libgfortranbegin.la usr/lib/gcc/<machine>/4.3.2/libgomp.so=../../../libgomp.so.1 usr/lib/gcc/<machine>/4.3.2/libobjc.so=../../../libobjc.so.2 usr/lib/gcc/<machine>/4.3.2/libobjc_gc.so=../../../libobjc_gc.so.2 usr/lib/gcc/<machine>/4.3.2/libssp.so=../../../libssp.so.0 usr/lib/gcc/<machine>/4.3.2/libstdc++.so=../../../libstdc++.so.6 usr/lib/gcc/<machine>/4.3.2/share/locale* usr/lib/gcc/<machine>/4.3.2/<mach64>/crt1.o usr/lib/gcc/<machine>/4.3.2/<mach64>/crtbegin.o usr/lib/gcc/<machine>/4.3.2/<mach64>/crtend.o usr/lib/gcc/<machine>/4.3.2/<mach64>/crtfastmath.o usr/lib/gcc/<machine>/4.3.2/<mach64>/crti.o usr/lib/gcc/<machine>/4.3.2/<mach64>/crtn.o usr/lib/gcc/<machine>/4.3.2/<mach64>/gcrt1.o usr/lib/gcc/<machine>/4.3.2/<mach64>/gmon.o usr/lib/gcc/<machine>/4.3.2/<mach64>/libgcc.a usr/lib/gcc/<machine>/4.3.2/<mach64>/libgcc_eh.a usr/lib/gcc/<machine>/4.3.2/<mach64>/libgcc_s.so=../../../../<mach64>/libgcc_s.so.1 usr/lib/gcc/<machine>/4.3.2/<mach64>/libgcov.a usr/lib/gcc/<machine>/4.3.2/<mach64>/libgfortran.so=../../../../<mach64>/libgfortran.so.3 usr/lib/gcc/<machine>/4.3.2/<mach64>/libgfortranbegin.a usr/lib/gcc/<machine>/4.3.2/<mach64>/libgfortranbegin.la usr/lib/gcc/<machine>/4.3.2/<mach64>/libgomp.so=../../../../<mach64>/libgomp.so.1 usr/lib/gcc/<machine>/4.3.2/<mach64>/libobjc.so=../../../../<mach64>/libobjc.so.2 usr/lib/gcc/<machine>/4.3.2/<mach64>/libobjc_gc.so=../../../../<mach64>/libobjc_gc.so.2 usr/lib/gcc/<machine>/4.3.2/<mach64>/libssp.so=../../../../<mach64>/libssp.so.0 usr/lib/gcc/<machine>/4.3.2/<mach64>/libstdc++.so=../../../../<mach64>/libstdc++.so.6 usr/lib/gcc/<machine>/gccfss/4.3.2/LEGAL/* Sparc only. usr/lib/gcc/<machine>/gccfss/4.3.2/prod/* Sparc only. usr/share/man/man1/cpp-4.3.2.1 usr/share/man/man1/g++-4.3.2.1 usr/share/man/man1/gcc-4.3.2.1 usr/share/man/man1/gcov-4.3.2.1 usr/share/man/man1/gfortran-4.3.2.1 Exported Interfaces Comments =================== ======== SUNWgcc433 GCC 433 compiler package. All interfaces Uncommitted. usr/bin/c++-4.3.3=g++-4.3.3 usr/bin/cpp-4.3.3 usr/bin/g++-4.3.3 usr/bin/gcc-4.3.3 usr/bin/gccbug-4.3.3 usr/bin/gcov-4.3.3 usr/bin/gfortran-4.3.3 usr/bin/<machine>-c++-4.3.3=g++-4.3.3 usr/bin/<machine>-g++-4.3.3=g++-4.3.3 usr/bin/<machine>-gcc-4.3.3=gcc-4.3.3 usr/bin/<machine>-gfortran-4.3.3=gfortran-4.3.3 usr/include/c++/4.3.3/* usr/lib/gcc/<machine>/4.3.3/cc1 usr/lib/gcc/<machine>/4.3.3/cc1obj usr/lib/gcc/<machine>/4.3.3/cc1plus usr/lib/gcc/<machine>/4.3.3/collect2 usr/lib/gcc/<machine>/4.3.3/crt1.o usr/lib/gcc/<machine>/4.3.3/crtbegin.o usr/lib/gcc/<machine>/4.3.3/crtend.o usr/lib/gcc/<machine>/4.3.3/crtfastmath.o usr/lib/gcc/<machine>/4.3.3/crti.o usr/lib/gcc/<machine>/4.3.3/crtn.o usr/lib/gcc/<machine>/4.3.3/f951 usr/lib/gcc/<machine>/4.3.3/finclude/* usr/lib/gcc/<machine>/4.3.3/gcrt1.o usr/lib/gcc/<machine>/4.3.3/gmon.o usr/lib/gcc/<machine>/4.3.3/include usr/lib/gcc/<machine>/4.3.3/include-fixed/* usr/lib/gcc/<machine>/4.3.3/include/* usr/lib/gcc/<machine>/4.3.3/install-tools/* usr/lib/gcc/<machine>/4.3.3/libgcc.a usr/lib/gcc/<machine>/4.3.3/libgcc_eh.a usr/lib/gcc/<machine>/4.3.3/libgcc_s.so=../../../libgcc_s.so.1 usr/lib/gcc/<machine>/4.3.3/libgcov.a usr/lib/gcc/<machine>/4.3.3/libgfortran.so=../../../libgfortran.so.3 usr/lib/gcc/<machine>/4.3.3/libgfortranbegin.a usr/lib/gcc/<machine>/4.3.3/libgfortranbegin.la usr/lib/gcc/<machine>/4.3.3/libgomp.so=../../../libgomp.so.1 usr/lib/gcc/<machine>/4.3.3/libobjc.so=../../../libobjc.so.2 usr/lib/gcc/<machine>/4.3.3/libobjc_gc.so=../../../libobjc_gc.so.2 usr/lib/gcc/<machine>/4.3.3/libssp.so=../../../libssp.so.0 usr/lib/gcc/<machine>/4.3.3/libstdc++.so=../../../libstdc++.so.6 usr/lib/gcc/<machine>/4.3.3/share/locale* usr/lib/gcc/<machine>/4.3.3/<mach64>/crt1.o usr/lib/gcc/<machine>/4.3.3/<mach64>/crtbegin.o usr/lib/gcc/<machine>/4.3.3/<mach64>/crtend.o usr/lib/gcc/<machine>/4.3.3/<mach64>/crtfastmath.o usr/lib/gcc/<machine>/4.3.3/<mach64>/crti.o usr/lib/gcc/<machine>/4.3.3/<mach64>/crtn.o usr/lib/gcc/<machine>/4.3.3/<mach64>/gcrt1.o usr/lib/gcc/<machine>/4.3.3/<mach64>/gmon.o usr/lib/gcc/<machine>/4.3.3/<mach64>/libgcc.a usr/lib/gcc/<machine>/4.3.3/<mach64>/libgcc_eh.a usr/lib/gcc/<machine>/4.3.3/<mach64>/libgcc_s.so=../../../../<mach64>/libgcc_s.so.1 usr/lib/gcc/<machine>/4.3.3/<mach64>/libgcov.a usr/lib/gcc/<machine>/4.3.3/<mach64>/libgfortran.so=../../../../<mach64>/libgfortran.so.3 usr/lib/gcc/<machine>/4.3.3/<mach64>/libgfortranbegin.a usr/lib/gcc/<machine>/4.3.3/<mach64>/libgfortranbegin.la usr/lib/gcc/<machine>/4.3.3/<mach64>/libgomp.so=../../../../<mach64>/libgomp.so.1 usr/lib/gcc/<machine>/4.3.3/<mach64>/libobjc.so=../../../../<mach64>/libobjc.so.2 usr/lib/gcc/<machine>/4.3.3/<mach64>/libobjc_gc.so=../../../../<mach64>/libobjc_gc.so.2 usr/lib/gcc/<machine>/4.3.3/<mach64>/libssp.so=../../../../<mach64>/libssp.so.0 usr/lib/gcc/<machine>/4.3.3/<mach64>/libstdc++.so=../../../../<mach64>/libstdc++.so.6 usr/lib/gcc/<machine>/gccfss/4.3.3/LEGAL/* Sparc only. usr/lib/gcc/<machine>/gccfss/4.3.3/prod/* Sparc only. usr/share/man/man1/cpp-4.3.3.1 usr/share/man/man1/g++-4.3.3.1 usr/share/man/man1/gcc-4.3.3.1 usr/share/man/man1/gcov-4.3.3.1 usr/share/man/man1/gfortran-4.3.3.1 Exported Interfaces Comments =================== ======== SUNWgccdoc Common man and info pages. All interfaces Uncommitted. usr/share/info/cpp.info usr/share/info/cppinternals.info usr/share/info/gcc.info usr/share/info/gccinstall.info usr/share/info/gccint.info usr/share/info/gfortran.info usr/share/info/libgomp.info usr/share/man/man7 usr/share/man/man7/fsf-funding.7 usr/share/man/man7/gfdl.7 usr/share/man/man7/gpl.7 Exported Interfaces Comments =================== ======== SUNWgcclibgcc1 Low level runtime library package. All interfaces Committed. usr/lib/libgcc_s.so.1 usr/lib/<mach64>/libgcc_s.so.1 Exported Interfaces Comments =================== ======== SUNWgcclibgfortran3 Fortran runtime library package. All interfaces committed. usr/lib/libgfortran.so.3=libgfortran.so.3.0.0 usr/lib/libgfortran.so.3.0.0 usr/lib/<mach64>/libgfortran.so.3=libgfortran.so.3.0.0 usr/lib/<mach64>/libgfortran.so.3.0.0 Exported Interfaces Comments =================== ======== SUNWgcclibgomp1 OpenMP runtime library package. All interfaces Committed. usr/lib/libgomp.so.1=libgomp.so.1.0.0 usr/lib/libgomp.so.1.0.0 usr/lib/libgomp.spec usr/lib/<mach64>/libgomp.so.1=libgomp.so.1.0.0 usr/lib/<mach64>/libgomp.so.1.0.0 usr/lib/<mach64>/libgomp.spec Exported Interfaces Comments =================== ======== SUNWgcclibobjc2 Objective C runtime library package. All interfaces Committed. usr/lib/libobjc.so.2=libobjc.so.2.0.0 usr/lib/libobjc.so.2.0.0 usr/lib/libobjc_gc.so.2=libobjc_gc.so.2.0.0 usr/lib/libobjc_gc.so.2.0.0 usr/lib/<mach64>/libobjc.so.2=libobjc.so.2.0.0 usr/lib/<mach64>/libobjc.so.2.0.0 usr/lib/<mach64>/libobjc_gc.so.2=libobjc_gc.so.2.0.0 usr/lib/<mach64>/libobjc_gc.so.2.0.0 Exported Interfaces Comments =================== ======== SUNWgcclibssp0 Stack Smashing Protection runtime library package. All interfaces Committed. usr/lib/libssp.so.0=libssp.so.0.0.0 usr/lib/libssp.so.0.0.0 usr/lib/<mach64>/libssp.so.0=libssp.so.0.0.0 usr/lib/<mach64>/libssp.so.0.0.0 Exported Interfaces Comments =================== ======== SUNWgcclibstdc6 C++ runtime library package. All interfaces Committed. usr/lib/libstdc++.so.6=libstdc++.so.6.0.10 usr/lib/libstdc++.so.6.0.10 usr/lib/<mach64>/libstdc++.so.6=libstdc++.so.6.0.10 usr/lib/<mach64>/libstdc++.so.6.0.10 Imported Interfaces =================== libc.so.1 libgmp.so libm.so.2 libmpfr.so binutils ld 4.6. Doc Impact: Current man and info pages will be provided. 4.10. Packaging & Delivery: SUNWgcc432 SUNWgcc433 SUNWgccdoc SUNWgcclibgcc1 SUNWgcclibgfortran3 SUNWgcclibgomp1 SUNWgcclibobjc2 SUNWgcclibssp0 SUNWgcclibstdc6 5. Reference Documents: LSARC/2008/776 GNU Developer Collection 6. Resources and Schedule: 6.5. ARC review type: FastTrack 6.6. ARC Exposure: open 6. Resources and Schedule 6.4. Steering Committee requested information 6.4.1. Consolidation C-team Name: SUNWgcc432 6.5. ARC review type: FastTrack 6.6. ARC Exposure: open