[Threading][Runtime] Separate threading error function to fix link on Linux.

On Linux it seems that the linker objects, probably because of link order,
to the definition of `swift::threading::fatal()` being in both static
libraries.  Fix by moving `swift::threading::fatal()` to its own file
in the main runtime as well as the Concurrency runtime.

Fixes #59444.
This commit is contained in:
Alastair Houghton
2022-06-15 08:22:53 +01:00
parent 10626258f8
commit ab9e628b72
3 changed files with 26 additions and 10 deletions

View File

@@ -0,0 +1,25 @@
//===--- ThreadingError.cpp - Error handling support code -----------------===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See https://swift.org/LICENSE.txt for license information
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
#include "swift/Runtime/Debug.h"
#include "swift/Threading/Errors.h"
#include <cstdio>
// Handle fatal errors from the threading library
SWIFT_ATTRIBUTE_NORETURN
SWIFT_FORMAT(1, 2)
void swift::threading::fatal(const char *format, ...) {
va_list val;
va_start(val, format);
swift::fatalErrorv(0, format, val);
}