Opened 6 years ago

Closed 6 years ago

Last modified 6 years ago

#56577 closed defect (fixed)

Broken gcc7 port?

Reported by: thiagoveloso (Thiago V. dos Santos) Owned by:
Priority: Normal Milestone: MacPorts 2.5.1
Component: base Version: 2.5.0
Keywords: Cc: jmroot (Joshua Root)
Port: gcc7

Description

My Macbook Pro's system was pretty outdated and have been through quite a few updates recently - Macports 5.0, Xcode 9.4 and its Command Line Tools and finally macOS 10.13.5. Therefore, I am not exactly sure what caused the error below.

I am trying to install gcc7, which finishes fine but throws an error message by the end of the installation that says something like: "Broken port and needs to be rebuild".

Then, when running "port -d rev-upgrade", I get: "gcc7 is using libstdc++ (this installation is configured to use libc++)". Then it tries to rebuild the port for another three times and finishes with a message: "still unable to build port after three attempts".

I tried to ignore the message and go on installing my ports, but I always get the "broken port" message by the end of each installation.

Is message something that I need to worry about? How can I fix it?

Change History (8)

comment:1 Changed 6 years ago by mf2k (Frank Schima)

Priority: HighNormal

The Priority field is for use by Macports team members only.

comment:2 Changed 6 years ago by mf2k (Frank Schima)

Keywords: gcc7 broken port removed

comment:3 Changed 6 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: jmroot added

comment:4 Changed 6 years ago by ryandesign (Ryan Carsten Schmidt)

Component: portsbase

You don't need to worry about the error. MacPorts 2.5.0 introduced a new feature that checks for C++ standard library mismatches. Ports that display this error are no more broken than they were before: the mismatch always existed, but MacPorts wasn't checking for it before.

gcc7 does intentionally use a different C++ standard library, and it indicates that in the Portfile, so in fact there is no mismatch. But our binary archive of gcc7 dates from before the release of MacPorts 2.5.0 and therefore does not contain that information, so MacPorts doesn't know that the use of the different C++ standard library in this port is intentional.

If gcc7 had already been installed when you upgraded to MacPorts 2.5.0, you would not have seen this error, because the MacPorts 2.5.0 upgrade process fixes up the values of any of your installed ports that are known to use a different C++ standard library. But installing or upgrading gcc7 after upgrading to MacPorts 2.5.0 will cause the problem to appear.

See: https://lists.macports.org/pipermail/macports-dev/2018-June/039046.html

This bug will be fixed in MacPorts 2.5.1. The problem would also disappear if we happened to make a new version or revision of gcc7 available.

comment:5 Changed 6 years ago by jmroot (Joshua Root)

Milestone: MacPorts 2.5.1
Resolution: fixed
Status: newclosed

comment:6 Changed 6 years ago by thiagoveloso (Thiago V. dos Santos)

Thanks for the follow-up, Ryan and Joshua. I confirm that the issue was fixed with the 2.5.1 MacPorts release.

comment:7 Changed 6 years ago by astroboylrx (Rixin Li)

I encountered a similar issue with mpich-gcc7 and openmpi-gcc7. This is MacPorts 2.5.2.

mpich-gcc7 is using libstdc++ (this installation is configured to use libc++)
openmpi-gcc7 is using libstdc++ (this installation is configured to use libc++)
--->  Found 2 broken ports, determining rebuild order

What should I do to fix this? Thanks in advance.

comment:8 in reply to:  7 Changed 6 years ago by jmroot (Joshua Root)

Note: See TracTickets for help on using tickets.