gcc & libgcc 6/7/8

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

gcc & libgcc 6/7/8

Michael Dickens-4
I recently noticed that gcc7 had an update, and so I've started updating
it. I'll move it to the 7.1 release shortly. There's also a new gcc8
snapshot that I'll look into getting up for folks on the bleeding edge
to try out (as I'm often asked to do for UHD / Volk / GNU Radio).

The question comes up as to what version "libgcc" should be. Right now
libgcc is a subport of gcc6. gcc7 requires an updated version of libgcc,
as I'm guessing gcc8 does.

I can easily leave libgcc attached to gcc6, and then disable
libgcc-devel in favor of libgcc7 and libgcc8 ... but, I'm pretty new at
the gcc / libgcc combo so I'm really not sure what the best or proper
way to go here is.

Looking for thoughts and direction on how to proceed. Thx! - MLD
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: gcc & libgcc 6/7/8

Chris Jones
Hi,

In my opinion libgcc should be based on the latest stable gcc release, which is now gcc7. Right now, if I try and install gcc 7 I get

Oberon ~ > sudo port install gcc7
Portfile changed since last build; discarding previous state.
--->  Computing dependencies for gcc7
Error: Can't install libgcc-devel because conflicting ports are active: libgcc
Error: Follow https://guide.macports.org/#project.tickets to report a bug.
Error: Processing of port gcc7 failed

which in my opinion should be resolved.

Chris

On 29 Jun 2017, at 8:49 pm, Michael Dickens <[hidden email]> wrote:

I recently noticed that gcc7 had an update, and so I've started updating
it. I'll move it to the 7.1 release shortly. There's also a new gcc8
snapshot that I'll look into getting up for folks on the bleeding edge
to try out (as I'm often asked to do for UHD / Volk / GNU Radio).

The question comes up as to what version "libgcc" should be. Right now
libgcc is a subport of gcc6. gcc7 requires an updated version of libgcc,
as I'm guessing gcc8 does.

I can easily leave libgcc attached to gcc6, and then disable
libgcc-devel in favor of libgcc7 and libgcc8 ... but, I'm pretty new at
the gcc / libgcc combo so I'm really not sure what the best or proper
way to go here is.

Looking for thoughts and direction on how to proceed. Thx! - MLD


smime.p7s (2K) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: gcc & libgcc 6/7/8

Ryan Schmidt-24
In reply to this post by Michael Dickens-4

On Jun 29, 2017, at 14:49, Michael Dickens wrote:

> I recently noticed that gcc7 had an update, and so I've started updating
> it. I'll move it to the 7.1 release shortly. There's also a new gcc8
> snapshot that I'll look into getting up for folks on the bleeding edge
> to try out (as I'm often asked to do for UHD / Volk / GNU Radio).
>
> The question comes up as to what version "libgcc" should be. Right now
> libgcc is a subport of gcc6. gcc7 requires an updated version of libgcc,
> as I'm guessing gcc8 does.
>
> I can easily leave libgcc attached to gcc6, and then disable
> libgcc-devel in favor of libgcc7 and libgcc8 ... but, I'm pretty new at
> the gcc / libgcc combo so I'm really not sure what the best or proper
> way to go here is.
>
> Looking for thoughts and direction on how to proceed. Thx! - MLD

I have done these upgrades for the past several years and plan to do this one also. Here is the ticket:

https://trac.macports.org/ticket/54198

I have not looked at René's patches and plan to do the upgrade the same way as I have in years past, by looking at how I did the upgrade last time and adapting that to the current portfiles.

The additional wrinkle this time is that we will need a new libgcc6 port which gcc6 and below must depend on (just as gcc45 and below already depend on libgcc45).

Since this will require rebuilding all gcc ports it will require some time to prepare and a lot of time to test-build before committing.


Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: gcc & libgcc 6/7/8

Michael Dickens-4
In reply to this post by Chris Jones
Back on-list again:

As noted by Ryan, GCC6 and prior use libgcc from GCC6. There is(are) ABI change(s) in libgcc from GCC6 to GCC7 (e.g., some different compatibility versions for libraries; some different symbols in libraries; some different version in filenames). I don't know about GCC8 yet.

Thus, moving to the current libgcc-devel (GCC7) from libgcc (GCC6) requires rebuilding all dependent ports, which for me is about 11 ports & most are pretty quick to rebuild.

Given that Ryan is on top of this, I'll defer to him. I'm happy to help out, but I'll not update GCC7 any longer (to snapshots or the latest release).

Cheers! - MLD

On Thu, Jun 29, 2017, at 06:03 PM, Chris Jones wrote:
On 29 Jun 2017, at 10:48 pm, Ken Cunningham <[hidden email]> wrote:
The plan in the libgcc Portfile says to keep moving libgcc along until there is an incompatible ABI change, and then when that happens, spin off the last compatible version as a separate port (like this one libgcc45 @4.5.4_12 (lang)) to support all the gcc versions that can't move past that version of libgcc,  and then move the rest along.

So long as gcc 5 / 6 are compatible with libgcc 7 or even libgcc 8 , should be no problem.

To install libgcc-devel you need to uninstall or deactivate libgcc first, of course, as they overwrite each other's files.

Yes, of course, i understand this. My point was really unless there is a reason not to the default libgcc port should be  kept up to date with the latest stable release, which is as of now gcc7.  I have no interest to work with a real devel release, so have no plans to update my libgcc port to libgcc-devel. 

Chris


At some point, bootstrapping gets to be a concern.

K
On 2017-06-29, at 1:16 PM, Christopher Jones wrote:

Hi,

In my opinion libgcc should be based on the latest stable gcc release, which is now gcc7. Right now, if I try and install gcc 7 I get

Oberon ~ > sudo port install gcc7
Portfile changed since last build; discarding previous state.
--->  Computing dependencies for gcc7
Error: Can't install libgcc-devel because conflicting ports are active: libgcc
Error: Follow https://guide.macports.org/#project.tickets to report a bug.
Error: Processing of port gcc7 failed

which in my opinion should be resolved.

Chris

On 29 Jun 2017, at 8:49 pm, Michael Dickens <[hidden email]> wrote:

I recently noticed that gcc7 had an update, and so I've started updating
it. I'll move it to the 7.1 release shortly. There's also a new gcc8
snapshot that I'll look into getting up for folks on the bleeding edge
to try out (as I'm often asked to do for UHD / Volk / GNU Radio).

The question comes up as to what version "libgcc" should be. Right now
libgcc is a subport of gcc6. gcc7 requires an updated version of libgcc,
as I'm guessing gcc8 does.

I can easily leave libgcc attached to gcc6, and then disable
libgcc-devel in favor of libgcc7 and libgcc8 ... but, I'm pretty new at
the gcc / libgcc combo so I'm really not sure what the best or proper
way to go here is.

Looking for thoughts and direction on how to proceed. Thx! - MLD

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: gcc & libgcc 6/7/8

mf2k
Hi all,


Is there some reason that the libgcc ports are not named liked the gcc ports? 

In particular, shouldn't there be a libgcc6, libgcc7 and a new libgcc8 port?


Cheers!
Frank

On Jun 30, 2017, at 8:08 AM, Michael Dickens <[hidden email]> wrote:

Back on-list again:

As noted by Ryan, GCC6 and prior use libgcc from GCC6. There is(are) ABI change(s) in libgcc from GCC6 to GCC7 (e.g., some different compatibility versions for libraries; some different symbols in libraries; some different version in filenames). I don't know about GCC8 yet.

Thus, moving to the current libgcc-devel (GCC7) from libgcc (GCC6) requires rebuilding all dependent ports, which for me is about 11 ports & most are pretty quick to rebuild.

Given that Ryan is on top of this, I'll defer to him. I'm happy to help out, but I'll not update GCC7 any longer (to snapshots or the latest release).

Cheers! - MLD

On Thu, Jun 29, 2017, at 06:03 PM, Chris Jones wrote:
On 29 Jun 2017, at 10:48 pm, Ken Cunningham <[hidden email]> wrote:
The plan in the libgcc Portfile says to keep moving libgcc along until there is an incompatible ABI change, and then when that happens, spin off the last compatible version as a separate port (like this one libgcc45 @4.5.4_12 (lang)) to support all the gcc versions that can't move past that version of libgcc,  and then move the rest along.

So long as gcc 5 / 6 are compatible with libgcc 7 or even libgcc 8 , should be no problem.

To install libgcc-devel you need to uninstall or deactivate libgcc first, of course, as they overwrite each other's files.

Yes, of course, i understand this. My point was really unless there is a reason not to the default libgcc port should be  kept up to date with the latest stable release, which is as of now gcc7.  I have no interest to work with a real devel release, so have no plans to update my libgcc port to libgcc-devel. 

Chris


At some point, bootstrapping gets to be a concern.

K
On 2017-06-29, at 1:16 PM, Christopher Jones wrote:

Hi,

In my opinion libgcc should be based on the latest stable gcc release, which is now gcc7. Right now, if I try and install gcc 7 I get

Oberon ~ > sudo port install gcc7
Portfile changed since last build; discarding previous state.
--->  Computing dependencies for gcc7
Error: Can't install libgcc-devel because conflicting ports are active: libgcc
Error: Follow https://guide.macports.org/#project.tickets to report a bug.
Error: Processing of port gcc7 failed

which in my opinion should be resolved.

Chris

On 29 Jun 2017, at 8:49 pm, Michael Dickens <[hidden email]> wrote:

I recently noticed that gcc7 had an update, and so I've started updating
it. I'll move it to the 7.1 release shortly. There's also a new gcc8
snapshot that I'll look into getting up for folks on the bleeding edge
to try out (as I'm often asked to do for UHD / Volk / GNU Radio).

The question comes up as to what version "libgcc" should be. Right now
libgcc is a subport of gcc6. gcc7 requires an updated version of libgcc,
as I'm guessing gcc8 does.

I can easily leave libgcc attached to gcc6, and then disable
libgcc-devel in favor of libgcc7 and libgcc8 ... but, I'm pretty new at
the gcc / libgcc combo so I'm really not sure what the best or proper
way to go here is.

Looking for thoughts and direction on how to proceed. Thx! - MLD


Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: gcc & libgcc 6/7/8

Michael Dickens-4
I'm new to the *GCC* ports, so I don't know why libgcc# is not matched
with gcc#. Seems like it would be possible to install libgcc# into
$prefix/lib/libgcc#/ , so that one could have all of the various gcc#'s
installed at the same time without conflicting. But, then I've never
tried & this certainly could make issues with linking / runtime making
sure the correct library is used. And, there's also the redundancy
issues, for if gcc[4-6] can use the same libgcc then why install a new
one for each? I was going to try this route, leaving "libgcc" to be for
gcc[4-6] and then matching libgcc7 with gcc7 and libgcc8 with gcc8, as
well as installing into separate directories to see if that worked. I
might still give this a go since it's mostly just time waiting for *gcc*
to build. Sorry I can't give better answers! Maybe Ryan knows better? -
MLD

On Fri, Jun 30, 2017, at 10:24 AM, [hidden email] wrote:
> Is there some reason that the libgcc ports are not named liked the gcc ports? 
> In particular, shouldn't there be a libgcc6, libgcc7 and a new libgcc8 port?
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: gcc & libgcc 6/7/8

Rainer Müller-4
In reply to this post by mf2k
On 2017-06-30 16:24, [hidden email] wrote:
> Is there some reason that the libgcc ports are not named liked the
> gcc ports?

The reason for libgcc is that all gcc versions are supposed to link to
the same runtime libraries. Reverting this would probably bring back the
old bugs.

https://lists.macports.org/pipermail/macports-dev/2013-August/023783.html

https://trac.macports.org/ticket/38814

Rainer
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: gcc & libgcc 6/7/8

Kenneth F. Cunningham
In reply to this post by Michael Dickens-4
I think that's it.

libgcc @6.x can service all the gccs from about 4.7 to 6.x, so there is only one.

Too bad we need a new version for gcc7. More complexity, more complications. But that's progress.

Hopefully the broken gcc7 build on older systems can be remedied.

Ken


On 2017-06-30, at 7:33 AM, Michael Dickens wrote:

> I'm new to the *GCC* ports, so I don't know why libgcc# is not matched
> with gcc#. Seems like it would be possible to install libgcc# into
> $prefix/lib/libgcc#/ , so that one could have all of the various gcc#'s
> installed at the same time without conflicting. But, then I've never
> tried & this certainly could make issues with linking / runtime making
> sure the correct library is used. And, there's also the redundancy
> issues, for if gcc[4-6] can use the same libgcc then why install a new
> one for each? I was going to try this route, leaving "libgcc" to be for
> gcc[4-6] and then matching libgcc7 with gcc7 and libgcc8 with gcc8, as
> well as installing into separate directories to see if that worked. I
> might still give this a go since it's mostly just time waiting for *gcc*
> to build. Sorry I can't give better answers! Maybe Ryan knows better? -
> MLD
>
> On Fri, Jun 30, 2017, at 10:24 AM, [hidden email] wrote:
>> Is there some reason that the libgcc ports are not named liked the gcc ports?
>> In particular, shouldn't there be a libgcc6, libgcc7 and a new libgcc8 port?

Loading...