See

https://trac.macports.org/ticket/62770 <https://trac.macports.org/ticket/62770>

Its the macOS11.3 / Xcode 12.5 update, it has broken all MacPorts clang 
versions <= 11

At this time the only macports clang that works is the clang-level port.

Chris

> On 3 May 2021, at 1:14 pm, Andrew Udvare <audv...@gmail.com> wrote:
> 
> This code compiles fine with Xcode but fails with Clang from MacPorts. I have 
> not been able to figure out why. I successfully rebuilt Clang and LLVM from 
> source but it made no difference.
> 
> Setup:
> 
> macOS 11.3 20E232 x86_64
> Xcode 12.5 12E262
> 
> The code (main.cpp):
> 
> #include <filesystem>
> int main(int argc, char *argv[]) {
>  std::filesystem::path p(argv[0]);
>  return p.string().length();
> }
> 
> $ xcrun clang++ -std=c++17 main.cpp
> # No errors
> 
> Anyone know why it would fail with MacPorts' Clang? Seems to be an include 
> path/file issue.
> 
> $ /opt/local/bin/clang++-mp-11 -std=c++17 main.cpp -ferror-limit=2
> In file included from main.cpp:1:
> In file included from 
> /opt/local/libexec/llvm-11/bin/../include/c++/v1/filesystem:234:
> In file included from 
> /opt/local/libexec/llvm-11/bin/../include/c++/v1/cstdlib:85:
> /opt/local/libexec/llvm-11/bin/../include/c++/v1/stdlib.h:142:34: error: 
> unknown type name 'ldiv_t'
> inline _LIBCPP_INLINE_VISIBILITY ldiv_t div(long __x, long __y) _NOEXCEPT {
>                                 ^
> /opt/local/libexec/llvm-11/bin/../include/c++/v1/stdlib.h:143:12: error: no 
> member named 'ldiv' in the global namespace
>  return ::ldiv(__x, __y);
>         ~~^
> fatal error: too many errors emitted, stopping now [-ferror-limit=]
> 3 errors generated.
> 
> This generates a lot of errors that are members are missing from the global 
> namespace.
> 
> This affects this port I have had working for a while, probably by accident 
> because it wasn't until recently that Xcode Clang and MacPorts Clang versions 
> mismatched their highest numbers (Xcode 12.5 having Clang 12, MacPorts having 
> up to 11).
> 
> https://github.com/Tatsh/ports/blob/ycm-fixes/devel/ycmd/Portfile
> 
> This project tries to compile this code within CMake to test for required 
> arguments, but it's failing for the reason above rather than actually missing 
> filesystem implementation. See 
> https://github.com/ycm-core/ycmd/blob/master/cpp/ycm/CMakeLists.txt#L279
> 
> -- 
> Andrew Udvare
> 
> 

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to