Files
Saleem Abdulrasool 8bf8281136 Windows: remove the builtin header module workaround
Restructure `ucrt` module to allow us to drop the
`-fbuiltin-modules-in-system-headers`. This clean up is helpful for
modularisation and brings Windows in parity with other platforms.

Fixes: #91573
2026-10-08 23:29:24 -07:00

366 lines
5.6 KiB
Plaintext

//===--- ucrt.modulemap ---------------------------------------------------===//
//
// 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
//
//===----------------------------------------------------------------------===//
// These internal top-level modules break cycles among the UCRT, Clang builtin,
// and C++ standard-library headers. Keep the ownership graph independent of the
// installed Windows SDK version.
module _complex [system] {
header "complex.h"
export *
}
module _fenv [system] {
header "fenv.h"
export *
}
module _float [system] {
header "float.h"
export *
}
module _malloc [system] {
header "malloc.h"
export *
}
module _stdlib [system] {
header "stdlib.h"
export *
}
module ucrt [system] {
header "SwiftUCRT.h"
config_macros NDEBUG
export *
module C {
module assert {
header "assert.h"
export *
}
module ctype {
header "ctype.h"
export *
}
module errno {
textual header "errno.h"
}
module inttypes {
header "inttypes.h"
export *
}
module locale {
header "locale.h"
export *
}
module math {
header "math.h"
export *
}
module signal {
header "signal.h"
export *
}
module stdalign {
header "stdalign.h"
export *
}
module stddef {
textual header "stddef.h"
}
module stdio {
header "stdio.h"
export *
// NOTE(compnerd) this is a horrible workaround for the fact that
// Microsoft has fully inlined nearly all of the printf family of
// functions in the headers which results in the definitions being elided
// resulting in undefined symbols. The legacy_stdio_definitions provides
// out-of-line definitions for these functions.
link "legacy_stdio_definitions"
}
module stdnoreturn {
textual header "stdnoreturn.h"
}
module string {
header "string.h"
export *
}
module time {
header "time.h"
export *
}
module tgmath {
textual header "tgmath.h"
}
module uchar {
header "uchar.h"
export *
}
module wchar {
header "wchar.h"
export *
}
module wctype {
header "wctype.h"
export *
}
}
module POSIX {
module fcntl {
header "fcntl.h"
export *
}
module sys {
module locking {
header "sys/locking.h"
export *
}
module stat {
header "sys/stat.h"
export *
}
module direct {
header "direct.h"
export *
}
module timeb {
header "sys/timeb.h"
export *
}
module types {
header "sys/types.h"
export *
}
module utime {
header "sys/utime.h"
export *
}
}
}
module conio {
header "conio.h"
export *
}
module dos {
header "dos.h"
export *
}
module debug {
header "crtdbg.h"
export *
}
module fpieee {
header "fpieee.h"
export *
}
module io {
header "io.h"
export *
}
module memory {
header "memory.h"
export *
}
module minmax {
header "minmax.h"
export *
}
module multibyte {
module ctype {
header "mbctype.h"
export *
}
module string {
header "mbstring.h"
export *
}
}
module new {
header "new.h"
export *
}
module process {
header "process.h"
export *
}
explicit module safeint {
requires cplusplus
header "safeint.h"
// This is the private implementation of safeint.h, not an independent
// public header surface.
private textual header "safeint_internal.h"
export *
}
module search {
header "search.h"
export *
}
module share {
header "share.h"
export *
}
module startup {
header "corecrt_startup.h"
export *
}
module tchar {
header "tchar.h"
export *
}
}
module corecrt [system] {
export *
module base {
header "corecrt.h"
export *
}
module stdio_config {
header "corecrt_stdio_config.h"
export *
}
module conio {
header "corecrt_wconio.h"
export *
}
module direct {
header "corecrt_wdirect.h"
export *
}
module io {
header "corecrt_io.h"
export *
}
module wio {
header "corecrt_wio.h"
export *
}
module malloc {
header "corecrt_malloc.h"
export *
}
module math {
header "corecrt_math.h"
export *
}
module math_defines {
textual header "corecrt_math_defines.h"
}
module memory {
header "corecrt_memory.h"
export *
}
module memcpy {
header "corecrt_memcpy_s.h"
export *
}
module process {
header "corecrt_wprocess.h"
export *
}
module search {
header "corecrt_search.h"
export *
}
module share {
header "corecrt_share.h"
export *
}
module ctype {
header "corecrt_wctype.h"
export *
}
module stdio {
header "corecrt_wstdio.h"
export *
}
module stdlib {
header "corecrt_wstdlib.h"
export *
}
module string {
header "corecrt_wstring.h"
export *
}
module time {
header "corecrt_wtime.h"
export *
}
}
module _corecrt_terminate [system] {
requires cplusplus
header "corecrt_terminate.h"
export *
}