Opened 6 years ago

Closed 5 years ago

#56618 closed defect (fixed)

wxWidgets-3.0: stdlibc++ mismatch

Reported by: iefdev (Eric F) Owned by: mojca (Mojca Miklavec)
Priority: Normal Milestone:
Component: ports Version: 2.5.2
Keywords: Cc: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Port: wxWidgets-3.0

Description

In addition to #56616, here's a separate ticket for wxWidgets-3.0.

$ sudo port -d -y rev-upgrade
#snip
wxWidgets-3.0 is using libstdc++ (this installation is configured to use libc++)

Attachments (1)

wxWidgets_logs.tar.xz (62.1 KB) - added by iEFdev 6 years ago.

Download all attachments as: .zip

Change History (13)

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

Owner: set to mojca
Status: newassigned

comment:2 Changed 6 years ago by mojca (Mojca Miklavec)

Which OS version are you using? Which files are linked against libstdc++?

comment:3 Changed 6 years ago by iEFdev

I'm on 10.7.5.

$ otool -L /opt/local/lib/libgcc/libstdc++.6.dylib
/opt/local/lib/libgcc/libstdc++.6.dylib:
        /opt/local/lib/libgcc/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.24.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0)
        /opt/local/lib/libgcc/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)

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

No, which files installed by wxWidgets-3.0 link with libstdc++.6.dylib?

Why is anything in wxWidgets-3.0 ever linking with FSF GCC libstdc++? I don't see anything in the wxWidgets-3.0 portfile or the wxWidgets-1.0 portgroup that would account for that.

comment:5 in reply to:  4 Changed 6 years ago by iEFdev

Replying to ryandesign:

No, which files installed by wxWidgets-3.0 link with libstdc++.6.dylib?

Why is anything in wxWidgets-3.0 ever linking with FSF GCC libstdc++? I don't see anything in the wxWidgets-3.0 portfile or the wxWidgets-1.0 portgroup that would account for that.

I'm not really sure how to find all those file, but just by taking the first file in its lib folder, libstdc++ shows up

$ otool -L /opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/3.0/lib/libwx_baseu_net-3.0.0.4.0.dylib 
/opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/3.0/lib/libwx_baseu_net-3.0.0.4.0.dylib:
        /opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/3.0/lib/libwx_baseu_net-3.0.dylib (compatibility version 5.0.0, current version 5.0.0)
        /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
        /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 153.0.0)
        /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 17.0.0)
        /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox (compatibility version 1.0.0, current version 1.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0)
        /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
        /opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)
        /opt/local/lib/libiconv.2.dylib (compatibility version 9.0.0, current version 9.0.0)
        /opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/3.0/lib/libwx_baseu-3.0.0.4.0.dylib (compatibility version 5.0.0, current version 5.0.0)
        /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 52.0.0)
        /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 635.21.0)

I got wxWidgets with pgAdmin3 (#56617) as a dependency. Is that something that could have changed it - as a part of the installation? I can try uninstall both and bring them back separately.

Changed 6 years ago by iEFdev

Attachment: wxWidgets_logs.tar.xz added

comment:6 Changed 6 years ago by mojca (Mojca Miklavec)

I did not inspect the log yet, but the message says this installation is configured to use libc++. Does that mean that you are using LibcxxOnOlderSystems?

comment:7 Changed 6 years ago by mojca (Mojca Miklavec)

The port was apparently compiled with /usr/bin/llvm-g++-4.2, so linking against libstdc++ is expected. I'm not sure about the comment that MacPorts would expect the port to be using libc++ unless the global configuration was changed without blacklisting compilers that are not capable of C++11 anyway.

comment:8 in reply to:  6 Changed 6 years ago by iEFdev

Replying to mojca:

I did not inspect the log yet, but the message says this installation is configured to use libc++. Does that mean that you are using LibcxxOnOlderSystems?

Yes, it does... :)


Replying to mojca:

The port was apparently compiled with /usr/bin/llvm-g++-4.2, so linking against libstdc++ is expected.I'm not sure about the comment that MacPorts would expect the port to be using libc++ unless the global configuration was changed without blacklisting compilers that are not capable of C++11 anyway.

Yes, I guess it must be the same thing as Ryan mentioned here: comment:ticket:56616:6

Last edited 6 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:9 Changed 6 years ago by kencu (Ken)

try doing the exact same compiler forcing you did in flac and see what you get then

sudo port uninstall wxWidgets-3.0
sudo port -v install wxWidgets-3.0 configure.compiler=macports-clang-5.0

comment:10 Changed 6 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Cc: MarcusCalhoun-Lopez added

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

Keywords: cxx_stdlib removed

comment:12 Changed 5 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: assignedclosed

I think this is no longer a problem, now that MacPorts 2.6.0 and later default to libc++ on 10.6-10.8. wxWidgets-3.0-3.0.4_1.darwin_11.x86_64.tbz2 on our packages server today shows its files are linked with libc++ as they should be.

Note: See TracTickets for help on using tickets.