Rainer Orth wrote:
> George Vasick <George.Vasick at Sun.COM> writes:
> 
>> Attached, please find the revision 3 of the GCC proposal addressing the
>> following feedback:
> 
> Thanks, looks much better overall.
> 
>> 1)  GCC should install in /usr/bin/gcc/<major.minor>.
> 
> Darren already commented on this: I think this is meant to be
> /usr/gcc/<major.minor> instead, although the spec uses both forms.
> Please clarify.

Sorry, that was a typo.  The correct location in all cases is
/usr/gcc/<major.minor>

> 
>> 2)  Committed interfaces stability is too high and should be lowered to
>> uncommitted.
> 
> Seems right for the moment (perhaps with the exception of libssp), but
> as I mentioned this is an area where more work needs to be invested into
> GCC in the future: e.g. libstdc++ uses version maps to only expose
> public symbols, but that requires GNU ld features at the moment.  I'll
> check with the Sun linker guys what do do about this.
> 
>> 3)  Gccfss components should be broken out into a separate package.
>>
>> 4)  libgomp.spec should be moved to version specific location.
> 
> Good.
> 
>> Issues not addressed directly in the updated proposal:
>>
>> Issue 1:
>> One additional issue occurred to me in the meantime: does it really make
>> sense to deliver every version of the runtime libs in its own package,
>> rather than having separate packages for (say) all libstdc++ runtime libs
>> together?
>>
>> Response:
>> Runtime library packages are versioned only by their major number. There
>> will not be multiple packages for various minor and micro versions of the
>> libraries.  For example, GCC 4.3.3 includes libstdc++.so.6.0.10 while GCC
>> 4.4. includes libstdc++.so.6.0.13.  The current version of SUNWgcclibstdc6
>> will contain libstdc++.so.6.0.10.  When we release GCC 4.4, the
>> SUNWgcclibstdc6 will be updated to contain libstdc++.so.6.0.13. At any
>> point, SUNWgcclibstdc6 will only include the latest version of
>> libstdc++.so.6.x.y.
> 
> I never assumed otherwise.  Even so, it may be an option to have only a
> single package delivering libstdc++.so.6 and (say) libstdc++.so.7
> instead of splitting, just like the Studio compilers deliver all major
> versions of libF77.so in SPROl77sx.  I don't really think users know
> (and care) about specific shared library to be installed separately.

OK, now I get what you mean.

I proposed suffixing the library package names with their major versions
to better manage both new libraries coming in and old libraries going
away.  Maintaining a single package for all major versions of a library
would potentially force users to install multiple version of a library
even if they are sticking to a single version of GCC.

I don't have a strong opinion on this and will make the change.

> 
>> Issue 2:
>> It's obvious you're including gccfss, but what are the consequences?  Do
>> you replace the GCC SPARC backend by the Sun backend here?  This may not be
>> appropriate, since this heavily deviates from the upstream FSF GCC, and may
>> cause problems.  Have you run the GCC testsuite this way and compared the
>> results to those with the GCC backend?  I think it should be possible for
>> the user to select between gccfss and the regular GCC backend here.
>>
>> Response:
>> We provide both the GCC backend and the Sun backend.  We include the GCC
>> testsuite in our testing of the Sun backend.  The user is able to invoke
>> the GCC backend under flag control.
> 
> How does this work (i.e. which flags are used), and what is the default?

The default is the Sun backend and the flag to override is -frtl-backend.

> 
>> Issue 3:
>> I hope you use Sun ld everywhere!
>>
>> Response:
>> Yes.
>>
>>
>> Are there any other questions or concerns that I missed?
> 
> I don't remember any.
> 
>> 1. Introduction
>>    1.1. Project/Component Working Name:
>>      GCC4: The GNU Compiler Collection 4.X
> 
> Perhaps this should be changed to GCC 4.3?  I expect there will be
> similar cases for GCC 4.4 in the future, so it's better to distinguish
> them, especially if future cases add additional languages, like Ada and
> Java.

Updated in the spec.

> 
>> 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:
>>      Versions of GCC will be installed in /usr/gcc/<major.minor>, in
>>      this case /usr/bin/gcc/4.3/[bin, lib, include,info, man,
>>      share].  The runtime libraries will be installed /usr/lib with
>>      major, minor, and micro 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.
> 
> From the file list, it seems like you will be integrating GCC 4.3.3?
> Why not go straight to the latest 4.3 release, 4.3.4?

Just lead time at this point.  Since this packaging corrects issues with
the 432 release, I want to get it out sooner instead of later.

> 
>>     4.5. Interfaces:
>>
>>      Exported Interfaces                     Comments
>>      ===================                     ========
>>      SUNWgcc4                                Latest GCC installed.
>>                                              All interfaces Uncommitted.
>>      usr/bin/c++                             symlink to latest c++
>>      usr/bin/cpp                             symlink to latest cpp
>>      usr/bin/g++                             symlink to latest g++
>>      usr/bin/gcc                             symlink to latest gcc
>>      usr/bin/gccbug                          symlink to latest gccbug
> 
> The email submission of GCC bugs hasn't worked for a long time and the
> GCC project doesn't seem inclined to fix this any time soon, so it would
> be better to not link gccbug into /usr/bin at the moment.

Also updated in the spec.

> 
>>      Exported Interfaces                     Comments
>>      ===================                     ========
>>      SUNWgcc43                               GCC 4.3.X package.
>>                                              All interfaces Uncommitted.
>>      
>> usr/gcc/4.3/lib/<mach64>/libobjc_gc.so=../../../../lib/<mach64>/libobjc_gc.so.2
> 
> You seem to be configuring GCC with --enable-objc-gc, which is not the
> default?  Why?

Correct.  It is optional under flag control to the gcc command.  Is
there a reason we should not provide this feature to our users?


Thanks,
George

> 
>       Rainer
> 


Reply via email to