Files
swift-mirror/stdlib/public/Platform/bionic.modulemap.gyb
Daniel Rodríguez Troitiño f77e2835f0 [android] Link against math library for Bionic.
The Bionic modulemap was missing the autolinking information against
libm, so using the module math functions might have hit undefined
symbols (it was happening in TestDecimal in Foundation for me). The line
is present in the Linux glibc.modulemap, but was not there for Android
Bionic modulemap.
2019-08-26 17:32:51 -07:00

390 lines
8.7 KiB
Plaintext

//===--- bionic.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
//
//===----------------------------------------------------------------------===//
/// This is a semi-complete modulemap that maps bionics's headers in a roughly
/// similar way to the Darwin SDK modulemap. We do not take care to list every
/// single header which may be included by a particular submodule, so there can
/// still be issues if imported into the same context as one in which someone
/// included those headers directly.
///
/// It's not named just Bionic so that it doesn't conflict in the event of a
/// future official bionic modulemap.
module SwiftGlibc [system] {
link "dl"
// C standard library
module C {
module features {
header "${GLIBC_INCLUDE_PATH}/features.h"
export *
}
module complex {
header "${GLIBC_INCLUDE_PATH}/complex.h"
export *
}
module pty {
header "${GLIBC_INCLUDE_PATH}/pty.h"
export *
}
module utmp {
header "${GLIBC_INCLUDE_PATH}/utmp.h"
export *
}
module ctype {
header "${GLIBC_INCLUDE_PATH}/ctype.h"
export *
}
module errno {
header "${GLIBC_INCLUDE_PATH}/errno.h"
export *
}
module fenv {
header "${GLIBC_INCLUDE_PATH}/fenv.h"
export *
}
// note: supplied by compiler
// module float {
// header "${GLIBC_INCLUDE_PATH}/float.h"
// export *
// }
module inttypes {
header "${GLIBC_INCLUDE_PATH}/inttypes.h"
export *
}
// note: potentially supplied by compiler
// module iso646 {
// header "${GLIBC_INCLUDE_PATH}/iso646.h"
// export *
// }
// module limits {
// header "${GLIBC_INCLUDE_PATH}/limits.h"
// export *
// }
module locale {
header "${GLIBC_INCLUDE_PATH}/locale.h"
export *
}
module math {
link "m"
header "${GLIBC_INCLUDE_PATH}/math.h"
export *
}
module setjmp {
header "${GLIBC_INCLUDE_PATH}/setjmp.h"
export *
}
module signal {
header "${GLIBC_INCLUDE_PATH}/signal.h"
export *
}
// note: supplied by the compiler
// module stdarg {
// header "${GLIBC_INCLUDE_PATH}/stdarg.h"
// export *
// }
// module stdbool {
// header "${GLIBC_INCLUDE_PATH}/stdbool.h"
// export *
// }
// module stddef {
// header "${GLIBC_INCLUDE_PATH}/stddef.h"
// export *
// }
// module stdint {
// header "${GLIBC_INCLUDE_PATH}/stdint.h"
// export *
// }
module stdio {
header "${GLIBC_INCLUDE_PATH}/stdio.h"
export *
}
module stdlib {
header "${GLIBC_INCLUDE_PATH}/stdlib.h"
export *
export stddef
}
module string {
header "${GLIBC_INCLUDE_PATH}/string.h"
export *
}
// note: supplied by the compiler
// explicit module tgmath {
// header "${GLIBC_INCLUDE_PATH}/tgmath.h"
// export *
// }
module time {
header "${GLIBC_INCLUDE_PATH}/time.h"
export *
}
}
// POSIX
module POSIX {
module wait {
header "${GLIBC_INCLUDE_PATH}/wait.h"
export *
}
module cpio {
header "${GLIBC_INCLUDE_PATH}/cpio.h"
export *
}
module nl_types {
header "${GLIBC_INCLUDE_PATH}/nl_types.h"
export *
}
module ftw {
header "${GLIBC_INCLUDE_PATH}/ftw.h"
export *
}
module glob {
header "${GLIBC_INCLUDE_PATH}/glob.h"
export *
}
module iconv {
header "${GLIBC_INCLUDE_PATH}/iconv.h"
export *
}
module langinfo {
header "${GLIBC_INCLUDE_PATH}/langinfo.h"
export *
}
module netdb {
header "${GLIBC_INCLUDE_PATH}/netdb.h"
export *
}
module ifaddrs {
header "${GLIBC_INCLUDE_PATH}/ifaddrs.h"
export *
}
module search {
header "${GLIBC_INCLUDE_PATH}/search.h"
export *
}
module spawn {
header "${GLIBC_INCLUDE_PATH}/spawn.h"
export *
}
module syslog {
header "${GLIBC_INCLUDE_PATH}/syslog.h"
export *
}
module tar {
header "${GLIBC_INCLUDE_PATH}/tar.h"
export *
}
module arpa {
module inet {
header "${GLIBC_INCLUDE_PATH}/arpa/inet.h"
export *
}
export *
}
module dirent {
header "${GLIBC_INCLUDE_PATH}/dirent.h"
export *
}
module dlfcn {
header "${GLIBC_INCLUDE_PATH}/dlfcn.h"
export *
}
module fcntl {
header "${GLIBC_INCLUDE_PATH}/fcntl.h"
export *
}
module fnmatch {
header "${GLIBC_INCLUDE_PATH}/fnmatch.h"
export *
}
module grp {
header "${GLIBC_INCLUDE_PATH}/grp.h"
export *
}
module ioctl {
header "${GLIBC_ARCH_INCLUDE_PATH}/sys/ioctl.h"
export *
}
module libgen {
header "${GLIBC_INCLUDE_PATH}/libgen.h"
export *
}
module net {
module if {
header "${GLIBC_INCLUDE_PATH}/net/if.h"
export *
}
}
module netinet {
module in {
header "${GLIBC_INCLUDE_PATH}/netinet/in.h"
export *
exclude header "${GLIBC_INCLUDE_PATH}/netinet6/in6.h"
}
module tcp {
header "${GLIBC_INCLUDE_PATH}/netinet/tcp.h"
export *
}
}
module poll {
header "${GLIBC_INCLUDE_PATH}/poll.h"
export *
}
module pthread {
header "${GLIBC_INCLUDE_PATH}/pthread.h"
export *
}
module pwd {
header "${GLIBC_INCLUDE_PATH}/pwd.h"
export *
}
module regex {
header "${GLIBC_INCLUDE_PATH}/regex.h"
export *
}
module sched {
header "${GLIBC_INCLUDE_PATH}/sched.h"
export *
}
module semaphore {
header "${GLIBC_INCLUDE_PATH}/semaphore.h"
export *
}
module strings {
header "${GLIBC_INCLUDE_PATH}/strings.h"
export *
}
module sys {
export *
module file {
header "${GLIBC_ARCH_INCLUDE_PATH}/sys/file.h"
export *
}
module sem {
header "${GLIBC_ARCH_INCLUDE_PATH}/sys/sem.h"
export *
}
module shm {
header "${GLIBC_ARCH_INCLUDE_PATH}/sys/shm.h"
export *
}
module inotify {
header "${GLIBC_ARCH_INCLUDE_PATH}/sys/inotify.h"
export *
}
module statvfs {
header "${GLIBC_ARCH_INCLUDE_PATH}/sys/statvfs.h"
export *
}
module ipc {
header "${GLIBC_ARCH_INCLUDE_PATH}/sys/ipc.h"
export *
}
module mman {
header "${GLIBC_ARCH_INCLUDE_PATH}/sys/mman.h"
export *
}
module msg {
header "${GLIBC_ARCH_INCLUDE_PATH}/sys/msg.h"
export *
}
module resource {
header "${GLIBC_ARCH_INCLUDE_PATH}/sys/resource.h"
export *
}
module select {
header "${GLIBC_ARCH_INCLUDE_PATH}/sys/select.h"
export *
}
module sendfile {
header "${GLIBC_ARCH_INCLUDE_PATH}/sys/sendfile.h"
export *
}
module socket {
header "${GLIBC_ARCH_INCLUDE_PATH}/sys/socket.h"
export *
}
module stat {
header "${GLIBC_ARCH_INCLUDE_PATH}/sys/stat.h"
export *
}
module time {
header "${GLIBC_ARCH_INCLUDE_PATH}/sys/time.h"
export *
}
module times {
header "${GLIBC_ARCH_INCLUDE_PATH}/sys/times.h"
export *
}
module types {
header "${GLIBC_ARCH_INCLUDE_PATH}/sys/types.h"
export *
}
module uio {
header "${GLIBC_ARCH_INCLUDE_PATH}/sys/uio.h"
export *
}
module un {
header "${GLIBC_ARCH_INCLUDE_PATH}/sys/un.h"
export *
}
module user {
header "${GLIBC_ARCH_INCLUDE_PATH}/sys/user.h"
export *
}
module utsname {
header "${GLIBC_ARCH_INCLUDE_PATH}/sys/utsname.h"
export *
}
module wait {
header "${GLIBC_ARCH_INCLUDE_PATH}/sys/wait.h"
export *
}
}
module sysexits {
header "${GLIBC_INCLUDE_PATH}/sysexits.h"
export *
}
module termios {
header "${GLIBC_INCLUDE_PATH}/termios.h"
export *
}
module unistd {
header "${GLIBC_INCLUDE_PATH}/unistd.h"
export *
}
module utime {
header "${GLIBC_INCLUDE_PATH}/utime.h"
export *
}
}
}