macports-ports icon indicating copy to clipboard operation
macports-ports copied to clipboard

cdo: update to 2.4.1

Open remkos opened this issue 1 year ago • 2 comments

Description

Simple update to upstream version 2.4.1

Type(s)
  • [ ] bugfix
  • [ ] enhancement
  • [ ] security fix
Tested on

macOS 14.5 23F79 x86_64 Command Line Tools 15.3.0.0.1.1708646388

Verification

Have you

  • [x] followed our Commit Message Guidelines?
  • [x] squashed and minimized your commits?
  • [x] checked that there aren't other open pull requests for the same change?
  • [x] referenced existing tickets on Trac with full URL in commit message?
  • [x] checked your Portfile with port lint --nitpick?
  • [x] tried existing tests with sudo port test?
  • [x] tried a full install with sudo port -vst install?
  • [x] tested basic functionality of all binary files?
  • [x] checked that the Portfile's most important variants haven't been broken?

remkos avatar May 22 '24 13:05 remkos

Notifying maintainers: @tenomoto for port cdo.

macportsbot avatar May 22 '24 13:05 macportsbot

After all the work with v2.4.0 (#23406) regarding the C++20 support, macos-13 now fails again on something to do with C++20 support (https://github.com/macports/macports-ports/actions/runs/9192649442/job/25281816454?pr=24069).

  ./cpp_lib.h:15:2: error: C++20 Ranges library is Not Available!
  #error C++20 Ranges library is Not Available!

There seems to be some inconsistency in what MacOS versions will select for C++ and C compilers:

macos-11 and macos-12:
        "CXX"                : "/opt/local/bin/clang++-mp-16 -std=gnu++20",
        "CC"                 : "/opt/local/bin/clang-mp-16",
 
macos-13 and macos-14:
        "CXX"                : "/usr/bin/clang++ -std=gnu++11 -std=gnu++20",
        "CC"                 : "/usr/bin/clang",

It's kind of weird that the -std=gnu++11 -std=gnu++20 works on macos-14 but not macos-13.

Solutions may be in forcing clang++-mp-16 on macos-13 by blacklisting older clang versions or try to suppress the -std=gnu++11

remkos avatar May 23 '24 07:05 remkos

In the end, what worked was to add compiler.blacklist-append clang so that macports clang++-mp-* is always used. I would have expected that compiler.blacklist-append { clang < 1500 } would work, since I would have expected the macos-13 version for clang to be older than 1500. In any case, with that in place, macos-13 still tried to compile with /usr/bin/clang++ -std=gnu++11 -std=gnu++20 and failed with the same error indicated above.

Finally, with compiler.blacklist-append clang the following compilers are selected:

macos-11 and macos-12:
        "CXX"                : "/opt/local/bin/clang++-mp-16 -std=gnu++20",
        "CC"                 : "/opt/local/bin/clang-mp-16",
 
macos-13 and macos-14:
        "CXX"                : "/opt/local/bin/clang++-mp-18 -std=gnu++20",
        "CC"                 : "/opt/local/bin/clang-mp-18",

resulting in successful compilations on all systems.

remkos avatar May 24 '24 18:05 remkos

This PR should now be ready to be merged after review.

remkos avatar May 24 '24 18:05 remkos

Thanks for your efforts here, @remkos.

herbygillot avatar May 25 '24 00:05 herbygillot

And thanks, @herbygillot, for your support, as always.

remkos avatar May 25 '24 08:05 remkos