thakis created this revision. thakis added a reviewer: jyknight. thakis requested review of this revision.
This morally reverts D82777 <https://reviews.llvm.org/D82777> -- turns out that ld64 crashes with many response files, so we must stop passing them to it until the crash is fixed. On the other hand, the new MachO lld just grew support for response files in D92149 <https://reviews.llvm.org/D92149>, so do pass response files to it. https://reviews.llvm.org/D92357 Files: clang/lib/Driver/ToolChains/Darwin.cpp Index: clang/lib/Driver/ToolChains/Darwin.cpp =================================================================== --- clang/lib/Driver/ToolChains/Darwin.cpp +++ clang/lib/Driver/ToolChains/Darwin.cpp @@ -697,8 +697,13 @@ } } - ResponseFileSupport ResponseSupport = ResponseFileSupport::AtFileUTF8(); - if (Version[0] < 607) { + ResponseFileSupport ResponseSupport; + if (LinkerIsLLDDarwinNew) { + // Xcode12's ld64 added support for @response files, but it's crashy: + // https://openradar.appspot.com/radar?id=4933317065441280 + // FIXME: Pass this for ld64 once it no longer crashes. + ResponseSupport = ResponseFileSupport::AtFileUTF8(); + } else { // For older versions of the linker, use the legacy filelist method instead. ResponseSupport = {ResponseFileSupport::RF_FileList, llvm::sys::WEM_UTF8, "-filelist"};
Index: clang/lib/Driver/ToolChains/Darwin.cpp =================================================================== --- clang/lib/Driver/ToolChains/Darwin.cpp +++ clang/lib/Driver/ToolChains/Darwin.cpp @@ -697,8 +697,13 @@ } } - ResponseFileSupport ResponseSupport = ResponseFileSupport::AtFileUTF8(); - if (Version[0] < 607) { + ResponseFileSupport ResponseSupport; + if (LinkerIsLLDDarwinNew) { + // Xcode12's ld64 added support for @response files, but it's crashy: + // https://openradar.appspot.com/radar?id=4933317065441280 + // FIXME: Pass this for ld64 once it no longer crashes. + ResponseSupport = ResponseFileSupport::AtFileUTF8(); + } else { // For older versions of the linker, use the legacy filelist method instead. ResponseSupport = {ResponseFileSupport::RF_FileList, llvm::sys::WEM_UTF8, "-filelist"};
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits