On Tuesday 22 July 2008 01:16:30 Jeremy Chadwick wrote:
> On Tue, Jul 22, 2008 at 01:07:53AM -0700, David Southwell wrote:
> > On Monday 21 July 2008 23:27:49 Garrett Cooper wrote:
> > > On Mon, Jul 21, 2008 at 4:09 AM, Jeremy Chadwick <[EMAIL PROTECTED]> 
wrote:
> > > > On Mon, Jul 21, 2008 at 03:11:25AM -0700, [EMAIL PROTECTED] wrote:
> > > >> FreeBSD **.vizion2000.net 7.0-STABLE FreeBSD 7.0-STABLE #0: Wed Jul
> > > >> 16 09:27:38 PDT 2008    
> > > >> @**.vizion2000.net:/usr/obj/usr/src/sys/GENERIC amd64 # pkg_info
> > > >> |grep gcc
> > > >> gcc-4.1.3_20080630  GNU Compiler Collection 4.1
> > > >> gcc-4.2.5_20080702  GNU Compiler Collection 4.2
> > > >> gccmakedep-1.0.2    Create dependencies in makefiles using 'gcc -M'
> > > >>
> > > >> Should both versions be installed?
> > > >
> > > > That depends.  Are you using any ports which depend on specific
> > > > versions of GCC?  The base system version comes with gcc 4.2.1. 
> > > > There may be ports which require older or newer GCC, however.
> > > >
> > > > "pkg_info -R" should help you determine what ports are dependant upon
> > > > those two GCC ports.
> > >
> > > There isn't anything wrong with having multiple compilers installed on
> > > a given system, insomuch as they install within separate directories
> > > or are prefixed differently. The sym-/hard-links for the compiler last
> > > installed may be the one that gets used though (not sure because I
> > > don't have any experience installing gcc from ports on FreeBSD)...
> > >
> > > >> Do they not place files in same place?
> > > >
> > > > No.
> > >
> > > This ties into the reply above, but if you have a compiler provided by
> > > the base system and a compiler provided by ports, they won't install
> > > in the same location, as ${PREFIX} dictates in ports.
> > >
> > > -Garrett
> >
> > What happens, as in this instance, the system was originally on 6.1 then
> > 6.3 & subsequently upgraded to 7.0?
> >
> > How can I tell whether the versions were installed by the base system or
> > via ports?
>
> The "base system" does not add anything to the ports/pkg database.  The
> reason you have gcc 4.1.3 and gcc 4.2.5 on your machine is because some
> other port/package depended/depends on them.  pkg_info -R will solve
> that mystery.
>
> As I said before: some ports/packages may require a newer (or older)
> version of GCC, in which case, you'll end up with two (or more) versions
> of gcc on your system -- one in the base and one (or more) managed via
> ports.
>
> Regardless of what Garrett and others say about how multiple compilers
> on a system "works great", I do not advocate it.  There are many catches
> which can/will surprise you down the road, especially with regards to
> library linking order, symbol versioning, and a couple other things.
> I'm sorry, but in my eyes it's risky behaviour.  We've been down this
> road before back when perl was in the base system, for similar reasons.
>
> This spawns the whole base vs. ports discussion.  For the record, I am
> one of the minority who wants to do away with the entire "base system"
> concept.  I do not want this thread to start discussing that, though;
> let's stay on topic.  I just wanted to point it out so that you have
> some idea of *why* I say what I do.
>
> > I am not clear about how the system distinguishes between gcc installed
> > via ports and via base system. Indcidentally when did gcc become part of
> > the base system?
>
> It always has been part of the base system, since at least FreeBSD 2.x
> days.  I can't speak for 1.x because I wasn't using FreeBSD then.
>
> Use "pkg_info -R gcc-4.1.3_20080630" to see what ports are reliant upon
> gcc 4.1.3, and rebuild those ports now that you've upgraded to FreeBSD 7
> (which includes gcc 4.2.1 in the base system).  FreeBSD 6 had gcc 3.4.6,
> which is why some ports might have wanted something newr.
>
> Does all of this now make sense?

Makes a very great deal of sense. During a portupgrade -frR ruby* 
(necessitated following a power out during a portupgrade!!!) I had a consol 
message about the two versions of gcc causing a conflict. The conflict was 
resolved by the upgrades. It was that message that started my enquiry. The 
dependencies in 4.1_3 have now been removed from pkgdb following the 
portupgrade and that version deinstalled.

Thank you, and everyone else, for taking the time to answer my question.

David
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to