[MacPorts] #71669: macports-libcxx: uses older c++ headers on newer macports-clang compilers
MacPorts
noreply at macports.org
Sat Dec 28 16:59:43 UTC 2024
#71669: macports-libcxx: uses older c++ headers on newer macports-clang compilers
------------------------------+--------------------
Reporter: kencu | Owner: (none)
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version:
Resolution: | Keywords:
Port: macports-libcxx |
------------------------------+--------------------
Description changed by kencu:
Old description:
> currently, the macports-libcxx port copies the headers from clang11 thst
> match the libcxx being used, modifies them slightly to override Apple’s
> availabilty tests that are based on system version, and installs them.
>
> https://github.com/macports/macports-
> ports/blob/f9cde8c670027940c9b222eba81ccdc99d587f52/lang/macports-
> libcxx/Portfile#L51
>
> legacysupport then forces these modified headers to be used:
>
> https://github.com/macports/macports-
> ports/blob/f9cde8c670027940c9b222eba81ccdc99d587f52/_resources/port1.0/group/legacysupport-1.1.tcl#L183
>
> (Ignore for the moment these are mistakenly being added to the cppflags
> instead of the cxxflags).
>
> The end effect of this is that the headers being used by compilers newer
> than clang-11 are in fact older headers. This is not ideal.
>
> Also, llvm and Apple have changed the way certain things are being done
> with respect to c++ hesders, and these c++ headers are now being shipped
> with the system SDKs rather than with the llvm / clang compiler
> installation, so we’ll also need to ponder that fact too, if we decide to
> change something aboutbhow we do the header overrides in the future.
New description:
currently, the macports-libcxx port copies the headers from clang11 that
match the libcxx being used, modifies them slightly to override Apple’s
availabilty tests that are based on system version, and installs them.
https://github.com/macports/macports-
ports/blob/f9cde8c670027940c9b222eba81ccdc99d587f52/lang/macports-
libcxx/Portfile#L51
legacysupport then forces these modified headers to be used:
https://github.com/macports/macports-
ports/blob/f9cde8c670027940c9b222eba81ccdc99d587f52/_resources/port1.0/group/legacysupport-1.1.tcl#L183
(Ignore for the moment these are mistakenly being added to the cppflags
instead of the cxxflags).
The end effect of this is that the headers being used by compilers newer
than clang-11 are in fact older headers. This is not ideal.
Also, llvm and Apple have changed the way certain things are being done
with respect to c++ headers, and these c++ headers are now being shipped
with the system SDKs rather than with the llvm / clang compiler
installation, so we’ll also need to ponder that fact too, if we decide to
change something about how we do the header overrides in the future
--
--
Ticket URL: <https://trac.macports.org/ticket/71669#comment:2>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list