Is anyone else getting this error when building the compiler from `master` on macOS?

When building the compiler on macOS locally (I was able to reproduce this on Catalina 10.15.4 and Mojave 10.14.6, both with Xcode 11.4.1), I started getting this error a couple of weeks ago, which only pops up when building swift/lib/Immediate/Immediate.cpp:

/Applications/Xcode-11.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cmath:325:9: 
error: no member named 'isless' in the global namespace
using ::isless;
      ~~^
/Applications/Xcode-11.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cmath:326:9: 
error: no member named 'islessequal' in the global namespace
using ::islessequal;
      ~~^
/Applications/Xcode-11.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cmath:327:9: 
error: no member named 'islessgreater' in the global namespace
using ::islessgreater;
      ~~^
/Applications/Xcode-11.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cmath:328:9: 
error: no member named 'isunordered' in the global namespace
using ::isunordered;
      ~~^
/Applications/Xcode-11.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cmath:329:9: 
error: no member named 'isunordered' in the global namespace
using ::isunordered;
      ~~^
13 errors generated.

Interestingly enough, when building swift-5.2-branch checkout scheme instead of master the error goes away and everything builds fine.

The other factor apparently is the presence of headers in /Library/Developer/CommandLineTools/usr/include/c++, as this invocation for compiling Immediate.cpp includes this flag:

-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include

If I copy the compiler invocation from the build log, remove the flag, and run that as a single command in terminal, this succeeds. I've been able to infer that by building master on GitHub Actions, where the error doesn't occur. I compared my local and CI invocation, and the -isystem flag seems to be the only difference. I assume that GitHub Actions host don't have this Command Line Tools package installed, or somehow it isn't picked up by the compiler's build system if it's installed

The summary is, some time between swift-5.2-branch and master there was a change introduced that makes the build system detect Command Line Tools headers, which breaks the build only when those headers are installed. Apparently these headers aren't installed on CI hosts, neither swift-ci, nor GitHub Actions, that's why this wasn't detectable on CI.

For the reference, I get this info for the tools package on Catalina:

% pkgutil --pkg-info=com.apple.pkg.CLTools_Executables
package-id: com.apple.pkg.CLTools_Executables
version: 11.4.1.0.1.1586360307
volume: /
location: /
install-time: 1587060077
groups: com.apple.FindSystemFiles.pkg-group 

I hope someone else was able to reproduce this locally? I wasn't able to find anything relevant on bugs.swift.org unfortunately.

2 Likes

I encountered the same errors recently!

The errors appeared for me after I installed command line tools, which I needed only temporarily. I fixed it by deleting /Library/Developer/CommandLineTools and running sudo xcode-select -s /Applications/Xcode.app (11.4). Maybe there's a more robust solution.

2 Likes

Thanks, at least I'm not alone, which means it's not my local misconfiguration. I've reported this as SR-12726.

2 Likes

Unbelievable, but deleting /Library/Developer/CommandLineTools and running sudo xcode-select -s /Applications/Xcode.app for me did solve building error.

Is such surgery with deleting /Library/Developer/CommandLineTools safe for my local install?

Will this problem be somehow addressed in changing build-script?

Not particularly useful answers, but here goes:

Deleting /Library/Developer/CommandLinesTools should be relatively safe in that it is reversible - you can always reinstall it via sudo xcode-select --install fwiu.

I suppose SR-12726 tracks a robust fix for this issue in build-script. I see you're already following the issue, so you should be notified if anyone makes progress.

1 Like

Thank you for posting this! Wasted hours on wondering about this error, given the very slow build times on my old MBP.

1 Like

The issue is no longer reproducible for me with Xcode 11.5 and command-line tools for 11.5. Could anyone please confirm they're seeing this too? I'll close the SR if so.

For me, Xcode 11.4.x & command-line tools 11.x was working perfect. Now with xcode 11.5 & command-line tools 11.5 is happening this error.

Did you try the workaround suggested in the JIRA of temporarily moving away the CommandLineTools and see if that fixes the issue?

I'm trying that right now to see if it works. Will post here once the compilation finishes.

Removing the Xcode 11.5 command line tools as described in [SR-12726] Can't build apple/swift `master` on macOS with Command Line Tools installed · Issue #55171 · apple/swift · GitHub fixes this issue for me

Yep, that did the trick for me too.

I'm on latest xcode, and I faced this too. Deleting /Library/Developer/CommandLineTools fixed it.

Many thanks guys, removing the command line tools did the trick, after the Catalina 10.15.6 upgrade a few days ago. No idea why this happens again and again. On another Mac, I have commandline tools, only and no problems.

As far as I know, this was fixed in the master branch with #32436, but is still there in release/5.3 because the patch wasn't backported to the release branch.

1 Like

Correction: Actually, I ended up erasing XCode and commandline tools completely.
Then I reinstalled commandline tools but the xcode-select -p setting showed something with /Application/XCode/Developer.
After xcode-select -s /Library/Developer/CommandLineTools/ everything worked fine.

This quirk seems to show up after almost every system update.

Solution was mentioned on Max_Desiatov‘s comment

Just brew uninstall pkg-config to sovle it . :sweat:

Rember make clean:swift

Test on

  • macOS Catalina 10.15.7
  • Xcode Version 12.2 beta 3 (12B5035g)
  • command line tools for xcode 12.2 beta3
  • branch swift-5.3-release

Above tools download from Sign In - Apple