7226 lines
353 KiB
Plaintext
7226 lines
353 KiB
Plaintext
This is libc.info, produced by makeinfo version 5.1 from libc.texinfo.
|
||
|
||
This is ‘The GNU C Library Reference Manual’, for version 2.33 (GNU).
|
||
|
||
Copyright © 1993–2021 Free Software Foundation, Inc.
|
||
|
||
Permission is granted to copy, distribute and/or modify this document
|
||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||
any later version published by the Free Software Foundation; with the
|
||
Invariant Sections being “Free Software Needs Free Documentation” and
|
||
“GNU Lesser General Public License”, the Front-Cover texts being “A GNU
|
||
Manual”, and with the Back-Cover Texts as in (a) below. A copy of the
|
||
license is included in the section entitled "GNU Free Documentation
|
||
License".
|
||
|
||
(a) The FSF’s Back-Cover Text is: “You have the freedom to copy and
|
||
modify this GNU manual. Buying copies from the FSF supports it in
|
||
developing GNU and promoting software freedom.”
|
||
INFO-DIR-SECTION Software libraries
|
||
START-INFO-DIR-ENTRY
|
||
* Libc: (libc). C library.
|
||
END-INFO-DIR-ENTRY
|
||
|
||
INFO-DIR-SECTION GNU C library functions and macros
|
||
START-INFO-DIR-ENTRY
|
||
* ALTWERASE: (libc)Local Modes.
|
||
* ARGP_ERR_UNKNOWN: (libc)Argp Parser Functions.
|
||
* ARG_MAX: (libc)General Limits.
|
||
* BC_BASE_MAX: (libc)Utility Limits.
|
||
* BC_DIM_MAX: (libc)Utility Limits.
|
||
* BC_SCALE_MAX: (libc)Utility Limits.
|
||
* BC_STRING_MAX: (libc)Utility Limits.
|
||
* BRKINT: (libc)Input Modes.
|
||
* BUFSIZ: (libc)Controlling Buffering.
|
||
* CCTS_OFLOW: (libc)Control Modes.
|
||
* CHAR_BIT: (libc)Width of Type.
|
||
* CHILD_MAX: (libc)General Limits.
|
||
* CIGNORE: (libc)Control Modes.
|
||
* CLK_TCK: (libc)Processor Time.
|
||
* CLOCAL: (libc)Control Modes.
|
||
* CLOCKS_PER_SEC: (libc)CPU Time.
|
||
* CLOCK_MONOTONIC: (libc)Getting the Time.
|
||
* CLOCK_REALTIME: (libc)Getting the Time.
|
||
* COLL_WEIGHTS_MAX: (libc)Utility Limits.
|
||
* CPU_CLR: (libc)CPU Affinity.
|
||
* CPU_FEATURE_USABLE: (libc)X86.
|
||
* CPU_ISSET: (libc)CPU Affinity.
|
||
* CPU_SET: (libc)CPU Affinity.
|
||
* CPU_SETSIZE: (libc)CPU Affinity.
|
||
* CPU_ZERO: (libc)CPU Affinity.
|
||
* CREAD: (libc)Control Modes.
|
||
* CRTS_IFLOW: (libc)Control Modes.
|
||
* CS5: (libc)Control Modes.
|
||
* CS6: (libc)Control Modes.
|
||
* CS7: (libc)Control Modes.
|
||
* CS8: (libc)Control Modes.
|
||
* CSIZE: (libc)Control Modes.
|
||
* CSTOPB: (libc)Control Modes.
|
||
* DTTOIF: (libc)Directory Entries.
|
||
* E2BIG: (libc)Error Codes.
|
||
* EACCES: (libc)Error Codes.
|
||
* EADDRINUSE: (libc)Error Codes.
|
||
* EADDRNOTAVAIL: (libc)Error Codes.
|
||
* EADV: (libc)Error Codes.
|
||
* EAFNOSUPPORT: (libc)Error Codes.
|
||
* EAGAIN: (libc)Error Codes.
|
||
* EALREADY: (libc)Error Codes.
|
||
* EAUTH: (libc)Error Codes.
|
||
* EBACKGROUND: (libc)Error Codes.
|
||
* EBADE: (libc)Error Codes.
|
||
* EBADF: (libc)Error Codes.
|
||
* EBADFD: (libc)Error Codes.
|
||
* EBADMSG: (libc)Error Codes.
|
||
* EBADR: (libc)Error Codes.
|
||
* EBADRPC: (libc)Error Codes.
|
||
* EBADRQC: (libc)Error Codes.
|
||
* EBADSLT: (libc)Error Codes.
|
||
* EBFONT: (libc)Error Codes.
|
||
* EBUSY: (libc)Error Codes.
|
||
* ECANCELED: (libc)Error Codes.
|
||
* ECHILD: (libc)Error Codes.
|
||
* ECHO: (libc)Local Modes.
|
||
* ECHOCTL: (libc)Local Modes.
|
||
* ECHOE: (libc)Local Modes.
|
||
* ECHOK: (libc)Local Modes.
|
||
* ECHOKE: (libc)Local Modes.
|
||
* ECHONL: (libc)Local Modes.
|
||
* ECHOPRT: (libc)Local Modes.
|
||
* ECHRNG: (libc)Error Codes.
|
||
* ECOMM: (libc)Error Codes.
|
||
* ECONNABORTED: (libc)Error Codes.
|
||
* ECONNREFUSED: (libc)Error Codes.
|
||
* ECONNRESET: (libc)Error Codes.
|
||
* ED: (libc)Error Codes.
|
||
* EDEADLK: (libc)Error Codes.
|
||
* EDEADLOCK: (libc)Error Codes.
|
||
* EDESTADDRREQ: (libc)Error Codes.
|
||
* EDIED: (libc)Error Codes.
|
||
* EDOM: (libc)Error Codes.
|
||
* EDOTDOT: (libc)Error Codes.
|
||
* EDQUOT: (libc)Error Codes.
|
||
* EEXIST: (libc)Error Codes.
|
||
* EFAULT: (libc)Error Codes.
|
||
* EFBIG: (libc)Error Codes.
|
||
* EFTYPE: (libc)Error Codes.
|
||
* EGRATUITOUS: (libc)Error Codes.
|
||
* EGREGIOUS: (libc)Error Codes.
|
||
* EHOSTDOWN: (libc)Error Codes.
|
||
* EHOSTUNREACH: (libc)Error Codes.
|
||
* EHWPOISON: (libc)Error Codes.
|
||
* EIDRM: (libc)Error Codes.
|
||
* EIEIO: (libc)Error Codes.
|
||
* EILSEQ: (libc)Error Codes.
|
||
* EINPROGRESS: (libc)Error Codes.
|
||
* EINTR: (libc)Error Codes.
|
||
* EINVAL: (libc)Error Codes.
|
||
* EIO: (libc)Error Codes.
|
||
* EISCONN: (libc)Error Codes.
|
||
* EISDIR: (libc)Error Codes.
|
||
* EISNAM: (libc)Error Codes.
|
||
* EKEYEXPIRED: (libc)Error Codes.
|
||
* EKEYREJECTED: (libc)Error Codes.
|
||
* EKEYREVOKED: (libc)Error Codes.
|
||
* EL2HLT: (libc)Error Codes.
|
||
* EL2NSYNC: (libc)Error Codes.
|
||
* EL3HLT: (libc)Error Codes.
|
||
* EL3RST: (libc)Error Codes.
|
||
* ELIBACC: (libc)Error Codes.
|
||
* ELIBBAD: (libc)Error Codes.
|
||
* ELIBEXEC: (libc)Error Codes.
|
||
* ELIBMAX: (libc)Error Codes.
|
||
* ELIBSCN: (libc)Error Codes.
|
||
* ELNRNG: (libc)Error Codes.
|
||
* ELOOP: (libc)Error Codes.
|
||
* EMEDIUMTYPE: (libc)Error Codes.
|
||
* EMFILE: (libc)Error Codes.
|
||
* EMLINK: (libc)Error Codes.
|
||
* EMSGSIZE: (libc)Error Codes.
|
||
* EMULTIHOP: (libc)Error Codes.
|
||
* ENAMETOOLONG: (libc)Error Codes.
|
||
* ENAVAIL: (libc)Error Codes.
|
||
* ENEEDAUTH: (libc)Error Codes.
|
||
* ENETDOWN: (libc)Error Codes.
|
||
* ENETRESET: (libc)Error Codes.
|
||
* ENETUNREACH: (libc)Error Codes.
|
||
* ENFILE: (libc)Error Codes.
|
||
* ENOANO: (libc)Error Codes.
|
||
* ENOBUFS: (libc)Error Codes.
|
||
* ENOCSI: (libc)Error Codes.
|
||
* ENODATA: (libc)Error Codes.
|
||
* ENODEV: (libc)Error Codes.
|
||
* ENOENT: (libc)Error Codes.
|
||
* ENOEXEC: (libc)Error Codes.
|
||
* ENOKEY: (libc)Error Codes.
|
||
* ENOLCK: (libc)Error Codes.
|
||
* ENOLINK: (libc)Error Codes.
|
||
* ENOMEDIUM: (libc)Error Codes.
|
||
* ENOMEM: (libc)Error Codes.
|
||
* ENOMSG: (libc)Error Codes.
|
||
* ENONET: (libc)Error Codes.
|
||
* ENOPKG: (libc)Error Codes.
|
||
* ENOPROTOOPT: (libc)Error Codes.
|
||
* ENOSPC: (libc)Error Codes.
|
||
* ENOSR: (libc)Error Codes.
|
||
* ENOSTR: (libc)Error Codes.
|
||
* ENOSYS: (libc)Error Codes.
|
||
* ENOTBLK: (libc)Error Codes.
|
||
* ENOTCONN: (libc)Error Codes.
|
||
* ENOTDIR: (libc)Error Codes.
|
||
* ENOTEMPTY: (libc)Error Codes.
|
||
* ENOTNAM: (libc)Error Codes.
|
||
* ENOTRECOVERABLE: (libc)Error Codes.
|
||
* ENOTSOCK: (libc)Error Codes.
|
||
* ENOTSUP: (libc)Error Codes.
|
||
* ENOTTY: (libc)Error Codes.
|
||
* ENOTUNIQ: (libc)Error Codes.
|
||
* ENXIO: (libc)Error Codes.
|
||
* EOF: (libc)EOF and Errors.
|
||
* EOPNOTSUPP: (libc)Error Codes.
|
||
* EOVERFLOW: (libc)Error Codes.
|
||
* EOWNERDEAD: (libc)Error Codes.
|
||
* EPERM: (libc)Error Codes.
|
||
* EPFNOSUPPORT: (libc)Error Codes.
|
||
* EPIPE: (libc)Error Codes.
|
||
* EPROCLIM: (libc)Error Codes.
|
||
* EPROCUNAVAIL: (libc)Error Codes.
|
||
* EPROGMISMATCH: (libc)Error Codes.
|
||
* EPROGUNAVAIL: (libc)Error Codes.
|
||
* EPROTO: (libc)Error Codes.
|
||
* EPROTONOSUPPORT: (libc)Error Codes.
|
||
* EPROTOTYPE: (libc)Error Codes.
|
||
* EQUIV_CLASS_MAX: (libc)Utility Limits.
|
||
* ERANGE: (libc)Error Codes.
|
||
* EREMCHG: (libc)Error Codes.
|
||
* EREMOTE: (libc)Error Codes.
|
||
* EREMOTEIO: (libc)Error Codes.
|
||
* ERESTART: (libc)Error Codes.
|
||
* ERFKILL: (libc)Error Codes.
|
||
* EROFS: (libc)Error Codes.
|
||
* ERPCMISMATCH: (libc)Error Codes.
|
||
* ESHUTDOWN: (libc)Error Codes.
|
||
* ESOCKTNOSUPPORT: (libc)Error Codes.
|
||
* ESPIPE: (libc)Error Codes.
|
||
* ESRCH: (libc)Error Codes.
|
||
* ESRMNT: (libc)Error Codes.
|
||
* ESTALE: (libc)Error Codes.
|
||
* ESTRPIPE: (libc)Error Codes.
|
||
* ETIME: (libc)Error Codes.
|
||
* ETIMEDOUT: (libc)Error Codes.
|
||
* ETOOMANYREFS: (libc)Error Codes.
|
||
* ETXTBSY: (libc)Error Codes.
|
||
* EUCLEAN: (libc)Error Codes.
|
||
* EUNATCH: (libc)Error Codes.
|
||
* EUSERS: (libc)Error Codes.
|
||
* EWOULDBLOCK: (libc)Error Codes.
|
||
* EXDEV: (libc)Error Codes.
|
||
* EXFULL: (libc)Error Codes.
|
||
* EXIT_FAILURE: (libc)Exit Status.
|
||
* EXIT_SUCCESS: (libc)Exit Status.
|
||
* EXPR_NEST_MAX: (libc)Utility Limits.
|
||
* FD_CLOEXEC: (libc)Descriptor Flags.
|
||
* FD_CLR: (libc)Waiting for I/O.
|
||
* FD_ISSET: (libc)Waiting for I/O.
|
||
* FD_SET: (libc)Waiting for I/O.
|
||
* FD_SETSIZE: (libc)Waiting for I/O.
|
||
* FD_ZERO: (libc)Waiting for I/O.
|
||
* FE_SNANS_ALWAYS_SIGNAL: (libc)Infinity and NaN.
|
||
* FILENAME_MAX: (libc)Limits for Files.
|
||
* FLUSHO: (libc)Local Modes.
|
||
* FOPEN_MAX: (libc)Opening Streams.
|
||
* FP_ILOGB0: (libc)Exponents and Logarithms.
|
||
* FP_ILOGBNAN: (libc)Exponents and Logarithms.
|
||
* FP_LLOGB0: (libc)Exponents and Logarithms.
|
||
* FP_LLOGBNAN: (libc)Exponents and Logarithms.
|
||
* F_DUPFD: (libc)Duplicating Descriptors.
|
||
* F_GETFD: (libc)Descriptor Flags.
|
||
* F_GETFL: (libc)Getting File Status Flags.
|
||
* F_GETLK: (libc)File Locks.
|
||
* F_GETOWN: (libc)Interrupt Input.
|
||
* F_OFD_GETLK: (libc)Open File Description Locks.
|
||
* F_OFD_SETLK: (libc)Open File Description Locks.
|
||
* F_OFD_SETLKW: (libc)Open File Description Locks.
|
||
* F_OK: (libc)Testing File Access.
|
||
* F_SETFD: (libc)Descriptor Flags.
|
||
* F_SETFL: (libc)Getting File Status Flags.
|
||
* F_SETLK: (libc)File Locks.
|
||
* F_SETLKW: (libc)File Locks.
|
||
* F_SETOWN: (libc)Interrupt Input.
|
||
* HAS_CPU_FEATURE: (libc)X86.
|
||
* HUGE_VAL: (libc)Math Error Reporting.
|
||
* HUGE_VALF: (libc)Math Error Reporting.
|
||
* HUGE_VALL: (libc)Math Error Reporting.
|
||
* HUGE_VAL_FN: (libc)Math Error Reporting.
|
||
* HUGE_VAL_FNx: (libc)Math Error Reporting.
|
||
* HUPCL: (libc)Control Modes.
|
||
* I: (libc)Complex Numbers.
|
||
* ICANON: (libc)Local Modes.
|
||
* ICRNL: (libc)Input Modes.
|
||
* IEXTEN: (libc)Local Modes.
|
||
* IFNAMSIZ: (libc)Interface Naming.
|
||
* IFTODT: (libc)Directory Entries.
|
||
* IGNBRK: (libc)Input Modes.
|
||
* IGNCR: (libc)Input Modes.
|
||
* IGNPAR: (libc)Input Modes.
|
||
* IMAXBEL: (libc)Input Modes.
|
||
* INADDR_ANY: (libc)Host Address Data Type.
|
||
* INADDR_BROADCAST: (libc)Host Address Data Type.
|
||
* INADDR_LOOPBACK: (libc)Host Address Data Type.
|
||
* INADDR_NONE: (libc)Host Address Data Type.
|
||
* INFINITY: (libc)Infinity and NaN.
|
||
* INLCR: (libc)Input Modes.
|
||
* INPCK: (libc)Input Modes.
|
||
* IPPORT_RESERVED: (libc)Ports.
|
||
* IPPORT_USERRESERVED: (libc)Ports.
|
||
* ISIG: (libc)Local Modes.
|
||
* ISTRIP: (libc)Input Modes.
|
||
* IXANY: (libc)Input Modes.
|
||
* IXOFF: (libc)Input Modes.
|
||
* IXON: (libc)Input Modes.
|
||
* LINE_MAX: (libc)Utility Limits.
|
||
* LINK_MAX: (libc)Limits for Files.
|
||
* L_ctermid: (libc)Identifying the Terminal.
|
||
* L_cuserid: (libc)Who Logged In.
|
||
* L_tmpnam: (libc)Temporary Files.
|
||
* MAXNAMLEN: (libc)Limits for Files.
|
||
* MAXSYMLINKS: (libc)Symbolic Links.
|
||
* MAX_CANON: (libc)Limits for Files.
|
||
* MAX_INPUT: (libc)Limits for Files.
|
||
* MB_CUR_MAX: (libc)Selecting the Conversion.
|
||
* MB_LEN_MAX: (libc)Selecting the Conversion.
|
||
* MDMBUF: (libc)Control Modes.
|
||
* MSG_DONTROUTE: (libc)Socket Data Options.
|
||
* MSG_OOB: (libc)Socket Data Options.
|
||
* MSG_PEEK: (libc)Socket Data Options.
|
||
* NAME_MAX: (libc)Limits for Files.
|
||
* NAN: (libc)Infinity and NaN.
|
||
* NCCS: (libc)Mode Data Types.
|
||
* NGROUPS_MAX: (libc)General Limits.
|
||
* NOFLSH: (libc)Local Modes.
|
||
* NOKERNINFO: (libc)Local Modes.
|
||
* NSIG: (libc)Standard Signals.
|
||
* NULL: (libc)Null Pointer Constant.
|
||
* ONLCR: (libc)Output Modes.
|
||
* ONOEOT: (libc)Output Modes.
|
||
* OPEN_MAX: (libc)General Limits.
|
||
* OPOST: (libc)Output Modes.
|
||
* OXTABS: (libc)Output Modes.
|
||
* O_ACCMODE: (libc)Access Modes.
|
||
* O_APPEND: (libc)Operating Modes.
|
||
* O_ASYNC: (libc)Operating Modes.
|
||
* O_CREAT: (libc)Open-time Flags.
|
||
* O_DIRECTORY: (libc)Open-time Flags.
|
||
* O_EXCL: (libc)Open-time Flags.
|
||
* O_EXEC: (libc)Access Modes.
|
||
* O_EXLOCK: (libc)Open-time Flags.
|
||
* O_FSYNC: (libc)Operating Modes.
|
||
* O_IGNORE_CTTY: (libc)Open-time Flags.
|
||
* O_NDELAY: (libc)Operating Modes.
|
||
* O_NOATIME: (libc)Operating Modes.
|
||
* O_NOCTTY: (libc)Open-time Flags.
|
||
* O_NOFOLLOW: (libc)Open-time Flags.
|
||
* O_NOLINK: (libc)Open-time Flags.
|
||
* O_NONBLOCK: (libc)Open-time Flags.
|
||
* O_NONBLOCK: (libc)Operating Modes.
|
||
* O_NOTRANS: (libc)Open-time Flags.
|
||
* O_PATH: (libc)Access Modes.
|
||
* O_RDONLY: (libc)Access Modes.
|
||
* O_RDWR: (libc)Access Modes.
|
||
* O_READ: (libc)Access Modes.
|
||
* O_SHLOCK: (libc)Open-time Flags.
|
||
* O_SYNC: (libc)Operating Modes.
|
||
* O_TMPFILE: (libc)Open-time Flags.
|
||
* O_TRUNC: (libc)Open-time Flags.
|
||
* O_WRITE: (libc)Access Modes.
|
||
* O_WRONLY: (libc)Access Modes.
|
||
* PARENB: (libc)Control Modes.
|
||
* PARMRK: (libc)Input Modes.
|
||
* PARODD: (libc)Control Modes.
|
||
* PATH_MAX: (libc)Limits for Files.
|
||
* PA_FLAG_MASK: (libc)Parsing a Template String.
|
||
* PENDIN: (libc)Local Modes.
|
||
* PF_FILE: (libc)Local Namespace Details.
|
||
* PF_INET6: (libc)Internet Namespace.
|
||
* PF_INET: (libc)Internet Namespace.
|
||
* PF_LOCAL: (libc)Local Namespace Details.
|
||
* PF_UNIX: (libc)Local Namespace Details.
|
||
* PIPE_BUF: (libc)Limits for Files.
|
||
* PTHREAD_ATTR_NO_SIGMASK_NP: (libc)Initial Thread Signal Mask.
|
||
* P_tmpdir: (libc)Temporary Files.
|
||
* RAND_MAX: (libc)ISO Random.
|
||
* RE_DUP_MAX: (libc)General Limits.
|
||
* RLIM_INFINITY: (libc)Limits on Resources.
|
||
* R_OK: (libc)Testing File Access.
|
||
* SA_NOCLDSTOP: (libc)Flags for Sigaction.
|
||
* SA_ONSTACK: (libc)Flags for Sigaction.
|
||
* SA_RESTART: (libc)Flags for Sigaction.
|
||
* SEEK_CUR: (libc)File Positioning.
|
||
* SEEK_END: (libc)File Positioning.
|
||
* SEEK_SET: (libc)File Positioning.
|
||
* SIGABRT: (libc)Program Error Signals.
|
||
* SIGALRM: (libc)Alarm Signals.
|
||
* SIGBUS: (libc)Program Error Signals.
|
||
* SIGCHLD: (libc)Job Control Signals.
|
||
* SIGCLD: (libc)Job Control Signals.
|
||
* SIGCONT: (libc)Job Control Signals.
|
||
* SIGEMT: (libc)Program Error Signals.
|
||
* SIGFPE: (libc)Program Error Signals.
|
||
* SIGHUP: (libc)Termination Signals.
|
||
* SIGILL: (libc)Program Error Signals.
|
||
* SIGINFO: (libc)Miscellaneous Signals.
|
||
* SIGINT: (libc)Termination Signals.
|
||
* SIGIO: (libc)Asynchronous I/O Signals.
|
||
* SIGIOT: (libc)Program Error Signals.
|
||
* SIGKILL: (libc)Termination Signals.
|
||
* SIGLOST: (libc)Operation Error Signals.
|
||
* SIGPIPE: (libc)Operation Error Signals.
|
||
* SIGPOLL: (libc)Asynchronous I/O Signals.
|
||
* SIGPROF: (libc)Alarm Signals.
|
||
* SIGQUIT: (libc)Termination Signals.
|
||
* SIGSEGV: (libc)Program Error Signals.
|
||
* SIGSTOP: (libc)Job Control Signals.
|
||
* SIGSYS: (libc)Program Error Signals.
|
||
* SIGTERM: (libc)Termination Signals.
|
||
* SIGTRAP: (libc)Program Error Signals.
|
||
* SIGTSTP: (libc)Job Control Signals.
|
||
* SIGTTIN: (libc)Job Control Signals.
|
||
* SIGTTOU: (libc)Job Control Signals.
|
||
* SIGURG: (libc)Asynchronous I/O Signals.
|
||
* SIGUSR1: (libc)Miscellaneous Signals.
|
||
* SIGUSR2: (libc)Miscellaneous Signals.
|
||
* SIGVTALRM: (libc)Alarm Signals.
|
||
* SIGWINCH: (libc)Miscellaneous Signals.
|
||
* SIGXCPU: (libc)Operation Error Signals.
|
||
* SIGXFSZ: (libc)Operation Error Signals.
|
||
* SIG_ERR: (libc)Basic Signal Handling.
|
||
* SNAN: (libc)Infinity and NaN.
|
||
* SNANF: (libc)Infinity and NaN.
|
||
* SNANFN: (libc)Infinity and NaN.
|
||
* SNANFNx: (libc)Infinity and NaN.
|
||
* SNANL: (libc)Infinity and NaN.
|
||
* SOCK_DGRAM: (libc)Communication Styles.
|
||
* SOCK_RAW: (libc)Communication Styles.
|
||
* SOCK_RDM: (libc)Communication Styles.
|
||
* SOCK_SEQPACKET: (libc)Communication Styles.
|
||
* SOCK_STREAM: (libc)Communication Styles.
|
||
* SOL_SOCKET: (libc)Socket-Level Options.
|
||
* SSIZE_MAX: (libc)General Limits.
|
||
* STREAM_MAX: (libc)General Limits.
|
||
* SUN_LEN: (libc)Local Namespace Details.
|
||
* S_IFMT: (libc)Testing File Type.
|
||
* S_ISBLK: (libc)Testing File Type.
|
||
* S_ISCHR: (libc)Testing File Type.
|
||
* S_ISDIR: (libc)Testing File Type.
|
||
* S_ISFIFO: (libc)Testing File Type.
|
||
* S_ISLNK: (libc)Testing File Type.
|
||
* S_ISREG: (libc)Testing File Type.
|
||
* S_ISSOCK: (libc)Testing File Type.
|
||
* S_TYPEISMQ: (libc)Testing File Type.
|
||
* S_TYPEISSEM: (libc)Testing File Type.
|
||
* S_TYPEISSHM: (libc)Testing File Type.
|
||
* TMP_MAX: (libc)Temporary Files.
|
||
* TOSTOP: (libc)Local Modes.
|
||
* TZNAME_MAX: (libc)General Limits.
|
||
* VDISCARD: (libc)Other Special.
|
||
* VDSUSP: (libc)Signal Characters.
|
||
* VEOF: (libc)Editing Characters.
|
||
* VEOL2: (libc)Editing Characters.
|
||
* VEOL: (libc)Editing Characters.
|
||
* VERASE: (libc)Editing Characters.
|
||
* VINTR: (libc)Signal Characters.
|
||
* VKILL: (libc)Editing Characters.
|
||
* VLNEXT: (libc)Other Special.
|
||
* VMIN: (libc)Noncanonical Input.
|
||
* VQUIT: (libc)Signal Characters.
|
||
* VREPRINT: (libc)Editing Characters.
|
||
* VSTART: (libc)Start/Stop Characters.
|
||
* VSTATUS: (libc)Other Special.
|
||
* VSTOP: (libc)Start/Stop Characters.
|
||
* VSUSP: (libc)Signal Characters.
|
||
* VTIME: (libc)Noncanonical Input.
|
||
* VWERASE: (libc)Editing Characters.
|
||
* WCHAR_MAX: (libc)Extended Char Intro.
|
||
* WCHAR_MIN: (libc)Extended Char Intro.
|
||
* WCOREDUMP: (libc)Process Completion Status.
|
||
* WEOF: (libc)EOF and Errors.
|
||
* WEOF: (libc)Extended Char Intro.
|
||
* WEXITSTATUS: (libc)Process Completion Status.
|
||
* WIFEXITED: (libc)Process Completion Status.
|
||
* WIFSIGNALED: (libc)Process Completion Status.
|
||
* WIFSTOPPED: (libc)Process Completion Status.
|
||
* WSTOPSIG: (libc)Process Completion Status.
|
||
* WTERMSIG: (libc)Process Completion Status.
|
||
* W_OK: (libc)Testing File Access.
|
||
* X_OK: (libc)Testing File Access.
|
||
* _Complex_I: (libc)Complex Numbers.
|
||
* _Exit: (libc)Termination Internals.
|
||
* _IOFBF: (libc)Controlling Buffering.
|
||
* _IOLBF: (libc)Controlling Buffering.
|
||
* _IONBF: (libc)Controlling Buffering.
|
||
* _Imaginary_I: (libc)Complex Numbers.
|
||
* _PATH_UTMP: (libc)Manipulating the Database.
|
||
* _PATH_WTMP: (libc)Manipulating the Database.
|
||
* _POSIX2_C_DEV: (libc)System Options.
|
||
* _POSIX2_C_VERSION: (libc)Version Supported.
|
||
* _POSIX2_FORT_DEV: (libc)System Options.
|
||
* _POSIX2_FORT_RUN: (libc)System Options.
|
||
* _POSIX2_LOCALEDEF: (libc)System Options.
|
||
* _POSIX2_SW_DEV: (libc)System Options.
|
||
* _POSIX_CHOWN_RESTRICTED: (libc)Options for Files.
|
||
* _POSIX_JOB_CONTROL: (libc)System Options.
|
||
* _POSIX_NO_TRUNC: (libc)Options for Files.
|
||
* _POSIX_SAVED_IDS: (libc)System Options.
|
||
* _POSIX_VDISABLE: (libc)Options for Files.
|
||
* _POSIX_VERSION: (libc)Version Supported.
|
||
* __fbufsize: (libc)Controlling Buffering.
|
||
* __flbf: (libc)Controlling Buffering.
|
||
* __fpending: (libc)Controlling Buffering.
|
||
* __fpurge: (libc)Flushing Buffers.
|
||
* __freadable: (libc)Opening Streams.
|
||
* __freading: (libc)Opening Streams.
|
||
* __fsetlocking: (libc)Streams and Threads.
|
||
* __fwritable: (libc)Opening Streams.
|
||
* __fwriting: (libc)Opening Streams.
|
||
* __gconv_end_fct: (libc)glibc iconv Implementation.
|
||
* __gconv_fct: (libc)glibc iconv Implementation.
|
||
* __gconv_init_fct: (libc)glibc iconv Implementation.
|
||
* __ppc_get_timebase: (libc)PowerPC.
|
||
* __ppc_get_timebase_freq: (libc)PowerPC.
|
||
* __ppc_mdoio: (libc)PowerPC.
|
||
* __ppc_mdoom: (libc)PowerPC.
|
||
* __ppc_set_ppr_low: (libc)PowerPC.
|
||
* __ppc_set_ppr_med: (libc)PowerPC.
|
||
* __ppc_set_ppr_med_high: (libc)PowerPC.
|
||
* __ppc_set_ppr_med_low: (libc)PowerPC.
|
||
* __ppc_set_ppr_very_low: (libc)PowerPC.
|
||
* __ppc_yield: (libc)PowerPC.
|
||
* __riscv_flush_icache: (libc)RISC-V.
|
||
* __va_copy: (libc)Argument Macros.
|
||
* __x86_get_cpuid_feature_leaf: (libc)X86.
|
||
* _exit: (libc)Termination Internals.
|
||
* _flushlbf: (libc)Flushing Buffers.
|
||
* _tolower: (libc)Case Conversion.
|
||
* _toupper: (libc)Case Conversion.
|
||
* a64l: (libc)Encode Binary Data.
|
||
* abort: (libc)Aborting a Program.
|
||
* abs: (libc)Absolute Value.
|
||
* accept: (libc)Accepting Connections.
|
||
* access: (libc)Testing File Access.
|
||
* acos: (libc)Inverse Trig Functions.
|
||
* acosf: (libc)Inverse Trig Functions.
|
||
* acosfN: (libc)Inverse Trig Functions.
|
||
* acosfNx: (libc)Inverse Trig Functions.
|
||
* acosh: (libc)Hyperbolic Functions.
|
||
* acoshf: (libc)Hyperbolic Functions.
|
||
* acoshfN: (libc)Hyperbolic Functions.
|
||
* acoshfNx: (libc)Hyperbolic Functions.
|
||
* acoshl: (libc)Hyperbolic Functions.
|
||
* acosl: (libc)Inverse Trig Functions.
|
||
* addmntent: (libc)mtab.
|
||
* addseverity: (libc)Adding Severity Classes.
|
||
* adjtime: (libc)Setting and Adjusting the Time.
|
||
* adjtimex: (libc)Setting and Adjusting the Time.
|
||
* aio_cancel64: (libc)Cancel AIO Operations.
|
||
* aio_cancel: (libc)Cancel AIO Operations.
|
||
* aio_error64: (libc)Status of AIO Operations.
|
||
* aio_error: (libc)Status of AIO Operations.
|
||
* aio_fsync64: (libc)Synchronizing AIO Operations.
|
||
* aio_fsync: (libc)Synchronizing AIO Operations.
|
||
* aio_init: (libc)Configuration of AIO.
|
||
* aio_read64: (libc)Asynchronous Reads/Writes.
|
||
* aio_read: (libc)Asynchronous Reads/Writes.
|
||
* aio_return64: (libc)Status of AIO Operations.
|
||
* aio_return: (libc)Status of AIO Operations.
|
||
* aio_suspend64: (libc)Synchronizing AIO Operations.
|
||
* aio_suspend: (libc)Synchronizing AIO Operations.
|
||
* aio_write64: (libc)Asynchronous Reads/Writes.
|
||
* aio_write: (libc)Asynchronous Reads/Writes.
|
||
* alarm: (libc)Setting an Alarm.
|
||
* aligned_alloc: (libc)Aligned Memory Blocks.
|
||
* alloca: (libc)Variable Size Automatic.
|
||
* alphasort64: (libc)Scanning Directory Content.
|
||
* alphasort: (libc)Scanning Directory Content.
|
||
* argp_error: (libc)Argp Helper Functions.
|
||
* argp_failure: (libc)Argp Helper Functions.
|
||
* argp_help: (libc)Argp Help.
|
||
* argp_parse: (libc)Argp.
|
||
* argp_state_help: (libc)Argp Helper Functions.
|
||
* argp_usage: (libc)Argp Helper Functions.
|
||
* argz_add: (libc)Argz Functions.
|
||
* argz_add_sep: (libc)Argz Functions.
|
||
* argz_append: (libc)Argz Functions.
|
||
* argz_count: (libc)Argz Functions.
|
||
* argz_create: (libc)Argz Functions.
|
||
* argz_create_sep: (libc)Argz Functions.
|
||
* argz_delete: (libc)Argz Functions.
|
||
* argz_extract: (libc)Argz Functions.
|
||
* argz_insert: (libc)Argz Functions.
|
||
* argz_next: (libc)Argz Functions.
|
||
* argz_replace: (libc)Argz Functions.
|
||
* argz_stringify: (libc)Argz Functions.
|
||
* asctime: (libc)Formatting Calendar Time.
|
||
* asctime_r: (libc)Formatting Calendar Time.
|
||
* asin: (libc)Inverse Trig Functions.
|
||
* asinf: (libc)Inverse Trig Functions.
|
||
* asinfN: (libc)Inverse Trig Functions.
|
||
* asinfNx: (libc)Inverse Trig Functions.
|
||
* asinh: (libc)Hyperbolic Functions.
|
||
* asinhf: (libc)Hyperbolic Functions.
|
||
* asinhfN: (libc)Hyperbolic Functions.
|
||
* asinhfNx: (libc)Hyperbolic Functions.
|
||
* asinhl: (libc)Hyperbolic Functions.
|
||
* asinl: (libc)Inverse Trig Functions.
|
||
* asprintf: (libc)Dynamic Output.
|
||
* assert: (libc)Consistency Checking.
|
||
* assert_perror: (libc)Consistency Checking.
|
||
* atan2: (libc)Inverse Trig Functions.
|
||
* atan2f: (libc)Inverse Trig Functions.
|
||
* atan2fN: (libc)Inverse Trig Functions.
|
||
* atan2fNx: (libc)Inverse Trig Functions.
|
||
* atan2l: (libc)Inverse Trig Functions.
|
||
* atan: (libc)Inverse Trig Functions.
|
||
* atanf: (libc)Inverse Trig Functions.
|
||
* atanfN: (libc)Inverse Trig Functions.
|
||
* atanfNx: (libc)Inverse Trig Functions.
|
||
* atanh: (libc)Hyperbolic Functions.
|
||
* atanhf: (libc)Hyperbolic Functions.
|
||
* atanhfN: (libc)Hyperbolic Functions.
|
||
* atanhfNx: (libc)Hyperbolic Functions.
|
||
* atanhl: (libc)Hyperbolic Functions.
|
||
* atanl: (libc)Inverse Trig Functions.
|
||
* atexit: (libc)Cleanups on Exit.
|
||
* atof: (libc)Parsing of Floats.
|
||
* atoi: (libc)Parsing of Integers.
|
||
* atol: (libc)Parsing of Integers.
|
||
* atoll: (libc)Parsing of Integers.
|
||
* backtrace: (libc)Backtraces.
|
||
* backtrace_symbols: (libc)Backtraces.
|
||
* backtrace_symbols_fd: (libc)Backtraces.
|
||
* basename: (libc)Finding Tokens in a String.
|
||
* basename: (libc)Finding Tokens in a String.
|
||
* bcmp: (libc)String/Array Comparison.
|
||
* bcopy: (libc)Copying Strings and Arrays.
|
||
* bind: (libc)Setting Address.
|
||
* bind_textdomain_codeset: (libc)Charset conversion in gettext.
|
||
* bindtextdomain: (libc)Locating gettext catalog.
|
||
* brk: (libc)Resizing the Data Segment.
|
||
* bsearch: (libc)Array Search Function.
|
||
* btowc: (libc)Converting a Character.
|
||
* bzero: (libc)Copying Strings and Arrays.
|
||
* cabs: (libc)Absolute Value.
|
||
* cabsf: (libc)Absolute Value.
|
||
* cabsfN: (libc)Absolute Value.
|
||
* cabsfNx: (libc)Absolute Value.
|
||
* cabsl: (libc)Absolute Value.
|
||
* cacos: (libc)Inverse Trig Functions.
|
||
* cacosf: (libc)Inverse Trig Functions.
|
||
* cacosfN: (libc)Inverse Trig Functions.
|
||
* cacosfNx: (libc)Inverse Trig Functions.
|
||
* cacosh: (libc)Hyperbolic Functions.
|
||
* cacoshf: (libc)Hyperbolic Functions.
|
||
* cacoshfN: (libc)Hyperbolic Functions.
|
||
* cacoshfNx: (libc)Hyperbolic Functions.
|
||
* cacoshl: (libc)Hyperbolic Functions.
|
||
* cacosl: (libc)Inverse Trig Functions.
|
||
* call_once: (libc)Call Once.
|
||
* calloc: (libc)Allocating Cleared Space.
|
||
* canonicalize: (libc)FP Bit Twiddling.
|
||
* canonicalize_file_name: (libc)Symbolic Links.
|
||
* canonicalizef: (libc)FP Bit Twiddling.
|
||
* canonicalizefN: (libc)FP Bit Twiddling.
|
||
* canonicalizefNx: (libc)FP Bit Twiddling.
|
||
* canonicalizel: (libc)FP Bit Twiddling.
|
||
* carg: (libc)Operations on Complex.
|
||
* cargf: (libc)Operations on Complex.
|
||
* cargfN: (libc)Operations on Complex.
|
||
* cargfNx: (libc)Operations on Complex.
|
||
* cargl: (libc)Operations on Complex.
|
||
* casin: (libc)Inverse Trig Functions.
|
||
* casinf: (libc)Inverse Trig Functions.
|
||
* casinfN: (libc)Inverse Trig Functions.
|
||
* casinfNx: (libc)Inverse Trig Functions.
|
||
* casinh: (libc)Hyperbolic Functions.
|
||
* casinhf: (libc)Hyperbolic Functions.
|
||
* casinhfN: (libc)Hyperbolic Functions.
|
||
* casinhfNx: (libc)Hyperbolic Functions.
|
||
* casinhl: (libc)Hyperbolic Functions.
|
||
* casinl: (libc)Inverse Trig Functions.
|
||
* catan: (libc)Inverse Trig Functions.
|
||
* catanf: (libc)Inverse Trig Functions.
|
||
* catanfN: (libc)Inverse Trig Functions.
|
||
* catanfNx: (libc)Inverse Trig Functions.
|
||
* catanh: (libc)Hyperbolic Functions.
|
||
* catanhf: (libc)Hyperbolic Functions.
|
||
* catanhfN: (libc)Hyperbolic Functions.
|
||
* catanhfNx: (libc)Hyperbolic Functions.
|
||
* catanhl: (libc)Hyperbolic Functions.
|
||
* catanl: (libc)Inverse Trig Functions.
|
||
* catclose: (libc)The catgets Functions.
|
||
* catgets: (libc)The catgets Functions.
|
||
* catopen: (libc)The catgets Functions.
|
||
* cbrt: (libc)Exponents and Logarithms.
|
||
* cbrtf: (libc)Exponents and Logarithms.
|
||
* cbrtfN: (libc)Exponents and Logarithms.
|
||
* cbrtfNx: (libc)Exponents and Logarithms.
|
||
* cbrtl: (libc)Exponents and Logarithms.
|
||
* ccos: (libc)Trig Functions.
|
||
* ccosf: (libc)Trig Functions.
|
||
* ccosfN: (libc)Trig Functions.
|
||
* ccosfNx: (libc)Trig Functions.
|
||
* ccosh: (libc)Hyperbolic Functions.
|
||
* ccoshf: (libc)Hyperbolic Functions.
|
||
* ccoshfN: (libc)Hyperbolic Functions.
|
||
* ccoshfNx: (libc)Hyperbolic Functions.
|
||
* ccoshl: (libc)Hyperbolic Functions.
|
||
* ccosl: (libc)Trig Functions.
|
||
* ceil: (libc)Rounding Functions.
|
||
* ceilf: (libc)Rounding Functions.
|
||
* ceilfN: (libc)Rounding Functions.
|
||
* ceilfNx: (libc)Rounding Functions.
|
||
* ceill: (libc)Rounding Functions.
|
||
* cexp: (libc)Exponents and Logarithms.
|
||
* cexpf: (libc)Exponents and Logarithms.
|
||
* cexpfN: (libc)Exponents and Logarithms.
|
||
* cexpfNx: (libc)Exponents and Logarithms.
|
||
* cexpl: (libc)Exponents and Logarithms.
|
||
* cfgetispeed: (libc)Line Speed.
|
||
* cfgetospeed: (libc)Line Speed.
|
||
* cfmakeraw: (libc)Noncanonical Input.
|
||
* cfsetispeed: (libc)Line Speed.
|
||
* cfsetospeed: (libc)Line Speed.
|
||
* cfsetspeed: (libc)Line Speed.
|
||
* chdir: (libc)Working Directory.
|
||
* chmod: (libc)Setting Permissions.
|
||
* chown: (libc)File Owner.
|
||
* cimag: (libc)Operations on Complex.
|
||
* cimagf: (libc)Operations on Complex.
|
||
* cimagfN: (libc)Operations on Complex.
|
||
* cimagfNx: (libc)Operations on Complex.
|
||
* cimagl: (libc)Operations on Complex.
|
||
* clearenv: (libc)Environment Access.
|
||
* clearerr: (libc)Error Recovery.
|
||
* clearerr_unlocked: (libc)Error Recovery.
|
||
* clock: (libc)CPU Time.
|
||
* clock_getres: (libc)Getting the Time.
|
||
* clock_gettime: (libc)Getting the Time.
|
||
* clock_settime: (libc)Setting and Adjusting the Time.
|
||
* clog10: (libc)Exponents and Logarithms.
|
||
* clog10f: (libc)Exponents and Logarithms.
|
||
* clog10fN: (libc)Exponents and Logarithms.
|
||
* clog10fNx: (libc)Exponents and Logarithms.
|
||
* clog10l: (libc)Exponents and Logarithms.
|
||
* clog: (libc)Exponents and Logarithms.
|
||
* clogf: (libc)Exponents and Logarithms.
|
||
* clogfN: (libc)Exponents and Logarithms.
|
||
* clogfNx: (libc)Exponents and Logarithms.
|
||
* clogl: (libc)Exponents and Logarithms.
|
||
* close: (libc)Opening and Closing Files.
|
||
* closedir: (libc)Reading/Closing Directory.
|
||
* closelog: (libc)closelog.
|
||
* cnd_broadcast: (libc)ISO C Condition Variables.
|
||
* cnd_destroy: (libc)ISO C Condition Variables.
|
||
* cnd_init: (libc)ISO C Condition Variables.
|
||
* cnd_signal: (libc)ISO C Condition Variables.
|
||
* cnd_timedwait: (libc)ISO C Condition Variables.
|
||
* cnd_wait: (libc)ISO C Condition Variables.
|
||
* confstr: (libc)String Parameters.
|
||
* conj: (libc)Operations on Complex.
|
||
* conjf: (libc)Operations on Complex.
|
||
* conjfN: (libc)Operations on Complex.
|
||
* conjfNx: (libc)Operations on Complex.
|
||
* conjl: (libc)Operations on Complex.
|
||
* connect: (libc)Connecting.
|
||
* copy_file_range: (libc)Copying File Data.
|
||
* copysign: (libc)FP Bit Twiddling.
|
||
* copysignf: (libc)FP Bit Twiddling.
|
||
* copysignfN: (libc)FP Bit Twiddling.
|
||
* copysignfNx: (libc)FP Bit Twiddling.
|
||
* copysignl: (libc)FP Bit Twiddling.
|
||
* cos: (libc)Trig Functions.
|
||
* cosf: (libc)Trig Functions.
|
||
* cosfN: (libc)Trig Functions.
|
||
* cosfNx: (libc)Trig Functions.
|
||
* cosh: (libc)Hyperbolic Functions.
|
||
* coshf: (libc)Hyperbolic Functions.
|
||
* coshfN: (libc)Hyperbolic Functions.
|
||
* coshfNx: (libc)Hyperbolic Functions.
|
||
* coshl: (libc)Hyperbolic Functions.
|
||
* cosl: (libc)Trig Functions.
|
||
* cpow: (libc)Exponents and Logarithms.
|
||
* cpowf: (libc)Exponents and Logarithms.
|
||
* cpowfN: (libc)Exponents and Logarithms.
|
||
* cpowfNx: (libc)Exponents and Logarithms.
|
||
* cpowl: (libc)Exponents and Logarithms.
|
||
* cproj: (libc)Operations on Complex.
|
||
* cprojf: (libc)Operations on Complex.
|
||
* cprojfN: (libc)Operations on Complex.
|
||
* cprojfNx: (libc)Operations on Complex.
|
||
* cprojl: (libc)Operations on Complex.
|
||
* creal: (libc)Operations on Complex.
|
||
* crealf: (libc)Operations on Complex.
|
||
* crealfN: (libc)Operations on Complex.
|
||
* crealfNx: (libc)Operations on Complex.
|
||
* creall: (libc)Operations on Complex.
|
||
* creat64: (libc)Opening and Closing Files.
|
||
* creat: (libc)Opening and Closing Files.
|
||
* crypt: (libc)Passphrase Storage.
|
||
* crypt_r: (libc)Passphrase Storage.
|
||
* csin: (libc)Trig Functions.
|
||
* csinf: (libc)Trig Functions.
|
||
* csinfN: (libc)Trig Functions.
|
||
* csinfNx: (libc)Trig Functions.
|
||
* csinh: (libc)Hyperbolic Functions.
|
||
* csinhf: (libc)Hyperbolic Functions.
|
||
* csinhfN: (libc)Hyperbolic Functions.
|
||
* csinhfNx: (libc)Hyperbolic Functions.
|
||
* csinhl: (libc)Hyperbolic Functions.
|
||
* csinl: (libc)Trig Functions.
|
||
* csqrt: (libc)Exponents and Logarithms.
|
||
* csqrtf: (libc)Exponents and Logarithms.
|
||
* csqrtfN: (libc)Exponents and Logarithms.
|
||
* csqrtfNx: (libc)Exponents and Logarithms.
|
||
* csqrtl: (libc)Exponents and Logarithms.
|
||
* ctan: (libc)Trig Functions.
|
||
* ctanf: (libc)Trig Functions.
|
||
* ctanfN: (libc)Trig Functions.
|
||
* ctanfNx: (libc)Trig Functions.
|
||
* ctanh: (libc)Hyperbolic Functions.
|
||
* ctanhf: (libc)Hyperbolic Functions.
|
||
* ctanhfN: (libc)Hyperbolic Functions.
|
||
* ctanhfNx: (libc)Hyperbolic Functions.
|
||
* ctanhl: (libc)Hyperbolic Functions.
|
||
* ctanl: (libc)Trig Functions.
|
||
* ctermid: (libc)Identifying the Terminal.
|
||
* ctime: (libc)Formatting Calendar Time.
|
||
* ctime_r: (libc)Formatting Calendar Time.
|
||
* cuserid: (libc)Who Logged In.
|
||
* daddl: (libc)Misc FP Arithmetic.
|
||
* dcgettext: (libc)Translation with gettext.
|
||
* dcngettext: (libc)Advanced gettext functions.
|
||
* ddivl: (libc)Misc FP Arithmetic.
|
||
* dgettext: (libc)Translation with gettext.
|
||
* difftime: (libc)Calculating Elapsed Time.
|
||
* dirfd: (libc)Opening a Directory.
|
||
* dirname: (libc)Finding Tokens in a String.
|
||
* div: (libc)Integer Division.
|
||
* dmull: (libc)Misc FP Arithmetic.
|
||
* dngettext: (libc)Advanced gettext functions.
|
||
* drand48: (libc)SVID Random.
|
||
* drand48_r: (libc)SVID Random.
|
||
* drem: (libc)Remainder Functions.
|
||
* dremf: (libc)Remainder Functions.
|
||
* dreml: (libc)Remainder Functions.
|
||
* dsubl: (libc)Misc FP Arithmetic.
|
||
* dup2: (libc)Duplicating Descriptors.
|
||
* dup: (libc)Duplicating Descriptors.
|
||
* ecvt: (libc)System V Number Conversion.
|
||
* ecvt_r: (libc)System V Number Conversion.
|
||
* endfsent: (libc)fstab.
|
||
* endgrent: (libc)Scanning All Groups.
|
||
* endhostent: (libc)Host Names.
|
||
* endmntent: (libc)mtab.
|
||
* endnetent: (libc)Networks Database.
|
||
* endnetgrent: (libc)Lookup Netgroup.
|
||
* endprotoent: (libc)Protocols Database.
|
||
* endpwent: (libc)Scanning All Users.
|
||
* endservent: (libc)Services Database.
|
||
* endutent: (libc)Manipulating the Database.
|
||
* endutxent: (libc)XPG Functions.
|
||
* envz_add: (libc)Envz Functions.
|
||
* envz_entry: (libc)Envz Functions.
|
||
* envz_get: (libc)Envz Functions.
|
||
* envz_merge: (libc)Envz Functions.
|
||
* envz_remove: (libc)Envz Functions.
|
||
* envz_strip: (libc)Envz Functions.
|
||
* erand48: (libc)SVID Random.
|
||
* erand48_r: (libc)SVID Random.
|
||
* erf: (libc)Special Functions.
|
||
* erfc: (libc)Special Functions.
|
||
* erfcf: (libc)Special Functions.
|
||
* erfcfN: (libc)Special Functions.
|
||
* erfcfNx: (libc)Special Functions.
|
||
* erfcl: (libc)Special Functions.
|
||
* erff: (libc)Special Functions.
|
||
* erffN: (libc)Special Functions.
|
||
* erffNx: (libc)Special Functions.
|
||
* erfl: (libc)Special Functions.
|
||
* err: (libc)Error Messages.
|
||
* errno: (libc)Checking for Errors.
|
||
* error: (libc)Error Messages.
|
||
* error_at_line: (libc)Error Messages.
|
||
* errx: (libc)Error Messages.
|
||
* execl: (libc)Executing a File.
|
||
* execle: (libc)Executing a File.
|
||
* execlp: (libc)Executing a File.
|
||
* execv: (libc)Executing a File.
|
||
* execve: (libc)Executing a File.
|
||
* execvp: (libc)Executing a File.
|
||
* exit: (libc)Normal Termination.
|
||
* exp10: (libc)Exponents and Logarithms.
|
||
* exp10f: (libc)Exponents and Logarithms.
|
||
* exp10fN: (libc)Exponents and Logarithms.
|
||
* exp10fNx: (libc)Exponents and Logarithms.
|
||
* exp10l: (libc)Exponents and Logarithms.
|
||
* exp2: (libc)Exponents and Logarithms.
|
||
* exp2f: (libc)Exponents and Logarithms.
|
||
* exp2fN: (libc)Exponents and Logarithms.
|
||
* exp2fNx: (libc)Exponents and Logarithms.
|
||
* exp2l: (libc)Exponents and Logarithms.
|
||
* exp: (libc)Exponents and Logarithms.
|
||
* expf: (libc)Exponents and Logarithms.
|
||
* expfN: (libc)Exponents and Logarithms.
|
||
* expfNx: (libc)Exponents and Logarithms.
|
||
* expl: (libc)Exponents and Logarithms.
|
||
* explicit_bzero: (libc)Erasing Sensitive Data.
|
||
* expm1: (libc)Exponents and Logarithms.
|
||
* expm1f: (libc)Exponents and Logarithms.
|
||
* expm1fN: (libc)Exponents and Logarithms.
|
||
* expm1fNx: (libc)Exponents and Logarithms.
|
||
* expm1l: (libc)Exponents and Logarithms.
|
||
* fMaddfN: (libc)Misc FP Arithmetic.
|
||
* fMaddfNx: (libc)Misc FP Arithmetic.
|
||
* fMdivfN: (libc)Misc FP Arithmetic.
|
||
* fMdivfNx: (libc)Misc FP Arithmetic.
|
||
* fMmulfN: (libc)Misc FP Arithmetic.
|
||
* fMmulfNx: (libc)Misc FP Arithmetic.
|
||
* fMsubfN: (libc)Misc FP Arithmetic.
|
||
* fMsubfNx: (libc)Misc FP Arithmetic.
|
||
* fMxaddfN: (libc)Misc FP Arithmetic.
|
||
* fMxaddfNx: (libc)Misc FP Arithmetic.
|
||
* fMxdivfN: (libc)Misc FP Arithmetic.
|
||
* fMxdivfNx: (libc)Misc FP Arithmetic.
|
||
* fMxmulfN: (libc)Misc FP Arithmetic.
|
||
* fMxmulfNx: (libc)Misc FP Arithmetic.
|
||
* fMxsubfN: (libc)Misc FP Arithmetic.
|
||
* fMxsubfNx: (libc)Misc FP Arithmetic.
|
||
* fabs: (libc)Absolute Value.
|
||
* fabsf: (libc)Absolute Value.
|
||
* fabsfN: (libc)Absolute Value.
|
||
* fabsfNx: (libc)Absolute Value.
|
||
* fabsl: (libc)Absolute Value.
|
||
* fadd: (libc)Misc FP Arithmetic.
|
||
* faddl: (libc)Misc FP Arithmetic.
|
||
* fchdir: (libc)Working Directory.
|
||
* fchmod: (libc)Setting Permissions.
|
||
* fchown: (libc)File Owner.
|
||
* fclose: (libc)Closing Streams.
|
||
* fcloseall: (libc)Closing Streams.
|
||
* fcntl: (libc)Control Operations.
|
||
* fcvt: (libc)System V Number Conversion.
|
||
* fcvt_r: (libc)System V Number Conversion.
|
||
* fdatasync: (libc)Synchronizing I/O.
|
||
* fdim: (libc)Misc FP Arithmetic.
|
||
* fdimf: (libc)Misc FP Arithmetic.
|
||
* fdimfN: (libc)Misc FP Arithmetic.
|
||
* fdimfNx: (libc)Misc FP Arithmetic.
|
||
* fdiml: (libc)Misc FP Arithmetic.
|
||
* fdiv: (libc)Misc FP Arithmetic.
|
||
* fdivl: (libc)Misc FP Arithmetic.
|
||
* fdopen: (libc)Descriptors and Streams.
|
||
* fdopendir: (libc)Opening a Directory.
|
||
* feclearexcept: (libc)Status bit operations.
|
||
* fedisableexcept: (libc)Control Functions.
|
||
* feenableexcept: (libc)Control Functions.
|
||
* fegetenv: (libc)Control Functions.
|
||
* fegetexcept: (libc)Control Functions.
|
||
* fegetexceptflag: (libc)Status bit operations.
|
||
* fegetmode: (libc)Control Functions.
|
||
* fegetround: (libc)Rounding.
|
||
* feholdexcept: (libc)Control Functions.
|
||
* feof: (libc)EOF and Errors.
|
||
* feof_unlocked: (libc)EOF and Errors.
|
||
* feraiseexcept: (libc)Status bit operations.
|
||
* ferror: (libc)EOF and Errors.
|
||
* ferror_unlocked: (libc)EOF and Errors.
|
||
* fesetenv: (libc)Control Functions.
|
||
* fesetexcept: (libc)Status bit operations.
|
||
* fesetexceptflag: (libc)Status bit operations.
|
||
* fesetmode: (libc)Control Functions.
|
||
* fesetround: (libc)Rounding.
|
||
* fetestexcept: (libc)Status bit operations.
|
||
* fetestexceptflag: (libc)Status bit operations.
|
||
* feupdateenv: (libc)Control Functions.
|
||
* fexecve: (libc)Executing a File.
|
||
* fflush: (libc)Flushing Buffers.
|
||
* fflush_unlocked: (libc)Flushing Buffers.
|
||
* fgetc: (libc)Character Input.
|
||
* fgetc_unlocked: (libc)Character Input.
|
||
* fgetgrent: (libc)Scanning All Groups.
|
||
* fgetgrent_r: (libc)Scanning All Groups.
|
||
* fgetpos64: (libc)Portable Positioning.
|
||
* fgetpos: (libc)Portable Positioning.
|
||
* fgetpwent: (libc)Scanning All Users.
|
||
* fgetpwent_r: (libc)Scanning All Users.
|
||
* fgets: (libc)Line Input.
|
||
* fgets_unlocked: (libc)Line Input.
|
||
* fgetwc: (libc)Character Input.
|
||
* fgetwc_unlocked: (libc)Character Input.
|
||
* fgetws: (libc)Line Input.
|
||
* fgetws_unlocked: (libc)Line Input.
|
||
* fileno: (libc)Descriptors and Streams.
|
||
* fileno_unlocked: (libc)Descriptors and Streams.
|
||
* finite: (libc)Floating Point Classes.
|
||
* finitef: (libc)Floating Point Classes.
|
||
* finitel: (libc)Floating Point Classes.
|
||
* flockfile: (libc)Streams and Threads.
|
||
* floor: (libc)Rounding Functions.
|
||
* floorf: (libc)Rounding Functions.
|
||
* floorfN: (libc)Rounding Functions.
|
||
* floorfNx: (libc)Rounding Functions.
|
||
* floorl: (libc)Rounding Functions.
|
||
* fma: (libc)Misc FP Arithmetic.
|
||
* fmaf: (libc)Misc FP Arithmetic.
|
||
* fmafN: (libc)Misc FP Arithmetic.
|
||
* fmafNx: (libc)Misc FP Arithmetic.
|
||
* fmal: (libc)Misc FP Arithmetic.
|
||
* fmax: (libc)Misc FP Arithmetic.
|
||
* fmaxf: (libc)Misc FP Arithmetic.
|
||
* fmaxfN: (libc)Misc FP Arithmetic.
|
||
* fmaxfNx: (libc)Misc FP Arithmetic.
|
||
* fmaxl: (libc)Misc FP Arithmetic.
|
||
* fmaxmag: (libc)Misc FP Arithmetic.
|
||
* fmaxmagf: (libc)Misc FP Arithmetic.
|
||
* fmaxmagfN: (libc)Misc FP Arithmetic.
|
||
* fmaxmagfNx: (libc)Misc FP Arithmetic.
|
||
* fmaxmagl: (libc)Misc FP Arithmetic.
|
||
* fmemopen: (libc)String Streams.
|
||
* fmin: (libc)Misc FP Arithmetic.
|
||
* fminf: (libc)Misc FP Arithmetic.
|
||
* fminfN: (libc)Misc FP Arithmetic.
|
||
* fminfNx: (libc)Misc FP Arithmetic.
|
||
* fminl: (libc)Misc FP Arithmetic.
|
||
* fminmag: (libc)Misc FP Arithmetic.
|
||
* fminmagf: (libc)Misc FP Arithmetic.
|
||
* fminmagfN: (libc)Misc FP Arithmetic.
|
||
* fminmagfNx: (libc)Misc FP Arithmetic.
|
||
* fminmagl: (libc)Misc FP Arithmetic.
|
||
* fmod: (libc)Remainder Functions.
|
||
* fmodf: (libc)Remainder Functions.
|
||
* fmodfN: (libc)Remainder Functions.
|
||
* fmodfNx: (libc)Remainder Functions.
|
||
* fmodl: (libc)Remainder Functions.
|
||
* fmtmsg: (libc)Printing Formatted Messages.
|
||
* fmul: (libc)Misc FP Arithmetic.
|
||
* fmull: (libc)Misc FP Arithmetic.
|
||
* fnmatch: (libc)Wildcard Matching.
|
||
* fopen64: (libc)Opening Streams.
|
||
* fopen: (libc)Opening Streams.
|
||
* fopencookie: (libc)Streams and Cookies.
|
||
* fork: (libc)Creating a Process.
|
||
* forkpty: (libc)Pseudo-Terminal Pairs.
|
||
* fpathconf: (libc)Pathconf.
|
||
* fpclassify: (libc)Floating Point Classes.
|
||
* fprintf: (libc)Formatted Output Functions.
|
||
* fputc: (libc)Simple Output.
|
||
* fputc_unlocked: (libc)Simple Output.
|
||
* fputs: (libc)Simple Output.
|
||
* fputs_unlocked: (libc)Simple Output.
|
||
* fputwc: (libc)Simple Output.
|
||
* fputwc_unlocked: (libc)Simple Output.
|
||
* fputws: (libc)Simple Output.
|
||
* fputws_unlocked: (libc)Simple Output.
|
||
* fread: (libc)Block Input/Output.
|
||
* fread_unlocked: (libc)Block Input/Output.
|
||
* free: (libc)Freeing after Malloc.
|
||
* freopen64: (libc)Opening Streams.
|
||
* freopen: (libc)Opening Streams.
|
||
* frexp: (libc)Normalization Functions.
|
||
* frexpf: (libc)Normalization Functions.
|
||
* frexpfN: (libc)Normalization Functions.
|
||
* frexpfNx: (libc)Normalization Functions.
|
||
* frexpl: (libc)Normalization Functions.
|
||
* fromfp: (libc)Rounding Functions.
|
||
* fromfpf: (libc)Rounding Functions.
|
||
* fromfpfN: (libc)Rounding Functions.
|
||
* fromfpfNx: (libc)Rounding Functions.
|
||
* fromfpl: (libc)Rounding Functions.
|
||
* fromfpx: (libc)Rounding Functions.
|
||
* fromfpxf: (libc)Rounding Functions.
|
||
* fromfpxfN: (libc)Rounding Functions.
|
||
* fromfpxfNx: (libc)Rounding Functions.
|
||
* fromfpxl: (libc)Rounding Functions.
|
||
* fscanf: (libc)Formatted Input Functions.
|
||
* fseek: (libc)File Positioning.
|
||
* fseeko64: (libc)File Positioning.
|
||
* fseeko: (libc)File Positioning.
|
||
* fsetpos64: (libc)Portable Positioning.
|
||
* fsetpos: (libc)Portable Positioning.
|
||
* fstat64: (libc)Reading Attributes.
|
||
* fstat: (libc)Reading Attributes.
|
||
* fsub: (libc)Misc FP Arithmetic.
|
||
* fsubl: (libc)Misc FP Arithmetic.
|
||
* fsync: (libc)Synchronizing I/O.
|
||
* ftell: (libc)File Positioning.
|
||
* ftello64: (libc)File Positioning.
|
||
* ftello: (libc)File Positioning.
|
||
* ftruncate64: (libc)File Size.
|
||
* ftruncate: (libc)File Size.
|
||
* ftrylockfile: (libc)Streams and Threads.
|
||
* ftw64: (libc)Working with Directory Trees.
|
||
* ftw: (libc)Working with Directory Trees.
|
||
* funlockfile: (libc)Streams and Threads.
|
||
* futimes: (libc)File Times.
|
||
* fwide: (libc)Streams and I18N.
|
||
* fwprintf: (libc)Formatted Output Functions.
|
||
* fwrite: (libc)Block Input/Output.
|
||
* fwrite_unlocked: (libc)Block Input/Output.
|
||
* fwscanf: (libc)Formatted Input Functions.
|
||
* gamma: (libc)Special Functions.
|
||
* gammaf: (libc)Special Functions.
|
||
* gammal: (libc)Special Functions.
|
||
* gcvt: (libc)System V Number Conversion.
|
||
* get_avphys_pages: (libc)Query Memory Parameters.
|
||
* get_current_dir_name: (libc)Working Directory.
|
||
* get_nprocs: (libc)Processor Resources.
|
||
* get_nprocs_conf: (libc)Processor Resources.
|
||
* get_phys_pages: (libc)Query Memory Parameters.
|
||
* getauxval: (libc)Auxiliary Vector.
|
||
* getc: (libc)Character Input.
|
||
* getc_unlocked: (libc)Character Input.
|
||
* getchar: (libc)Character Input.
|
||
* getchar_unlocked: (libc)Character Input.
|
||
* getcontext: (libc)System V contexts.
|
||
* getcpu: (libc)CPU Affinity.
|
||
* getcwd: (libc)Working Directory.
|
||
* getdate: (libc)General Time String Parsing.
|
||
* getdate_r: (libc)General Time String Parsing.
|
||
* getdelim: (libc)Line Input.
|
||
* getdents64: (libc)Low-level Directory Access.
|
||
* getdomainnname: (libc)Host Identification.
|
||
* getegid: (libc)Reading Persona.
|
||
* getentropy: (libc)Unpredictable Bytes.
|
||
* getenv: (libc)Environment Access.
|
||
* geteuid: (libc)Reading Persona.
|
||
* getfsent: (libc)fstab.
|
||
* getfsfile: (libc)fstab.
|
||
* getfsspec: (libc)fstab.
|
||
* getgid: (libc)Reading Persona.
|
||
* getgrent: (libc)Scanning All Groups.
|
||
* getgrent_r: (libc)Scanning All Groups.
|
||
* getgrgid: (libc)Lookup Group.
|
||
* getgrgid_r: (libc)Lookup Group.
|
||
* getgrnam: (libc)Lookup Group.
|
||
* getgrnam_r: (libc)Lookup Group.
|
||
* getgrouplist: (libc)Setting Groups.
|
||
* getgroups: (libc)Reading Persona.
|
||
* gethostbyaddr: (libc)Host Names.
|
||
* gethostbyaddr_r: (libc)Host Names.
|
||
* gethostbyname2: (libc)Host Names.
|
||
* gethostbyname2_r: (libc)Host Names.
|
||
* gethostbyname: (libc)Host Names.
|
||
* gethostbyname_r: (libc)Host Names.
|
||
* gethostent: (libc)Host Names.
|
||
* gethostid: (libc)Host Identification.
|
||
* gethostname: (libc)Host Identification.
|
||
* getitimer: (libc)Setting an Alarm.
|
||
* getline: (libc)Line Input.
|
||
* getloadavg: (libc)Processor Resources.
|
||
* getlogin: (libc)Who Logged In.
|
||
* getmntent: (libc)mtab.
|
||
* getmntent_r: (libc)mtab.
|
||
* getnetbyaddr: (libc)Networks Database.
|
||
* getnetbyname: (libc)Networks Database.
|
||
* getnetent: (libc)Networks Database.
|
||
* getnetgrent: (libc)Lookup Netgroup.
|
||
* getnetgrent_r: (libc)Lookup Netgroup.
|
||
* getopt: (libc)Using Getopt.
|
||
* getopt_long: (libc)Getopt Long Options.
|
||
* getopt_long_only: (libc)Getopt Long Options.
|
||
* getpagesize: (libc)Query Memory Parameters.
|
||
* getpass: (libc)getpass.
|
||
* getpayload: (libc)FP Bit Twiddling.
|
||
* getpayloadf: (libc)FP Bit Twiddling.
|
||
* getpayloadfN: (libc)FP Bit Twiddling.
|
||
* getpayloadfNx: (libc)FP Bit Twiddling.
|
||
* getpayloadl: (libc)FP Bit Twiddling.
|
||
* getpeername: (libc)Who is Connected.
|
||
* getpgid: (libc)Process Group Functions.
|
||
* getpgrp: (libc)Process Group Functions.
|
||
* getpid: (libc)Process Identification.
|
||
* getppid: (libc)Process Identification.
|
||
* getpriority: (libc)Traditional Scheduling Functions.
|
||
* getprotobyname: (libc)Protocols Database.
|
||
* getprotobynumber: (libc)Protocols Database.
|
||
* getprotoent: (libc)Protocols Database.
|
||
* getpt: (libc)Allocation.
|
||
* getpwent: (libc)Scanning All Users.
|
||
* getpwent_r: (libc)Scanning All Users.
|
||
* getpwnam: (libc)Lookup User.
|
||
* getpwnam_r: (libc)Lookup User.
|
||
* getpwuid: (libc)Lookup User.
|
||
* getpwuid_r: (libc)Lookup User.
|
||
* getrandom: (libc)Unpredictable Bytes.
|
||
* getrlimit64: (libc)Limits on Resources.
|
||
* getrlimit: (libc)Limits on Resources.
|
||
* getrusage: (libc)Resource Usage.
|
||
* gets: (libc)Line Input.
|
||
* getservbyname: (libc)Services Database.
|
||
* getservbyport: (libc)Services Database.
|
||
* getservent: (libc)Services Database.
|
||
* getsid: (libc)Process Group Functions.
|
||
* getsockname: (libc)Reading Address.
|
||
* getsockopt: (libc)Socket Option Functions.
|
||
* getsubopt: (libc)Suboptions.
|
||
* gettext: (libc)Translation with gettext.
|
||
* gettid: (libc)Process Identification.
|
||
* gettimeofday: (libc)Getting the Time.
|
||
* getuid: (libc)Reading Persona.
|
||
* getumask: (libc)Setting Permissions.
|
||
* getutent: (libc)Manipulating the Database.
|
||
* getutent_r: (libc)Manipulating the Database.
|
||
* getutid: (libc)Manipulating the Database.
|
||
* getutid_r: (libc)Manipulating the Database.
|
||
* getutline: (libc)Manipulating the Database.
|
||
* getutline_r: (libc)Manipulating the Database.
|
||
* getutmp: (libc)XPG Functions.
|
||
* getutmpx: (libc)XPG Functions.
|
||
* getutxent: (libc)XPG Functions.
|
||
* getutxid: (libc)XPG Functions.
|
||
* getutxline: (libc)XPG Functions.
|
||
* getw: (libc)Character Input.
|
||
* getwc: (libc)Character Input.
|
||
* getwc_unlocked: (libc)Character Input.
|
||
* getwchar: (libc)Character Input.
|
||
* getwchar_unlocked: (libc)Character Input.
|
||
* getwd: (libc)Working Directory.
|
||
* glob64: (libc)Calling Glob.
|
||
* glob: (libc)Calling Glob.
|
||
* globfree64: (libc)More Flags for Globbing.
|
||
* globfree: (libc)More Flags for Globbing.
|
||
* gmtime: (libc)Broken-down Time.
|
||
* gmtime_r: (libc)Broken-down Time.
|
||
* grantpt: (libc)Allocation.
|
||
* gsignal: (libc)Signaling Yourself.
|
||
* gtty: (libc)BSD Terminal Modes.
|
||
* hasmntopt: (libc)mtab.
|
||
* hcreate: (libc)Hash Search Function.
|
||
* hcreate_r: (libc)Hash Search Function.
|
||
* hdestroy: (libc)Hash Search Function.
|
||
* hdestroy_r: (libc)Hash Search Function.
|
||
* hsearch: (libc)Hash Search Function.
|
||
* hsearch_r: (libc)Hash Search Function.
|
||
* htonl: (libc)Byte Order.
|
||
* htons: (libc)Byte Order.
|
||
* hypot: (libc)Exponents and Logarithms.
|
||
* hypotf: (libc)Exponents and Logarithms.
|
||
* hypotfN: (libc)Exponents and Logarithms.
|
||
* hypotfNx: (libc)Exponents and Logarithms.
|
||
* hypotl: (libc)Exponents and Logarithms.
|
||
* iconv: (libc)Generic Conversion Interface.
|
||
* iconv_close: (libc)Generic Conversion Interface.
|
||
* iconv_open: (libc)Generic Conversion Interface.
|
||
* if_freenameindex: (libc)Interface Naming.
|
||
* if_indextoname: (libc)Interface Naming.
|
||
* if_nameindex: (libc)Interface Naming.
|
||
* if_nametoindex: (libc)Interface Naming.
|
||
* ilogb: (libc)Exponents and Logarithms.
|
||
* ilogbf: (libc)Exponents and Logarithms.
|
||
* ilogbfN: (libc)Exponents and Logarithms.
|
||
* ilogbfNx: (libc)Exponents and Logarithms.
|
||
* ilogbl: (libc)Exponents and Logarithms.
|
||
* imaxabs: (libc)Absolute Value.
|
||
* imaxdiv: (libc)Integer Division.
|
||
* in6addr_any: (libc)Host Address Data Type.
|
||
* in6addr_loopback: (libc)Host Address Data Type.
|
||
* index: (libc)Search Functions.
|
||
* inet_addr: (libc)Host Address Functions.
|
||
* inet_aton: (libc)Host Address Functions.
|
||
* inet_lnaof: (libc)Host Address Functions.
|
||
* inet_makeaddr: (libc)Host Address Functions.
|
||
* inet_netof: (libc)Host Address Functions.
|
||
* inet_network: (libc)Host Address Functions.
|
||
* inet_ntoa: (libc)Host Address Functions.
|
||
* inet_ntop: (libc)Host Address Functions.
|
||
* inet_pton: (libc)Host Address Functions.
|
||
* initgroups: (libc)Setting Groups.
|
||
* initstate: (libc)BSD Random.
|
||
* initstate_r: (libc)BSD Random.
|
||
* innetgr: (libc)Netgroup Membership.
|
||
* ioctl: (libc)IOCTLs.
|
||
* isalnum: (libc)Classification of Characters.
|
||
* isalpha: (libc)Classification of Characters.
|
||
* isascii: (libc)Classification of Characters.
|
||
* isatty: (libc)Is It a Terminal.
|
||
* isblank: (libc)Classification of Characters.
|
||
* iscanonical: (libc)Floating Point Classes.
|
||
* iscntrl: (libc)Classification of Characters.
|
||
* isdigit: (libc)Classification of Characters.
|
||
* iseqsig: (libc)FP Comparison Functions.
|
||
* isfinite: (libc)Floating Point Classes.
|
||
* isgraph: (libc)Classification of Characters.
|
||
* isgreater: (libc)FP Comparison Functions.
|
||
* isgreaterequal: (libc)FP Comparison Functions.
|
||
* isinf: (libc)Floating Point Classes.
|
||
* isinff: (libc)Floating Point Classes.
|
||
* isinfl: (libc)Floating Point Classes.
|
||
* isless: (libc)FP Comparison Functions.
|
||
* islessequal: (libc)FP Comparison Functions.
|
||
* islessgreater: (libc)FP Comparison Functions.
|
||
* islower: (libc)Classification of Characters.
|
||
* isnan: (libc)Floating Point Classes.
|
||
* isnan: (libc)Floating Point Classes.
|
||
* isnanf: (libc)Floating Point Classes.
|
||
* isnanl: (libc)Floating Point Classes.
|
||
* isnormal: (libc)Floating Point Classes.
|
||
* isprint: (libc)Classification of Characters.
|
||
* ispunct: (libc)Classification of Characters.
|
||
* issignaling: (libc)Floating Point Classes.
|
||
* isspace: (libc)Classification of Characters.
|
||
* issubnormal: (libc)Floating Point Classes.
|
||
* isunordered: (libc)FP Comparison Functions.
|
||
* isupper: (libc)Classification of Characters.
|
||
* iswalnum: (libc)Classification of Wide Characters.
|
||
* iswalpha: (libc)Classification of Wide Characters.
|
||
* iswblank: (libc)Classification of Wide Characters.
|
||
* iswcntrl: (libc)Classification of Wide Characters.
|
||
* iswctype: (libc)Classification of Wide Characters.
|
||
* iswdigit: (libc)Classification of Wide Characters.
|
||
* iswgraph: (libc)Classification of Wide Characters.
|
||
* iswlower: (libc)Classification of Wide Characters.
|
||
* iswprint: (libc)Classification of Wide Characters.
|
||
* iswpunct: (libc)Classification of Wide Characters.
|
||
* iswspace: (libc)Classification of Wide Characters.
|
||
* iswupper: (libc)Classification of Wide Characters.
|
||
* iswxdigit: (libc)Classification of Wide Characters.
|
||
* isxdigit: (libc)Classification of Characters.
|
||
* iszero: (libc)Floating Point Classes.
|
||
* j0: (libc)Special Functions.
|
||
* j0f: (libc)Special Functions.
|
||
* j0fN: (libc)Special Functions.
|
||
* j0fNx: (libc)Special Functions.
|
||
* j0l: (libc)Special Functions.
|
||
* j1: (libc)Special Functions.
|
||
* j1f: (libc)Special Functions.
|
||
* j1fN: (libc)Special Functions.
|
||
* j1fNx: (libc)Special Functions.
|
||
* j1l: (libc)Special Functions.
|
||
* jn: (libc)Special Functions.
|
||
* jnf: (libc)Special Functions.
|
||
* jnfN: (libc)Special Functions.
|
||
* jnfNx: (libc)Special Functions.
|
||
* jnl: (libc)Special Functions.
|
||
* jrand48: (libc)SVID Random.
|
||
* jrand48_r: (libc)SVID Random.
|
||
* kill: (libc)Signaling Another Process.
|
||
* killpg: (libc)Signaling Another Process.
|
||
* l64a: (libc)Encode Binary Data.
|
||
* labs: (libc)Absolute Value.
|
||
* lcong48: (libc)SVID Random.
|
||
* lcong48_r: (libc)SVID Random.
|
||
* ldexp: (libc)Normalization Functions.
|
||
* ldexpf: (libc)Normalization Functions.
|
||
* ldexpfN: (libc)Normalization Functions.
|
||
* ldexpfNx: (libc)Normalization Functions.
|
||
* ldexpl: (libc)Normalization Functions.
|
||
* ldiv: (libc)Integer Division.
|
||
* lfind: (libc)Array Search Function.
|
||
* lgamma: (libc)Special Functions.
|
||
* lgamma_r: (libc)Special Functions.
|
||
* lgammaf: (libc)Special Functions.
|
||
* lgammafN: (libc)Special Functions.
|
||
* lgammafN_r: (libc)Special Functions.
|
||
* lgammafNx: (libc)Special Functions.
|
||
* lgammafNx_r: (libc)Special Functions.
|
||
* lgammaf_r: (libc)Special Functions.
|
||
* lgammal: (libc)Special Functions.
|
||
* lgammal_r: (libc)Special Functions.
|
||
* link: (libc)Hard Links.
|
||
* linkat: (libc)Hard Links.
|
||
* lio_listio64: (libc)Asynchronous Reads/Writes.
|
||
* lio_listio: (libc)Asynchronous Reads/Writes.
|
||
* listen: (libc)Listening.
|
||
* llabs: (libc)Absolute Value.
|
||
* lldiv: (libc)Integer Division.
|
||
* llogb: (libc)Exponents and Logarithms.
|
||
* llogbf: (libc)Exponents and Logarithms.
|
||
* llogbfN: (libc)Exponents and Logarithms.
|
||
* llogbfNx: (libc)Exponents and Logarithms.
|
||
* llogbl: (libc)Exponents and Logarithms.
|
||
* llrint: (libc)Rounding Functions.
|
||
* llrintf: (libc)Rounding Functions.
|
||
* llrintfN: (libc)Rounding Functions.
|
||
* llrintfNx: (libc)Rounding Functions.
|
||
* llrintl: (libc)Rounding Functions.
|
||
* llround: (libc)Rounding Functions.
|
||
* llroundf: (libc)Rounding Functions.
|
||
* llroundfN: (libc)Rounding Functions.
|
||
* llroundfNx: (libc)Rounding Functions.
|
||
* llroundl: (libc)Rounding Functions.
|
||
* localeconv: (libc)The Lame Way to Locale Data.
|
||
* localtime: (libc)Broken-down Time.
|
||
* localtime_r: (libc)Broken-down Time.
|
||
* log10: (libc)Exponents and Logarithms.
|
||
* log10f: (libc)Exponents and Logarithms.
|
||
* log10fN: (libc)Exponents and Logarithms.
|
||
* log10fNx: (libc)Exponents and Logarithms.
|
||
* log10l: (libc)Exponents and Logarithms.
|
||
* log1p: (libc)Exponents and Logarithms.
|
||
* log1pf: (libc)Exponents and Logarithms.
|
||
* log1pfN: (libc)Exponents and Logarithms.
|
||
* log1pfNx: (libc)Exponents and Logarithms.
|
||
* log1pl: (libc)Exponents and Logarithms.
|
||
* log2: (libc)Exponents and Logarithms.
|
||
* log2f: (libc)Exponents and Logarithms.
|
||
* log2fN: (libc)Exponents and Logarithms.
|
||
* log2fNx: (libc)Exponents and Logarithms.
|
||
* log2l: (libc)Exponents and Logarithms.
|
||
* log: (libc)Exponents and Logarithms.
|
||
* logb: (libc)Exponents and Logarithms.
|
||
* logbf: (libc)Exponents and Logarithms.
|
||
* logbfN: (libc)Exponents and Logarithms.
|
||
* logbfNx: (libc)Exponents and Logarithms.
|
||
* logbl: (libc)Exponents and Logarithms.
|
||
* logf: (libc)Exponents and Logarithms.
|
||
* logfN: (libc)Exponents and Logarithms.
|
||
* logfNx: (libc)Exponents and Logarithms.
|
||
* login: (libc)Logging In and Out.
|
||
* login_tty: (libc)Logging In and Out.
|
||
* logl: (libc)Exponents and Logarithms.
|
||
* logout: (libc)Logging In and Out.
|
||
* logwtmp: (libc)Logging In and Out.
|
||
* longjmp: (libc)Non-Local Details.
|
||
* lrand48: (libc)SVID Random.
|
||
* lrand48_r: (libc)SVID Random.
|
||
* lrint: (libc)Rounding Functions.
|
||
* lrintf: (libc)Rounding Functions.
|
||
* lrintfN: (libc)Rounding Functions.
|
||
* lrintfNx: (libc)Rounding Functions.
|
||
* lrintl: (libc)Rounding Functions.
|
||
* lround: (libc)Rounding Functions.
|
||
* lroundf: (libc)Rounding Functions.
|
||
* lroundfN: (libc)Rounding Functions.
|
||
* lroundfNx: (libc)Rounding Functions.
|
||
* lroundl: (libc)Rounding Functions.
|
||
* lsearch: (libc)Array Search Function.
|
||
* lseek64: (libc)File Position Primitive.
|
||
* lseek: (libc)File Position Primitive.
|
||
* lstat64: (libc)Reading Attributes.
|
||
* lstat: (libc)Reading Attributes.
|
||
* lutimes: (libc)File Times.
|
||
* madvise: (libc)Memory-mapped I/O.
|
||
* makecontext: (libc)System V contexts.
|
||
* mallinfo2: (libc)Statistics of Malloc.
|
||
* malloc: (libc)Basic Allocation.
|
||
* mallopt: (libc)Malloc Tunable Parameters.
|
||
* mblen: (libc)Non-reentrant Character Conversion.
|
||
* mbrlen: (libc)Converting a Character.
|
||
* mbrtowc: (libc)Converting a Character.
|
||
* mbsinit: (libc)Keeping the state.
|
||
* mbsnrtowcs: (libc)Converting Strings.
|
||
* mbsrtowcs: (libc)Converting Strings.
|
||
* mbstowcs: (libc)Non-reentrant String Conversion.
|
||
* mbtowc: (libc)Non-reentrant Character Conversion.
|
||
* mcheck: (libc)Heap Consistency Checking.
|
||
* memalign: (libc)Aligned Memory Blocks.
|
||
* memccpy: (libc)Copying Strings and Arrays.
|
||
* memchr: (libc)Search Functions.
|
||
* memcmp: (libc)String/Array Comparison.
|
||
* memcpy: (libc)Copying Strings and Arrays.
|
||
* memfd_create: (libc)Memory-mapped I/O.
|
||
* memfrob: (libc)Obfuscating Data.
|
||
* memmem: (libc)Search Functions.
|
||
* memmove: (libc)Copying Strings and Arrays.
|
||
* mempcpy: (libc)Copying Strings and Arrays.
|
||
* memrchr: (libc)Search Functions.
|
||
* memset: (libc)Copying Strings and Arrays.
|
||
* mkdir: (libc)Creating Directories.
|
||
* mkdtemp: (libc)Temporary Files.
|
||
* mkfifo: (libc)FIFO Special Files.
|
||
* mknod: (libc)Making Special Files.
|
||
* mkstemp: (libc)Temporary Files.
|
||
* mktemp: (libc)Temporary Files.
|
||
* mktime: (libc)Broken-down Time.
|
||
* mlock2: (libc)Page Lock Functions.
|
||
* mlock: (libc)Page Lock Functions.
|
||
* mlockall: (libc)Page Lock Functions.
|
||
* mmap64: (libc)Memory-mapped I/O.
|
||
* mmap: (libc)Memory-mapped I/O.
|
||
* modf: (libc)Rounding Functions.
|
||
* modff: (libc)Rounding Functions.
|
||
* modffN: (libc)Rounding Functions.
|
||
* modffNx: (libc)Rounding Functions.
|
||
* modfl: (libc)Rounding Functions.
|
||
* mount: (libc)Mount-Unmount-Remount.
|
||
* mprobe: (libc)Heap Consistency Checking.
|
||
* mprotect: (libc)Memory Protection.
|
||
* mrand48: (libc)SVID Random.
|
||
* mrand48_r: (libc)SVID Random.
|
||
* mremap: (libc)Memory-mapped I/O.
|
||
* msync: (libc)Memory-mapped I/O.
|
||
* mtrace: (libc)Tracing malloc.
|
||
* mtx_destroy: (libc)ISO C Mutexes.
|
||
* mtx_init: (libc)ISO C Mutexes.
|
||
* mtx_lock: (libc)ISO C Mutexes.
|
||
* mtx_timedlock: (libc)ISO C Mutexes.
|
||
* mtx_trylock: (libc)ISO C Mutexes.
|
||
* mtx_unlock: (libc)ISO C Mutexes.
|
||
* munlock: (libc)Page Lock Functions.
|
||
* munlockall: (libc)Page Lock Functions.
|
||
* munmap: (libc)Memory-mapped I/O.
|
||
* muntrace: (libc)Tracing malloc.
|
||
* nan: (libc)FP Bit Twiddling.
|
||
* nanf: (libc)FP Bit Twiddling.
|
||
* nanfN: (libc)FP Bit Twiddling.
|
||
* nanfNx: (libc)FP Bit Twiddling.
|
||
* nanl: (libc)FP Bit Twiddling.
|
||
* nanosleep: (libc)Sleeping.
|
||
* nearbyint: (libc)Rounding Functions.
|
||
* nearbyintf: (libc)Rounding Functions.
|
||
* nearbyintfN: (libc)Rounding Functions.
|
||
* nearbyintfNx: (libc)Rounding Functions.
|
||
* nearbyintl: (libc)Rounding Functions.
|
||
* nextafter: (libc)FP Bit Twiddling.
|
||
* nextafterf: (libc)FP Bit Twiddling.
|
||
* nextafterfN: (libc)FP Bit Twiddling.
|
||
* nextafterfNx: (libc)FP Bit Twiddling.
|
||
* nextafterl: (libc)FP Bit Twiddling.
|
||
* nextdown: (libc)FP Bit Twiddling.
|
||
* nextdownf: (libc)FP Bit Twiddling.
|
||
* nextdownfN: (libc)FP Bit Twiddling.
|
||
* nextdownfNx: (libc)FP Bit Twiddling.
|
||
* nextdownl: (libc)FP Bit Twiddling.
|
||
* nexttoward: (libc)FP Bit Twiddling.
|
||
* nexttowardf: (libc)FP Bit Twiddling.
|
||
* nexttowardl: (libc)FP Bit Twiddling.
|
||
* nextup: (libc)FP Bit Twiddling.
|
||
* nextupf: (libc)FP Bit Twiddling.
|
||
* nextupfN: (libc)FP Bit Twiddling.
|
||
* nextupfNx: (libc)FP Bit Twiddling.
|
||
* nextupl: (libc)FP Bit Twiddling.
|
||
* nftw64: (libc)Working with Directory Trees.
|
||
* nftw: (libc)Working with Directory Trees.
|
||
* ngettext: (libc)Advanced gettext functions.
|
||
* nice: (libc)Traditional Scheduling Functions.
|
||
* nl_langinfo: (libc)The Elegant and Fast Way.
|
||
* nrand48: (libc)SVID Random.
|
||
* nrand48_r: (libc)SVID Random.
|
||
* ntohl: (libc)Byte Order.
|
||
* ntohs: (libc)Byte Order.
|
||
* ntp_adjtime: (libc)Setting and Adjusting the Time.
|
||
* ntp_gettime: (libc)Setting and Adjusting the Time.
|
||
* obstack_1grow: (libc)Growing Objects.
|
||
* obstack_1grow_fast: (libc)Extra Fast Growing.
|
||
* obstack_alignment_mask: (libc)Obstacks Data Alignment.
|
||
* obstack_alloc: (libc)Allocation in an Obstack.
|
||
* obstack_base: (libc)Status of an Obstack.
|
||
* obstack_blank: (libc)Growing Objects.
|
||
* obstack_blank_fast: (libc)Extra Fast Growing.
|
||
* obstack_chunk_size: (libc)Obstack Chunks.
|
||
* obstack_copy0: (libc)Allocation in an Obstack.
|
||
* obstack_copy: (libc)Allocation in an Obstack.
|
||
* obstack_finish: (libc)Growing Objects.
|
||
* obstack_free: (libc)Freeing Obstack Objects.
|
||
* obstack_grow0: (libc)Growing Objects.
|
||
* obstack_grow: (libc)Growing Objects.
|
||
* obstack_init: (libc)Preparing for Obstacks.
|
||
* obstack_int_grow: (libc)Growing Objects.
|
||
* obstack_int_grow_fast: (libc)Extra Fast Growing.
|
||
* obstack_next_free: (libc)Status of an Obstack.
|
||
* obstack_object_size: (libc)Growing Objects.
|
||
* obstack_object_size: (libc)Status of an Obstack.
|
||
* obstack_printf: (libc)Dynamic Output.
|
||
* obstack_ptr_grow: (libc)Growing Objects.
|
||
* obstack_ptr_grow_fast: (libc)Extra Fast Growing.
|
||
* obstack_room: (libc)Extra Fast Growing.
|
||
* obstack_vprintf: (libc)Variable Arguments Output.
|
||
* offsetof: (libc)Structure Measurement.
|
||
* on_exit: (libc)Cleanups on Exit.
|
||
* open64: (libc)Opening and Closing Files.
|
||
* open: (libc)Opening and Closing Files.
|
||
* open_memstream: (libc)String Streams.
|
||
* opendir: (libc)Opening a Directory.
|
||
* openlog: (libc)openlog.
|
||
* openpty: (libc)Pseudo-Terminal Pairs.
|
||
* parse_printf_format: (libc)Parsing a Template String.
|
||
* pathconf: (libc)Pathconf.
|
||
* pause: (libc)Using Pause.
|
||
* pclose: (libc)Pipe to a Subprocess.
|
||
* perror: (libc)Error Messages.
|
||
* pipe: (libc)Creating a Pipe.
|
||
* pkey_alloc: (libc)Memory Protection.
|
||
* pkey_free: (libc)Memory Protection.
|
||
* pkey_get: (libc)Memory Protection.
|
||
* pkey_mprotect: (libc)Memory Protection.
|
||
* pkey_set: (libc)Memory Protection.
|
||
* popen: (libc)Pipe to a Subprocess.
|
||
* posix_fallocate64: (libc)Storage Allocation.
|
||
* posix_fallocate: (libc)Storage Allocation.
|
||
* posix_memalign: (libc)Aligned Memory Blocks.
|
||
* pow: (libc)Exponents and Logarithms.
|
||
* powf: (libc)Exponents and Logarithms.
|
||
* powfN: (libc)Exponents and Logarithms.
|
||
* powfNx: (libc)Exponents and Logarithms.
|
||
* powl: (libc)Exponents and Logarithms.
|
||
* pread64: (libc)I/O Primitives.
|
||
* pread: (libc)I/O Primitives.
|
||
* preadv2: (libc)Scatter-Gather.
|
||
* preadv64: (libc)Scatter-Gather.
|
||
* preadv64v2: (libc)Scatter-Gather.
|
||
* preadv: (libc)Scatter-Gather.
|
||
* printf: (libc)Formatted Output Functions.
|
||
* printf_size: (libc)Predefined Printf Handlers.
|
||
* printf_size_info: (libc)Predefined Printf Handlers.
|
||
* psignal: (libc)Signal Messages.
|
||
* pthread_attr_getsigmask_np: (libc)Initial Thread Signal Mask.
|
||
* pthread_attr_setsigmask_np: (libc)Initial Thread Signal Mask.
|
||
* pthread_clockjoin_np: (libc)Waiting with Explicit Clocks.
|
||
* pthread_cond_clockwait: (libc)Waiting with Explicit Clocks.
|
||
* pthread_getattr_default_np: (libc)Default Thread Attributes.
|
||
* pthread_getspecific: (libc)Thread-specific Data.
|
||
* pthread_key_create: (libc)Thread-specific Data.
|
||
* pthread_key_delete: (libc)Thread-specific Data.
|
||
* pthread_rwlock_clockrdlock: (libc)Waiting with Explicit Clocks.
|
||
* pthread_rwlock_clockwrlock: (libc)Waiting with Explicit Clocks.
|
||
* pthread_setattr_default_np: (libc)Default Thread Attributes.
|
||
* pthread_setspecific: (libc)Thread-specific Data.
|
||
* pthread_timedjoin_np: (libc)Waiting with Explicit Clocks.
|
||
* pthread_tryjoin_np: (libc)Waiting with Explicit Clocks.
|
||
* ptsname: (libc)Allocation.
|
||
* ptsname_r: (libc)Allocation.
|
||
* putc: (libc)Simple Output.
|
||
* putc_unlocked: (libc)Simple Output.
|
||
* putchar: (libc)Simple Output.
|
||
* putchar_unlocked: (libc)Simple Output.
|
||
* putenv: (libc)Environment Access.
|
||
* putpwent: (libc)Writing a User Entry.
|
||
* puts: (libc)Simple Output.
|
||
* pututline: (libc)Manipulating the Database.
|
||
* pututxline: (libc)XPG Functions.
|
||
* putw: (libc)Simple Output.
|
||
* putwc: (libc)Simple Output.
|
||
* putwc_unlocked: (libc)Simple Output.
|
||
* putwchar: (libc)Simple Output.
|
||
* putwchar_unlocked: (libc)Simple Output.
|
||
* pwrite64: (libc)I/O Primitives.
|
||
* pwrite: (libc)I/O Primitives.
|
||
* pwritev2: (libc)Scatter-Gather.
|
||
* pwritev64: (libc)Scatter-Gather.
|
||
* pwritev64v2: (libc)Scatter-Gather.
|
||
* pwritev: (libc)Scatter-Gather.
|
||
* qecvt: (libc)System V Number Conversion.
|
||
* qecvt_r: (libc)System V Number Conversion.
|
||
* qfcvt: (libc)System V Number Conversion.
|
||
* qfcvt_r: (libc)System V Number Conversion.
|
||
* qgcvt: (libc)System V Number Conversion.
|
||
* qsort: (libc)Array Sort Function.
|
||
* raise: (libc)Signaling Yourself.
|
||
* rand: (libc)ISO Random.
|
||
* rand_r: (libc)ISO Random.
|
||
* random: (libc)BSD Random.
|
||
* random_r: (libc)BSD Random.
|
||
* rawmemchr: (libc)Search Functions.
|
||
* read: (libc)I/O Primitives.
|
||
* readdir64: (libc)Reading/Closing Directory.
|
||
* readdir64_r: (libc)Reading/Closing Directory.
|
||
* readdir: (libc)Reading/Closing Directory.
|
||
* readdir_r: (libc)Reading/Closing Directory.
|
||
* readlink: (libc)Symbolic Links.
|
||
* readv: (libc)Scatter-Gather.
|
||
* realloc: (libc)Changing Block Size.
|
||
* reallocarray: (libc)Changing Block Size.
|
||
* realpath: (libc)Symbolic Links.
|
||
* recv: (libc)Receiving Data.
|
||
* recvfrom: (libc)Receiving Datagrams.
|
||
* recvmsg: (libc)Receiving Datagrams.
|
||
* regcomp: (libc)POSIX Regexp Compilation.
|
||
* regerror: (libc)Regexp Cleanup.
|
||
* regexec: (libc)Matching POSIX Regexps.
|
||
* regfree: (libc)Regexp Cleanup.
|
||
* register_printf_function: (libc)Registering New Conversions.
|
||
* remainder: (libc)Remainder Functions.
|
||
* remainderf: (libc)Remainder Functions.
|
||
* remainderfN: (libc)Remainder Functions.
|
||
* remainderfNx: (libc)Remainder Functions.
|
||
* remainderl: (libc)Remainder Functions.
|
||
* remove: (libc)Deleting Files.
|
||
* rename: (libc)Renaming Files.
|
||
* rewind: (libc)File Positioning.
|
||
* rewinddir: (libc)Random Access Directory.
|
||
* rindex: (libc)Search Functions.
|
||
* rint: (libc)Rounding Functions.
|
||
* rintf: (libc)Rounding Functions.
|
||
* rintfN: (libc)Rounding Functions.
|
||
* rintfNx: (libc)Rounding Functions.
|
||
* rintl: (libc)Rounding Functions.
|
||
* rmdir: (libc)Deleting Files.
|
||
* round: (libc)Rounding Functions.
|
||
* roundeven: (libc)Rounding Functions.
|
||
* roundevenf: (libc)Rounding Functions.
|
||
* roundevenfN: (libc)Rounding Functions.
|
||
* roundevenfNx: (libc)Rounding Functions.
|
||
* roundevenl: (libc)Rounding Functions.
|
||
* roundf: (libc)Rounding Functions.
|
||
* roundfN: (libc)Rounding Functions.
|
||
* roundfNx: (libc)Rounding Functions.
|
||
* roundl: (libc)Rounding Functions.
|
||
* rpmatch: (libc)Yes-or-No Questions.
|
||
* sbrk: (libc)Resizing the Data Segment.
|
||
* scalb: (libc)Normalization Functions.
|
||
* scalbf: (libc)Normalization Functions.
|
||
* scalbl: (libc)Normalization Functions.
|
||
* scalbln: (libc)Normalization Functions.
|
||
* scalblnf: (libc)Normalization Functions.
|
||
* scalblnfN: (libc)Normalization Functions.
|
||
* scalblnfNx: (libc)Normalization Functions.
|
||
* scalblnl: (libc)Normalization Functions.
|
||
* scalbn: (libc)Normalization Functions.
|
||
* scalbnf: (libc)Normalization Functions.
|
||
* scalbnfN: (libc)Normalization Functions.
|
||
* scalbnfNx: (libc)Normalization Functions.
|
||
* scalbnl: (libc)Normalization Functions.
|
||
* scandir64: (libc)Scanning Directory Content.
|
||
* scandir: (libc)Scanning Directory Content.
|
||
* scanf: (libc)Formatted Input Functions.
|
||
* sched_get_priority_max: (libc)Basic Scheduling Functions.
|
||
* sched_get_priority_min: (libc)Basic Scheduling Functions.
|
||
* sched_getaffinity: (libc)CPU Affinity.
|
||
* sched_getparam: (libc)Basic Scheduling Functions.
|
||
* sched_getscheduler: (libc)Basic Scheduling Functions.
|
||
* sched_rr_get_interval: (libc)Basic Scheduling Functions.
|
||
* sched_setaffinity: (libc)CPU Affinity.
|
||
* sched_setparam: (libc)Basic Scheduling Functions.
|
||
* sched_setscheduler: (libc)Basic Scheduling Functions.
|
||
* sched_yield: (libc)Basic Scheduling Functions.
|
||
* secure_getenv: (libc)Environment Access.
|
||
* seed48: (libc)SVID Random.
|
||
* seed48_r: (libc)SVID Random.
|
||
* seekdir: (libc)Random Access Directory.
|
||
* select: (libc)Waiting for I/O.
|
||
* sem_clockwait: (libc)Waiting with Explicit Clocks.
|
||
* sem_close: (libc)Semaphores.
|
||
* sem_destroy: (libc)Semaphores.
|
||
* sem_getvalue: (libc)Semaphores.
|
||
* sem_init: (libc)Semaphores.
|
||
* sem_open: (libc)Semaphores.
|
||
* sem_post: (libc)Semaphores.
|
||
* sem_timedwait: (libc)Semaphores.
|
||
* sem_trywait: (libc)Semaphores.
|
||
* sem_unlink: (libc)Semaphores.
|
||
* sem_wait: (libc)Semaphores.
|
||
* semctl: (libc)Semaphores.
|
||
* semget: (libc)Semaphores.
|
||
* semop: (libc)Semaphores.
|
||
* semtimedop: (libc)Semaphores.
|
||
* send: (libc)Sending Data.
|
||
* sendmsg: (libc)Receiving Datagrams.
|
||
* sendto: (libc)Sending Datagrams.
|
||
* setbuf: (libc)Controlling Buffering.
|
||
* setbuffer: (libc)Controlling Buffering.
|
||
* setcontext: (libc)System V contexts.
|
||
* setdomainname: (libc)Host Identification.
|
||
* setegid: (libc)Setting Groups.
|
||
* setenv: (libc)Environment Access.
|
||
* seteuid: (libc)Setting User ID.
|
||
* setfsent: (libc)fstab.
|
||
* setgid: (libc)Setting Groups.
|
||
* setgrent: (libc)Scanning All Groups.
|
||
* setgroups: (libc)Setting Groups.
|
||
* sethostent: (libc)Host Names.
|
||
* sethostid: (libc)Host Identification.
|
||
* sethostname: (libc)Host Identification.
|
||
* setitimer: (libc)Setting an Alarm.
|
||
* setjmp: (libc)Non-Local Details.
|
||
* setlinebuf: (libc)Controlling Buffering.
|
||
* setlocale: (libc)Setting the Locale.
|
||
* setlogmask: (libc)setlogmask.
|
||
* setmntent: (libc)mtab.
|
||
* setnetent: (libc)Networks Database.
|
||
* setnetgrent: (libc)Lookup Netgroup.
|
||
* setpayload: (libc)FP Bit Twiddling.
|
||
* setpayloadf: (libc)FP Bit Twiddling.
|
||
* setpayloadfN: (libc)FP Bit Twiddling.
|
||
* setpayloadfNx: (libc)FP Bit Twiddling.
|
||
* setpayloadl: (libc)FP Bit Twiddling.
|
||
* setpayloadsig: (libc)FP Bit Twiddling.
|
||
* setpayloadsigf: (libc)FP Bit Twiddling.
|
||
* setpayloadsigfN: (libc)FP Bit Twiddling.
|
||
* setpayloadsigfNx: (libc)FP Bit Twiddling.
|
||
* setpayloadsigl: (libc)FP Bit Twiddling.
|
||
* setpgid: (libc)Process Group Functions.
|
||
* setpgrp: (libc)Process Group Functions.
|
||
* setpriority: (libc)Traditional Scheduling Functions.
|
||
* setprotoent: (libc)Protocols Database.
|
||
* setpwent: (libc)Scanning All Users.
|
||
* setregid: (libc)Setting Groups.
|
||
* setreuid: (libc)Setting User ID.
|
||
* setrlimit64: (libc)Limits on Resources.
|
||
* setrlimit: (libc)Limits on Resources.
|
||
* setservent: (libc)Services Database.
|
||
* setsid: (libc)Process Group Functions.
|
||
* setsockopt: (libc)Socket Option Functions.
|
||
* setstate: (libc)BSD Random.
|
||
* setstate_r: (libc)BSD Random.
|
||
* settimeofday: (libc)Setting and Adjusting the Time.
|
||
* setuid: (libc)Setting User ID.
|
||
* setutent: (libc)Manipulating the Database.
|
||
* setutxent: (libc)XPG Functions.
|
||
* setvbuf: (libc)Controlling Buffering.
|
||
* shm_open: (libc)Memory-mapped I/O.
|
||
* shm_unlink: (libc)Memory-mapped I/O.
|
||
* shutdown: (libc)Closing a Socket.
|
||
* sigabbrev_np: (libc)Signal Messages.
|
||
* sigaction: (libc)Advanced Signal Handling.
|
||
* sigaddset: (libc)Signal Sets.
|
||
* sigaltstack: (libc)Signal Stack.
|
||
* sigblock: (libc)BSD Signal Handling.
|
||
* sigdelset: (libc)Signal Sets.
|
||
* sigdescr_np: (libc)Signal Messages.
|
||
* sigemptyset: (libc)Signal Sets.
|
||
* sigfillset: (libc)Signal Sets.
|
||
* siginterrupt: (libc)BSD Signal Handling.
|
||
* sigismember: (libc)Signal Sets.
|
||
* siglongjmp: (libc)Non-Local Exits and Signals.
|
||
* sigmask: (libc)BSD Signal Handling.
|
||
* signal: (libc)Basic Signal Handling.
|
||
* signbit: (libc)FP Bit Twiddling.
|
||
* significand: (libc)Normalization Functions.
|
||
* significandf: (libc)Normalization Functions.
|
||
* significandl: (libc)Normalization Functions.
|
||
* sigpause: (libc)BSD Signal Handling.
|
||
* sigpending: (libc)Checking for Pending Signals.
|
||
* sigprocmask: (libc)Process Signal Mask.
|
||
* sigsetjmp: (libc)Non-Local Exits and Signals.
|
||
* sigsetmask: (libc)BSD Signal Handling.
|
||
* sigstack: (libc)Signal Stack.
|
||
* sigsuspend: (libc)Sigsuspend.
|
||
* sin: (libc)Trig Functions.
|
||
* sincos: (libc)Trig Functions.
|
||
* sincosf: (libc)Trig Functions.
|
||
* sincosfN: (libc)Trig Functions.
|
||
* sincosfNx: (libc)Trig Functions.
|
||
* sincosl: (libc)Trig Functions.
|
||
* sinf: (libc)Trig Functions.
|
||
* sinfN: (libc)Trig Functions.
|
||
* sinfNx: (libc)Trig Functions.
|
||
* sinh: (libc)Hyperbolic Functions.
|
||
* sinhf: (libc)Hyperbolic Functions.
|
||
* sinhfN: (libc)Hyperbolic Functions.
|
||
* sinhfNx: (libc)Hyperbolic Functions.
|
||
* sinhl: (libc)Hyperbolic Functions.
|
||
* sinl: (libc)Trig Functions.
|
||
* sleep: (libc)Sleeping.
|
||
* snprintf: (libc)Formatted Output Functions.
|
||
* socket: (libc)Creating a Socket.
|
||
* socketpair: (libc)Socket Pairs.
|
||
* sprintf: (libc)Formatted Output Functions.
|
||
* sqrt: (libc)Exponents and Logarithms.
|
||
* sqrtf: (libc)Exponents and Logarithms.
|
||
* sqrtfN: (libc)Exponents and Logarithms.
|
||
* sqrtfNx: (libc)Exponents and Logarithms.
|
||
* sqrtl: (libc)Exponents and Logarithms.
|
||
* srand48: (libc)SVID Random.
|
||
* srand48_r: (libc)SVID Random.
|
||
* srand: (libc)ISO Random.
|
||
* srandom: (libc)BSD Random.
|
||
* srandom_r: (libc)BSD Random.
|
||
* sscanf: (libc)Formatted Input Functions.
|
||
* ssignal: (libc)Basic Signal Handling.
|
||
* stat64: (libc)Reading Attributes.
|
||
* stat: (libc)Reading Attributes.
|
||
* stime: (libc)Setting and Adjusting the Time.
|
||
* stpcpy: (libc)Copying Strings and Arrays.
|
||
* stpncpy: (libc)Truncating Strings.
|
||
* strcasecmp: (libc)String/Array Comparison.
|
||
* strcasestr: (libc)Search Functions.
|
||
* strcat: (libc)Concatenating Strings.
|
||
* strchr: (libc)Search Functions.
|
||
* strchrnul: (libc)Search Functions.
|
||
* strcmp: (libc)String/Array Comparison.
|
||
* strcoll: (libc)Collation Functions.
|
||
* strcpy: (libc)Copying Strings and Arrays.
|
||
* strcspn: (libc)Search Functions.
|
||
* strdup: (libc)Copying Strings and Arrays.
|
||
* strdupa: (libc)Copying Strings and Arrays.
|
||
* strerror: (libc)Error Messages.
|
||
* strerror_r: (libc)Error Messages.
|
||
* strerrordesc_np: (libc)Error Messages.
|
||
* strerrorname_np: (libc)Error Messages.
|
||
* strfmon: (libc)Formatting Numbers.
|
||
* strfromd: (libc)Printing of Floats.
|
||
* strfromf: (libc)Printing of Floats.
|
||
* strfromfN: (libc)Printing of Floats.
|
||
* strfromfNx: (libc)Printing of Floats.
|
||
* strfroml: (libc)Printing of Floats.
|
||
* strfry: (libc)Shuffling Bytes.
|
||
* strftime: (libc)Formatting Calendar Time.
|
||
* strlen: (libc)String Length.
|
||
* strncasecmp: (libc)String/Array Comparison.
|
||
* strncat: (libc)Truncating Strings.
|
||
* strncmp: (libc)String/Array Comparison.
|
||
* strncpy: (libc)Truncating Strings.
|
||
* strndup: (libc)Truncating Strings.
|
||
* strndupa: (libc)Truncating Strings.
|
||
* strnlen: (libc)String Length.
|
||
* strpbrk: (libc)Search Functions.
|
||
* strptime: (libc)Low-Level Time String Parsing.
|
||
* strrchr: (libc)Search Functions.
|
||
* strsep: (libc)Finding Tokens in a String.
|
||
* strsignal: (libc)Signal Messages.
|
||
* strspn: (libc)Search Functions.
|
||
* strstr: (libc)Search Functions.
|
||
* strtod: (libc)Parsing of Floats.
|
||
* strtof: (libc)Parsing of Floats.
|
||
* strtofN: (libc)Parsing of Floats.
|
||
* strtofNx: (libc)Parsing of Floats.
|
||
* strtoimax: (libc)Parsing of Integers.
|
||
* strtok: (libc)Finding Tokens in a String.
|
||
* strtok_r: (libc)Finding Tokens in a String.
|
||
* strtol: (libc)Parsing of Integers.
|
||
* strtold: (libc)Parsing of Floats.
|
||
* strtoll: (libc)Parsing of Integers.
|
||
* strtoq: (libc)Parsing of Integers.
|
||
* strtoul: (libc)Parsing of Integers.
|
||
* strtoull: (libc)Parsing of Integers.
|
||
* strtoumax: (libc)Parsing of Integers.
|
||
* strtouq: (libc)Parsing of Integers.
|
||
* strverscmp: (libc)String/Array Comparison.
|
||
* strxfrm: (libc)Collation Functions.
|
||
* stty: (libc)BSD Terminal Modes.
|
||
* swapcontext: (libc)System V contexts.
|
||
* swprintf: (libc)Formatted Output Functions.
|
||
* swscanf: (libc)Formatted Input Functions.
|
||
* symlink: (libc)Symbolic Links.
|
||
* sync: (libc)Synchronizing I/O.
|
||
* syscall: (libc)System Calls.
|
||
* sysconf: (libc)Sysconf Definition.
|
||
* syslog: (libc)syslog; vsyslog.
|
||
* system: (libc)Running a Command.
|
||
* sysv_signal: (libc)Basic Signal Handling.
|
||
* tan: (libc)Trig Functions.
|
||
* tanf: (libc)Trig Functions.
|
||
* tanfN: (libc)Trig Functions.
|
||
* tanfNx: (libc)Trig Functions.
|
||
* tanh: (libc)Hyperbolic Functions.
|
||
* tanhf: (libc)Hyperbolic Functions.
|
||
* tanhfN: (libc)Hyperbolic Functions.
|
||
* tanhfNx: (libc)Hyperbolic Functions.
|
||
* tanhl: (libc)Hyperbolic Functions.
|
||
* tanl: (libc)Trig Functions.
|
||
* tcdrain: (libc)Line Control.
|
||
* tcflow: (libc)Line Control.
|
||
* tcflush: (libc)Line Control.
|
||
* tcgetattr: (libc)Mode Functions.
|
||
* tcgetpgrp: (libc)Terminal Access Functions.
|
||
* tcgetsid: (libc)Terminal Access Functions.
|
||
* tcsendbreak: (libc)Line Control.
|
||
* tcsetattr: (libc)Mode Functions.
|
||
* tcsetpgrp: (libc)Terminal Access Functions.
|
||
* tdelete: (libc)Tree Search Function.
|
||
* tdestroy: (libc)Tree Search Function.
|
||
* telldir: (libc)Random Access Directory.
|
||
* tempnam: (libc)Temporary Files.
|
||
* textdomain: (libc)Locating gettext catalog.
|
||
* tfind: (libc)Tree Search Function.
|
||
* tgamma: (libc)Special Functions.
|
||
* tgammaf: (libc)Special Functions.
|
||
* tgammafN: (libc)Special Functions.
|
||
* tgammafNx: (libc)Special Functions.
|
||
* tgammal: (libc)Special Functions.
|
||
* tgkill: (libc)Signaling Another Process.
|
||
* thrd_create: (libc)ISO C Thread Management.
|
||
* thrd_current: (libc)ISO C Thread Management.
|
||
* thrd_detach: (libc)ISO C Thread Management.
|
||
* thrd_equal: (libc)ISO C Thread Management.
|
||
* thrd_exit: (libc)ISO C Thread Management.
|
||
* thrd_join: (libc)ISO C Thread Management.
|
||
* thrd_sleep: (libc)ISO C Thread Management.
|
||
* thrd_yield: (libc)ISO C Thread Management.
|
||
* time: (libc)Getting the Time.
|
||
* timegm: (libc)Broken-down Time.
|
||
* timelocal: (libc)Broken-down Time.
|
||
* times: (libc)Processor Time.
|
||
* tmpfile64: (libc)Temporary Files.
|
||
* tmpfile: (libc)Temporary Files.
|
||
* tmpnam: (libc)Temporary Files.
|
||
* tmpnam_r: (libc)Temporary Files.
|
||
* toascii: (libc)Case Conversion.
|
||
* tolower: (libc)Case Conversion.
|
||
* totalorder: (libc)FP Comparison Functions.
|
||
* totalorderf: (libc)FP Comparison Functions.
|
||
* totalorderfN: (libc)FP Comparison Functions.
|
||
* totalorderfNx: (libc)FP Comparison Functions.
|
||
* totalorderl: (libc)FP Comparison Functions.
|
||
* totalordermag: (libc)FP Comparison Functions.
|
||
* totalordermagf: (libc)FP Comparison Functions.
|
||
* totalordermagfN: (libc)FP Comparison Functions.
|
||
* totalordermagfNx: (libc)FP Comparison Functions.
|
||
* totalordermagl: (libc)FP Comparison Functions.
|
||
* toupper: (libc)Case Conversion.
|
||
* towctrans: (libc)Wide Character Case Conversion.
|
||
* towlower: (libc)Wide Character Case Conversion.
|
||
* towupper: (libc)Wide Character Case Conversion.
|
||
* trunc: (libc)Rounding Functions.
|
||
* truncate64: (libc)File Size.
|
||
* truncate: (libc)File Size.
|
||
* truncf: (libc)Rounding Functions.
|
||
* truncfN: (libc)Rounding Functions.
|
||
* truncfNx: (libc)Rounding Functions.
|
||
* truncl: (libc)Rounding Functions.
|
||
* tsearch: (libc)Tree Search Function.
|
||
* tss_create: (libc)ISO C Thread-local Storage.
|
||
* tss_delete: (libc)ISO C Thread-local Storage.
|
||
* tss_get: (libc)ISO C Thread-local Storage.
|
||
* tss_set: (libc)ISO C Thread-local Storage.
|
||
* ttyname: (libc)Is It a Terminal.
|
||
* ttyname_r: (libc)Is It a Terminal.
|
||
* twalk: (libc)Tree Search Function.
|
||
* twalk_r: (libc)Tree Search Function.
|
||
* tzset: (libc)Time Zone Functions.
|
||
* ufromfp: (libc)Rounding Functions.
|
||
* ufromfpf: (libc)Rounding Functions.
|
||
* ufromfpfN: (libc)Rounding Functions.
|
||
* ufromfpfNx: (libc)Rounding Functions.
|
||
* ufromfpl: (libc)Rounding Functions.
|
||
* ufromfpx: (libc)Rounding Functions.
|
||
* ufromfpxf: (libc)Rounding Functions.
|
||
* ufromfpxfN: (libc)Rounding Functions.
|
||
* ufromfpxfNx: (libc)Rounding Functions.
|
||
* ufromfpxl: (libc)Rounding Functions.
|
||
* ulimit: (libc)Limits on Resources.
|
||
* umask: (libc)Setting Permissions.
|
||
* umount2: (libc)Mount-Unmount-Remount.
|
||
* umount: (libc)Mount-Unmount-Remount.
|
||
* uname: (libc)Platform Type.
|
||
* ungetc: (libc)How Unread.
|
||
* ungetwc: (libc)How Unread.
|
||
* unlink: (libc)Deleting Files.
|
||
* unlockpt: (libc)Allocation.
|
||
* unsetenv: (libc)Environment Access.
|
||
* updwtmp: (libc)Manipulating the Database.
|
||
* utime: (libc)File Times.
|
||
* utimes: (libc)File Times.
|
||
* utmpname: (libc)Manipulating the Database.
|
||
* utmpxname: (libc)XPG Functions.
|
||
* va_arg: (libc)Argument Macros.
|
||
* va_copy: (libc)Argument Macros.
|
||
* va_end: (libc)Argument Macros.
|
||
* va_start: (libc)Argument Macros.
|
||
* valloc: (libc)Aligned Memory Blocks.
|
||
* vasprintf: (libc)Variable Arguments Output.
|
||
* verr: (libc)Error Messages.
|
||
* verrx: (libc)Error Messages.
|
||
* versionsort64: (libc)Scanning Directory Content.
|
||
* versionsort: (libc)Scanning Directory Content.
|
||
* vfork: (libc)Creating a Process.
|
||
* vfprintf: (libc)Variable Arguments Output.
|
||
* vfscanf: (libc)Variable Arguments Input.
|
||
* vfwprintf: (libc)Variable Arguments Output.
|
||
* vfwscanf: (libc)Variable Arguments Input.
|
||
* vlimit: (libc)Limits on Resources.
|
||
* vprintf: (libc)Variable Arguments Output.
|
||
* vscanf: (libc)Variable Arguments Input.
|
||
* vsnprintf: (libc)Variable Arguments Output.
|
||
* vsprintf: (libc)Variable Arguments Output.
|
||
* vsscanf: (libc)Variable Arguments Input.
|
||
* vswprintf: (libc)Variable Arguments Output.
|
||
* vswscanf: (libc)Variable Arguments Input.
|
||
* vsyslog: (libc)syslog; vsyslog.
|
||
* vwarn: (libc)Error Messages.
|
||
* vwarnx: (libc)Error Messages.
|
||
* vwprintf: (libc)Variable Arguments Output.
|
||
* vwscanf: (libc)Variable Arguments Input.
|
||
* wait3: (libc)BSD Wait Functions.
|
||
* wait4: (libc)Process Completion.
|
||
* wait: (libc)Process Completion.
|
||
* waitpid: (libc)Process Completion.
|
||
* warn: (libc)Error Messages.
|
||
* warnx: (libc)Error Messages.
|
||
* wcpcpy: (libc)Copying Strings and Arrays.
|
||
* wcpncpy: (libc)Truncating Strings.
|
||
* wcrtomb: (libc)Converting a Character.
|
||
* wcscasecmp: (libc)String/Array Comparison.
|
||
* wcscat: (libc)Concatenating Strings.
|
||
* wcschr: (libc)Search Functions.
|
||
* wcschrnul: (libc)Search Functions.
|
||
* wcscmp: (libc)String/Array Comparison.
|
||
* wcscoll: (libc)Collation Functions.
|
||
* wcscpy: (libc)Copying Strings and Arrays.
|
||
* wcscspn: (libc)Search Functions.
|
||
* wcsdup: (libc)Copying Strings and Arrays.
|
||
* wcsftime: (libc)Formatting Calendar Time.
|
||
* wcslen: (libc)String Length.
|
||
* wcsncasecmp: (libc)String/Array Comparison.
|
||
* wcsncat: (libc)Truncating Strings.
|
||
* wcsncmp: (libc)String/Array Comparison.
|
||
* wcsncpy: (libc)Truncating Strings.
|
||
* wcsnlen: (libc)String Length.
|
||
* wcsnrtombs: (libc)Converting Strings.
|
||
* wcspbrk: (libc)Search Functions.
|
||
* wcsrchr: (libc)Search Functions.
|
||
* wcsrtombs: (libc)Converting Strings.
|
||
* wcsspn: (libc)Search Functions.
|
||
* wcsstr: (libc)Search Functions.
|
||
* wcstod: (libc)Parsing of Floats.
|
||
* wcstof: (libc)Parsing of Floats.
|
||
* wcstofN: (libc)Parsing of Floats.
|
||
* wcstofNx: (libc)Parsing of Floats.
|
||
* wcstoimax: (libc)Parsing of Integers.
|
||
* wcstok: (libc)Finding Tokens in a String.
|
||
* wcstol: (libc)Parsing of Integers.
|
||
* wcstold: (libc)Parsing of Floats.
|
||
* wcstoll: (libc)Parsing of Integers.
|
||
* wcstombs: (libc)Non-reentrant String Conversion.
|
||
* wcstoq: (libc)Parsing of Integers.
|
||
* wcstoul: (libc)Parsing of Integers.
|
||
* wcstoull: (libc)Parsing of Integers.
|
||
* wcstoumax: (libc)Parsing of Integers.
|
||
* wcstouq: (libc)Parsing of Integers.
|
||
* wcswcs: (libc)Search Functions.
|
||
* wcsxfrm: (libc)Collation Functions.
|
||
* wctob: (libc)Converting a Character.
|
||
* wctomb: (libc)Non-reentrant Character Conversion.
|
||
* wctrans: (libc)Wide Character Case Conversion.
|
||
* wctype: (libc)Classification of Wide Characters.
|
||
* wmemchr: (libc)Search Functions.
|
||
* wmemcmp: (libc)String/Array Comparison.
|
||
* wmemcpy: (libc)Copying Strings and Arrays.
|
||
* wmemmove: (libc)Copying Strings and Arrays.
|
||
* wmempcpy: (libc)Copying Strings and Arrays.
|
||
* wmemset: (libc)Copying Strings and Arrays.
|
||
* wordexp: (libc)Calling Wordexp.
|
||
* wordfree: (libc)Calling Wordexp.
|
||
* wprintf: (libc)Formatted Output Functions.
|
||
* write: (libc)I/O Primitives.
|
||
* writev: (libc)Scatter-Gather.
|
||
* wscanf: (libc)Formatted Input Functions.
|
||
* y0: (libc)Special Functions.
|
||
* y0f: (libc)Special Functions.
|
||
* y0fN: (libc)Special Functions.
|
||
* y0fNx: (libc)Special Functions.
|
||
* y0l: (libc)Special Functions.
|
||
* y1: (libc)Special Functions.
|
||
* y1f: (libc)Special Functions.
|
||
* y1fN: (libc)Special Functions.
|
||
* y1fNx: (libc)Special Functions.
|
||
* y1l: (libc)Special Functions.
|
||
* yn: (libc)Special Functions.
|
||
* ynf: (libc)Special Functions.
|
||
* ynfN: (libc)Special Functions.
|
||
* ynfNx: (libc)Special Functions.
|
||
* ynl: (libc)Special Functions.
|
||
END-INFO-DIR-ENTRY
|
||
|
||
|
||
File: libc.info, Node: Configuring and compiling, Next: Running make install, Up: Installation
|
||
|
||
C.1 Configuring and compiling the GNU C Library
|
||
===============================================
|
||
|
||
The GNU C Library cannot be compiled in the source directory. You must
|
||
build it in a separate build directory. For example, if you have
|
||
unpacked the GNU C Library sources in ‘/src/gnu/glibc-VERSION’, create a
|
||
directory ‘/src/gnu/glibc-build’ to put the object files in. This
|
||
allows removing the whole build directory in case an error occurs, which
|
||
is the safest way to get a fresh start and should always be done.
|
||
|
||
From your object directory, run the shell script ‘configure’ located
|
||
at the top level of the source tree. In the scenario above, you’d type
|
||
|
||
$ ../glibc-VERSION/configure ARGS…
|
||
|
||
Please note that even though you’re building in a separate build
|
||
directory, the compilation may need to create or modify files and
|
||
directories in the source directory.
|
||
|
||
‘configure’ takes many options, but the only one that is usually
|
||
mandatory is ‘--prefix’. This option tells ‘configure’ where you want
|
||
the GNU C Library installed. This defaults to ‘/usr/local’, but the
|
||
normal setting to install as the standard system library is
|
||
‘--prefix=/usr’ for GNU/Linux systems and ‘--prefix=’ (an empty prefix)
|
||
for GNU/Hurd systems.
|
||
|
||
It may also be useful to pass ‘CC=COMPILER’ and ‘CFLAGS=FLAGS’
|
||
arguments to ‘configure’. ‘CC’ selects the C compiler that will be
|
||
used, and ‘CFLAGS’ sets optimization options for the compiler. Any
|
||
compiler options required for all compilations, such as options
|
||
selecting an ABI or a processor for which to generate code, should be
|
||
included in ‘CC’. Options that may be overridden by the GNU C Library
|
||
build system for particular files, such as for optimization and
|
||
debugging, should go in ‘CFLAGS’. The default value of ‘CFLAGS’ is ‘-g
|
||
-O2’, and the GNU C Library cannot be compiled without optimization, so
|
||
if ‘CFLAGS’ is specified it must enable optimization. For example:
|
||
|
||
$ ../glibc-VERSION/configure CC="gcc -m32" CFLAGS="-O3"
|
||
|
||
The following list describes all of the available options for
|
||
‘configure’:
|
||
|
||
‘--prefix=DIRECTORY’
|
||
Install machine-independent data files in subdirectories of
|
||
‘DIRECTORY’. The default is to install in ‘/usr/local’.
|
||
|
||
‘--exec-prefix=DIRECTORY’
|
||
Install the library and other machine-dependent files in
|
||
subdirectories of ‘DIRECTORY’. The default is to the ‘--prefix’
|
||
directory if that option is specified, or ‘/usr/local’ otherwise.
|
||
|
||
‘--with-headers=DIRECTORY’
|
||
Look for kernel header files in DIRECTORY, not ‘/usr/include’. The
|
||
GNU C Library needs information from the kernel’s header files
|
||
describing the interface to the kernel. The GNU C Library will
|
||
normally look in ‘/usr/include’ for them, but if you specify this
|
||
option, it will look in DIRECTORY instead.
|
||
|
||
This option is primarily of use on a system where the headers in
|
||
‘/usr/include’ come from an older version of the GNU C Library.
|
||
Conflicts can occasionally happen in this case. You can also use
|
||
this option if you want to compile the GNU C Library with a newer
|
||
set of kernel headers than the ones found in ‘/usr/include’.
|
||
|
||
‘--enable-kernel=VERSION’
|
||
This option is currently only useful on GNU/Linux systems. The
|
||
VERSION parameter should have the form X.Y.Z and describes the
|
||
smallest version of the Linux kernel the generated library is
|
||
expected to support. The higher the VERSION number is, the less
|
||
compatibility code is added, and the faster the code gets.
|
||
|
||
‘--with-binutils=DIRECTORY’
|
||
Use the binutils (assembler and linker) in ‘DIRECTORY’, not the
|
||
ones the C compiler would default to. You can use this option if
|
||
the default binutils on your system cannot deal with all the
|
||
constructs in the GNU C Library. In that case, ‘configure’ will
|
||
detect the problem and suppress these constructs, so that the
|
||
library will still be usable, but functionality may be lost—for
|
||
example, you can’t build a shared libc with old binutils.
|
||
|
||
‘--with-nonshared-cflags=CFLAGS’
|
||
Use additional compiler flags CFLAGS to build the parts of the
|
||
library which are always statically linked into applications and
|
||
libraries even with shared linking (that is, the object files
|
||
contained in ‘lib*_nonshared.a’ libraries). The build process will
|
||
automatically use the appropriate flags, but this option can be
|
||
used to set additional flags required for building applications and
|
||
libraries, to match local policy. For example, if such a policy
|
||
requires that all code linked into applications must be built with
|
||
source fortification,
|
||
‘--with-nonshared-cflags=-Wp,-D_FORTIFY_SOURCE=2’ will make sure
|
||
that the objects in ‘libc_nonshared.a’ are compiled with this flag
|
||
(although this will not affect the generated code in this
|
||
particular case and potentially change debugging information and
|
||
metadata only).
|
||
|
||
‘--disable-shared’
|
||
Don’t build shared libraries even if it is possible. Not all
|
||
systems support shared libraries; you need ELF support and
|
||
(currently) the GNU linker.
|
||
|
||
‘--enable-static-pie’
|
||
Enable static position independent executable (static PIE) support.
|
||
Static PIE is similar to static executable, but can be loaded at
|
||
any address without help from a dynamic linker. All static
|
||
programs as well as static tests are built as static PIE, except
|
||
for those marked with no-pie. The resulting glibc can be used with
|
||
the GCC option, -static-pie, which is available with GCC 8 or
|
||
above, to create static PIE. This option also implies that glibc
|
||
programs and tests are created as dynamic position independent
|
||
executables (PIE) by default.
|
||
|
||
‘--enable-cet’
|
||
‘--enable-cet=permissive’
|
||
Enable Intel Control-flow Enforcement Technology (CET) support.
|
||
When the GNU C Library is built with ‘--enable-cet’ or
|
||
‘--enable-cet=permissive’, the resulting library is protected with
|
||
indirect branch tracking (IBT) and shadow stack (SHSTK). When CET
|
||
is enabled, the GNU C Library is compatible with all existing
|
||
executables and shared libraries. This feature is currently
|
||
supported on i386, x86_64 and x32 with GCC 8 and binutils 2.29 or
|
||
later. Note that when CET is enabled, the GNU C Library requires
|
||
CPUs capable of multi-byte NOPs, like x86-64 processors as well as
|
||
Intel Pentium Pro or newer. With ‘--enable-cet’, it is an error to
|
||
dlopen a non CET enabled shared library in CET enabled application.
|
||
With ‘--enable-cet=permissive’, CET is disabled when dlopening a
|
||
non CET enabled shared library in CET enabled application.
|
||
|
||
NOTE: ‘--enable-cet’ has been tested for i686, x86_64 and x32 on
|
||
non-CET processors. ‘--enable-cet’ has been tested for i686,
|
||
x86_64 and x32 on CET processors.
|
||
|
||
‘--enable-memory-tagging’
|
||
Enable memory tagging support if the architecture supports it.
|
||
When the GNU C Library is built with this option then the resulting
|
||
library will be able to control the use of tagged memory when
|
||
hardware support is present by use of the tunable
|
||
‘glibc.mem.tagging’. This includes the generation of tagged memory
|
||
when using the ‘malloc’ APIs.
|
||
|
||
At present only AArch64 platforms with MTE provide this
|
||
functionality, although the library will still operate (without
|
||
memory tagging) on older versions of the architecture.
|
||
|
||
The default is to disable support for memory tagging.
|
||
|
||
‘--disable-profile’
|
||
Don’t build libraries with profiling information. You may want to
|
||
use this option if you don’t plan to do profiling.
|
||
|
||
‘--enable-static-nss’
|
||
Compile static versions of the NSS (Name Service Switch) libraries.
|
||
This is not recommended because it defeats the purpose of NSS; a
|
||
program linked statically with the NSS libraries cannot be
|
||
dynamically reconfigured to use a different name database.
|
||
|
||
‘--enable-hardcoded-path-in-tests’
|
||
By default, dynamic tests are linked to run with the installed C
|
||
library. This option hardcodes the newly built C library path in
|
||
dynamic tests so that they can be invoked directly.
|
||
|
||
‘--disable-timezone-tools’
|
||
By default, timezone related utilities (‘zic’, ‘zdump’, and
|
||
‘tzselect’) are installed with the GNU C Library. If you are
|
||
building these independently (e.g. by using the ‘tzcode’ package),
|
||
then this option will allow disabling the install of these.
|
||
|
||
Note that you need to make sure the external tools are kept in sync
|
||
with the versions that the GNU C Library expects as the data
|
||
formats may change over time. Consult the ‘timezone’ subdirectory
|
||
for more details.
|
||
|
||
‘--enable-stack-protector’
|
||
‘--enable-stack-protector=strong’
|
||
‘--enable-stack-protector=all’
|
||
Compile the C library and all other parts of the glibc package
|
||
(including the threading and math libraries, NSS modules, and
|
||
transliteration modules) using the GCC ‘-fstack-protector’,
|
||
‘-fstack-protector-strong’ or ‘-fstack-protector-all’ options to
|
||
detect stack overruns. Only the dynamic linker and a small number
|
||
of routines called directly from assembler are excluded from this
|
||
protection.
|
||
|
||
‘--enable-bind-now’
|
||
Disable lazy binding for installed shared objects and programs.
|
||
This provides additional security hardening because it enables full
|
||
RELRO and a read-only global offset table (GOT), at the cost of
|
||
slightly increased program load times.
|
||
|
||
‘--enable-pt_chown’
|
||
The file ‘pt_chown’ is a helper binary for ‘grantpt’ (*note
|
||
Pseudo-Terminals: Allocation.) that is installed setuid root to fix
|
||
up pseudo-terminal ownership on GNU/Hurd. It is not required on
|
||
GNU/Linux, and the GNU C Library will not use the installed
|
||
‘pt_chown’ program when configured with ‘--enable-pt_chown’.
|
||
|
||
‘--disable-werror’
|
||
By default, the GNU C Library is built with ‘-Werror’. If you wish
|
||
to build without this option (for example, if building with a newer
|
||
version of GCC than this version of the GNU C Library was tested
|
||
with, so new warnings cause the build with ‘-Werror’ to fail), you
|
||
can configure with ‘--disable-werror’.
|
||
|
||
‘--disable-mathvec’
|
||
By default for x86_64, the GNU C Library is built with the vector
|
||
math library. Use this option to disable the vector math library.
|
||
|
||
‘--enable-tunables’
|
||
Tunables support allows additional library parameters to be
|
||
customized at runtime. This feature is enabled by default. This
|
||
option can take the following values:
|
||
|
||
‘yes’
|
||
This is the default if no option is passed to configure. This
|
||
enables tunables and selects the default frontend (currently
|
||
‘valstring’).
|
||
|
||
‘no’
|
||
This option disables tunables.
|
||
|
||
‘valstring’
|
||
This enables tunables and selects the ‘valstring’ frontend for
|
||
tunables. This frontend allows users to specify tunables as a
|
||
colon-separated list in a single environment variable
|
||
‘GLIBC_TUNABLES’.
|
||
|
||
‘--disable-crypt’
|
||
Do not install the passphrase-hashing library ‘libcrypt’ or the
|
||
header file ‘crypt.h’. ‘unistd.h’ will still declare the function
|
||
‘crypt’. Using this option does not change the set of programs
|
||
that may need to be linked with ‘-lcrypt’; it only means that the
|
||
GNU C Library will not provide that library.
|
||
|
||
This option is for hackers and distributions experimenting with
|
||
independently-maintained implementations of libcrypt. It may
|
||
become the default in a future release.
|
||
|
||
‘--disable-experimental-malloc’
|
||
By default, a per-thread cache is enabled in ‘malloc’. While this
|
||
cache can be disabled on a per-application basis using tunables
|
||
(set glibc.malloc.tcache_count to zero), this option can be used to
|
||
remove it from the build completely.
|
||
|
||
‘--build=BUILD-SYSTEM’
|
||
‘--host=HOST-SYSTEM’
|
||
These options are for cross-compiling. If you specify both options
|
||
and BUILD-SYSTEM is different from HOST-SYSTEM, ‘configure’ will
|
||
prepare to cross-compile the GNU C Library from BUILD-SYSTEM to be
|
||
used on HOST-SYSTEM. You’ll probably need the ‘--with-headers’
|
||
option too, and you may have to override CONFIGURE’s selection of
|
||
the compiler and/or binutils.
|
||
|
||
If you only specify ‘--host’, ‘configure’ will prepare for a native
|
||
compile but use what you specify instead of guessing what your
|
||
system is. This is most useful to change the CPU submodel. For
|
||
example, if ‘configure’ guesses your machine as ‘i686-pc-linux-gnu’
|
||
but you want to compile a library for 586es, give
|
||
‘--host=i586-pc-linux-gnu’ or just ‘--host=i586-linux’ and add the
|
||
appropriate compiler flags (‘-mcpu=i586’ will do the trick) to
|
||
‘CC’.
|
||
|
||
If you specify just ‘--build’, ‘configure’ will get confused.
|
||
|
||
‘--with-pkgversion=VERSION’
|
||
Specify a description, possibly including a build number or build
|
||
date, of the binaries being built, to be included in ‘--version’
|
||
output from programs installed with the GNU C Library. For
|
||
example, ‘--with-pkgversion='FooBar GNU/Linux glibc build 123'’.
|
||
The default value is ‘GNU libc’.
|
||
|
||
‘--with-bugurl=URL’
|
||
Specify the URL that users should visit if they wish to report a
|
||
bug, to be included in ‘--help’ output from programs installed with
|
||
the GNU C Library. The default value refers to the main
|
||
bug-reporting information for the GNU C Library.
|
||
|
||
To build the library and related programs, type ‘make’. This will
|
||
produce a lot of output, some of which may look like errors from ‘make’
|
||
but aren’t. Look for error messages from ‘make’ containing ‘***’.
|
||
Those indicate that something is seriously wrong.
|
||
|
||
The compilation process can take a long time, depending on the
|
||
configuration and the speed of your machine. Some complex modules may
|
||
take a very long time to compile, as much as several minutes on slower
|
||
machines. Do not panic if the compiler appears to hang.
|
||
|
||
If you want to run a parallel make, simply pass the ‘-j’ option with
|
||
an appropriate numeric parameter to ‘make’. You need a recent GNU
|
||
‘make’ version, though.
|
||
|
||
To build and run test programs which exercise some of the library
|
||
facilities, type ‘make check’. If it does not complete successfully, do
|
||
not use the built library, and report a bug after verifying that the
|
||
problem is not already known. *Note Reporting Bugs::, for instructions
|
||
on reporting bugs. Note that some of the tests assume they are not
|
||
being run by ‘root’. We recommend you compile and test the GNU C
|
||
Library as an unprivileged user.
|
||
|
||
Before reporting bugs make sure there is no problem with your system.
|
||
The tests (and later installation) use some pre-existing files of the
|
||
system such as ‘/etc/passwd’, ‘/etc/nsswitch.conf’ and others. These
|
||
files must all contain correct and sensible content.
|
||
|
||
Normally, ‘make check’ will run all the tests before reporting all
|
||
problems found and exiting with error status if any problems occurred.
|
||
You can specify ‘stop-on-test-failure=y’ when running ‘make check’ to
|
||
make the test run stop and exit with an error status immediately when a
|
||
failure occurs.
|
||
|
||
To format the ‘GNU C Library Reference Manual’ for printing, type
|
||
‘make dvi’. You need a working TeX installation to do this. The
|
||
distribution builds the on-line formatted version of the manual, as Info
|
||
files, as part of the build process. You can build them manually with
|
||
‘make info’.
|
||
|
||
The library has a number of special-purpose configuration parameters
|
||
which you can find in ‘Makeconfig’. These can be overwritten with the
|
||
file ‘configparms’. To change them, create a ‘configparms’ in your
|
||
build directory and add values as appropriate for your system. The file
|
||
is included and parsed by ‘make’ and has to follow the conventions for
|
||
makefiles.
|
||
|
||
It is easy to configure the GNU C Library for cross-compilation by
|
||
setting a few variables in ‘configparms’. Set ‘CC’ to the
|
||
cross-compiler for the target you configured the library for; it is
|
||
important to use this same ‘CC’ value when running ‘configure’, like
|
||
this: ‘configure TARGET CC=TARGET-gcc’. Set ‘BUILD_CC’ to the compiler
|
||
to use for programs run on the build system as part of compiling the
|
||
library. You may need to set ‘AR’ to cross-compiling versions of ‘ar’
|
||
if the native tools are not configured to work with object files for the
|
||
target you configured for. When cross-compiling the GNU C Library, it
|
||
may be tested using ‘make check
|
||
test-wrapper="SRCDIR/scripts/cross-test-ssh.sh HOSTNAME"’, where SRCDIR
|
||
is the absolute directory name for the main source directory and
|
||
HOSTNAME is the host name of a system that can run the newly built
|
||
binaries of the GNU C Library. The source and build directories must be
|
||
visible at the same locations on both the build system and HOSTNAME.
|
||
|
||
In general, when testing the GNU C Library, ‘test-wrapper’ may be set
|
||
to the name and arguments of any program to run newly built binaries.
|
||
This program must preserve the arguments to the binary being run, its
|
||
working directory and the standard input, output and error file
|
||
descriptors. If ‘TEST-WRAPPER env’ will not work to run a program with
|
||
environment variables set, then ‘test-wrapper-env’ must be set to a
|
||
program that runs a newly built program with environment variable
|
||
assignments in effect, those assignments being specified as ‘VAR=VALUE’
|
||
before the name of the program to be run. If multiple assignments to
|
||
the same variable are specified, the last assignment specified must take
|
||
precedence. Similarly, if ‘TEST-WRAPPER env -i’ will not work to run a
|
||
program with an environment completely empty of variables except those
|
||
directly assigned, then ‘test-wrapper-env-only’ must be set; its use has
|
||
the same syntax as ‘test-wrapper-env’, the only difference in its
|
||
semantics being starting with an empty set of environment variables
|
||
rather than the ambient set.
|
||
|
||
|
||
File: libc.info, Node: Running make install, Next: Tools for Compilation, Prev: Configuring and compiling, Up: Installation
|
||
|
||
C.2 Installing the C Library
|
||
============================
|
||
|
||
To install the library and its header files, and the Info files of the
|
||
manual, type ‘make install’. This will build things, if necessary,
|
||
before installing them; however, you should still compile everything
|
||
first. If you are installing the GNU C Library as your primary C
|
||
library, we recommend that you shut the system down to single-user mode
|
||
first, and reboot afterward. This minimizes the risk of breaking things
|
||
when the library changes out from underneath.
|
||
|
||
‘make install’ will do the entire job of upgrading from a previous
|
||
installation of the GNU C Library version 2.x. There may sometimes be
|
||
headers left behind from the previous installation, but those are
|
||
generally harmless. If you want to avoid leaving headers behind you can
|
||
do things in the following order.
|
||
|
||
You must first build the library (‘make’), optionally check it (‘make
|
||
check’), switch the include directories and then install (‘make
|
||
install’). The steps must be done in this order. Not moving the
|
||
directory before install will result in an unusable mixture of header
|
||
files from both libraries, but configuring, building, and checking the
|
||
library requires the ability to compile and run programs against the old
|
||
library. The new ‘/usr/include’, after switching the include
|
||
directories and before installing the library should contain the Linux
|
||
headers, but nothing else. If you do this, you will need to restore any
|
||
headers from libraries other than the GNU C Library yourself after
|
||
installing the library.
|
||
|
||
You can install the GNU C Library somewhere other than where you
|
||
configured it to go by setting the ‘DESTDIR’ GNU standard make variable
|
||
on the command line for ‘make install’. The value of this variable is
|
||
prepended to all the paths for installation. This is useful when
|
||
setting up a chroot environment or preparing a binary distribution. The
|
||
directory should be specified with an absolute file name. Installing
|
||
with the ‘prefix’ and ‘exec_prefix’ GNU standard make variables set is
|
||
not supported.
|
||
|
||
The GNU C Library includes a daemon called ‘nscd’, which you may or
|
||
may not want to run. ‘nscd’ caches name service lookups; it can
|
||
dramatically improve performance with NIS+, and may help with DNS as
|
||
well.
|
||
|
||
One auxiliary program, ‘/usr/libexec/pt_chown’, is installed setuid
|
||
‘root’ if the ‘--enable-pt_chown’ configuration option is used. This
|
||
program is invoked by the ‘grantpt’ function; it sets the permissions on
|
||
a pseudoterminal so it can be used by the calling process. If you are
|
||
using a Linux kernel with the ‘devpts’ filesystem enabled and mounted at
|
||
‘/dev/pts’, you don’t need this program.
|
||
|
||
After installation you should configure the timezone and install
|
||
locales for your system. The time zone configuration ensures that your
|
||
system time matches the time for your current timezone. The locales
|
||
ensure that the display of information on your system matches the
|
||
expectations of your language and geographic region.
|
||
|
||
The GNU C Library is able to use two kinds of localization
|
||
information sources, the first is a locale database named
|
||
‘locale-archive’ which is generally installed as
|
||
‘/usr/lib/locale/locale-archive’. The locale archive has the benefit of
|
||
taking up less space and being very fast to load, but only if you plan
|
||
to install sixty or more locales. If you plan to install one or two
|
||
locales you can instead install individual locales into their self-named
|
||
directories e.g. ‘/usr/lib/locale/en_US.utf8’. For example to install
|
||
the German locale using the character set for UTF-8 with name ‘de_DE’
|
||
into the locale archive issue the command ‘localedef -i de_DE -f UTF-8
|
||
de_DE’, and to install just the one locale issue the command ‘localedef
|
||
--no-archive -i de_DE -f UTF-8 de_DE’. To configure all locales that
|
||
are supported by the GNU C Library, you can issue from your build
|
||
directory the command ‘make localedata/install-locales’ to install all
|
||
locales into the locale archive or ‘make
|
||
localedata/install-locale-files’ to install all locales as files in the
|
||
default configured locale installation directory (derived from
|
||
‘--prefix’ or ‘--localedir’). To install into an alternative system
|
||
root use ‘DESTDIR’ e.g. ‘make localedata/install-locale-files
|
||
DESTDIR=/opt/glibc’, but note that this does not change the configured
|
||
prefix.
|
||
|
||
To configure the locally used timezone, set the ‘TZ’ environment
|
||
variable. The script ‘tzselect’ helps you to select the right value.
|
||
As an example, for Germany, ‘tzselect’ would tell you to use
|
||
‘TZ='Europe/Berlin'’. For a system wide installation (the given paths
|
||
are for an installation with ‘--prefix=/usr’), link the timezone file
|
||
which is in ‘/usr/share/zoneinfo’ to the file ‘/etc/localtime’. For
|
||
Germany, you might execute ‘ln -s /usr/share/zoneinfo/Europe/Berlin
|
||
/etc/localtime’.
|
||
|
||
|
||
File: libc.info, Node: Tools for Compilation, Next: Linux, Prev: Running make install, Up: Installation
|
||
|
||
C.3 Recommended Tools for Compilation
|
||
=====================================
|
||
|
||
We recommend installing the following GNU tools before attempting to
|
||
build the GNU C Library:
|
||
|
||
• GNU ‘make’ 4.0 or newer
|
||
|
||
As of relase time, GNU ‘make’ 4.3 is the newest verified to work to
|
||
build the GNU C Library.
|
||
|
||
• GCC 6.2 or newer
|
||
|
||
GCC 6.2 or higher is required. In general it is recommended to use
|
||
the newest version of the compiler that is known to work for
|
||
building the GNU C Library, as newer compilers usually produce
|
||
better code. As of release time, GCC 10.2 is the newest compiler
|
||
verified to work to build the GNU C Library.
|
||
|
||
For PowerPC 64-bits little-endian (powerpc64le), a GCC version with
|
||
support for ‘-mno-gnu-attribute’, ‘-mabi=ieeelongdouble’, and
|
||
‘-mabi=ibmlondouble’ is required. Likewise, the compiler must also
|
||
support passing ‘-mlong-double-128’ with the preceding options. As
|
||
of release, this implies GCC 7.4 and newer (excepting GCC 7.5.0,
|
||
see GCC PR94200). These additional features are required for
|
||
building the GNU C Library with support for IEEE long double.
|
||
|
||
For ARC architecture builds, GCC 8.3 or higher is needed.
|
||
|
||
For s390x architecture builds, GCC 7.1 or higher is needed (See gcc
|
||
Bug 98269).
|
||
|
||
For multi-arch support it is recommended to use a GCC which has
|
||
been built with support for GNU indirect functions. This ensures
|
||
that correct debugging information is generated for functions
|
||
selected by IFUNC resolvers. This support can either be enabled by
|
||
configuring GCC with ‘--enable-gnu-indirect-function’, or by
|
||
enabling it by default by setting ‘default_gnu_indirect_function’
|
||
variable for a particular architecture in the GCC source file
|
||
‘gcc/config.gcc’.
|
||
|
||
You can use whatever compiler you like to compile programs that use
|
||
the GNU C Library.
|
||
|
||
Check the FAQ for any special compiler issues on particular
|
||
platforms.
|
||
|
||
• GNU ‘binutils’ 2.25 or later
|
||
|
||
You must use GNU ‘binutils’ (as and ld) to build the GNU C Library.
|
||
No other assembler or linker has the necessary functionality at the
|
||
moment. As of release time, GNU ‘binutils’ 2.35.1 is the newest
|
||
verified to work to build the GNU C Library.
|
||
|
||
For PowerPC 64-bits little-endian (powerpc64le), ‘objcopy’ is
|
||
required to support ‘--update-section’. This option requires
|
||
binutils 2.26 or newer.
|
||
|
||
ARC architecture needs ‘binutils’ 2.32 or higher for TLS related
|
||
fixes.
|
||
|
||
• GNU ‘texinfo’ 4.7 or later
|
||
|
||
To correctly translate and install the Texinfo documentation you
|
||
need this version of the ‘texinfo’ package. Earlier versions do
|
||
not understand all the tags used in the document, and the
|
||
installation mechanism for the info files is not present or works
|
||
differently. As of release time, ‘texinfo’ 6.7 is the newest
|
||
verified to work to build the GNU C Library.
|
||
|
||
• GNU ‘awk’ 3.1.2, or higher
|
||
|
||
‘awk’ is used in several places to generate files. Some ‘gawk’
|
||
extensions are used, including the ‘asorti’ function, which was
|
||
introduced in version 3.1.2 of ‘gawk’. As of release time, ‘gawk’
|
||
version 5.1 is the newest verified to work to build the GNU C
|
||
Library.
|
||
|
||
• GNU ‘bison’ 2.7 or later
|
||
|
||
‘bison’ is used to generate the ‘yacc’ parser code in the ‘intl’
|
||
subdirectory. As of release time, ‘bison’ version 3.7.4 is the
|
||
newest verified to work to build the GNU C Library.
|
||
|
||
• Perl 5
|
||
|
||
Perl is not required, but if present it is used in some tests and
|
||
the ‘mtrace’ program, to build the GNU C Library manual. As of
|
||
release time ‘perl’ version 5.32.0 is the newest verified to work
|
||
to build the GNU C Library.
|
||
|
||
• GNU ‘sed’ 3.02 or newer
|
||
|
||
‘Sed’ is used in several places to generate files. Most scripts
|
||
work with any version of ‘sed’. As of release time, ‘sed’ version
|
||
4.8 is the newest verified to work to build the GNU C Library.
|
||
|
||
• Python 3.4 or later
|
||
|
||
Python is required to build the GNU C Library. As of release time,
|
||
Python 3.8.6 is the newest verified to work for building and
|
||
testing the GNU C Library.
|
||
|
||
• PExpect 4.0
|
||
|
||
The pretty printer tests drive GDB through test programs and
|
||
compare its output to the printers’. PExpect is used to capture
|
||
the output of GDB, and should be compatible with the Python version
|
||
in your system. As of release time PExpect 4.8 is the newest
|
||
verified to work to test the pretty printers.
|
||
|
||
• GDB 7.8 or later with support for Python 2.7/3.4 or later
|
||
|
||
GDB itself needs to be configured with Python support in order to
|
||
use the pretty printers. Notice that your system having Python
|
||
available doesn’t imply that GDB supports it, nor that your
|
||
system’s Python and GDB’s have the same version. As of release
|
||
time GNU ‘debugger’ 10.1 is the newest verified to work to test the
|
||
pretty printers.
|
||
|
||
Unless Python, PExpect and GDB with Python support are present, the
|
||
printer tests will report themselves as ‘UNSUPPORTED’. Notice that
|
||
some of the printer tests require the GNU C Library to be compiled
|
||
with debugging symbols.
|
||
|
||
If you change any of the ‘configure.ac’ files you will also need
|
||
|
||
• GNU ‘autoconf’ 2.69 (exactly)
|
||
|
||
and if you change any of the message translation files you will need
|
||
|
||
• GNU ‘gettext’ 0.10.36 or later
|
||
|
||
As of release time, GNU ‘gettext’ version 0.21 is the newest
|
||
version verified to work to build the GNU C Library.
|
||
|
||
You may also need these packages if you upgrade your source tree using
|
||
patches, although we try to avoid this.
|
||
|
||
|
||
File: libc.info, Node: Linux, Next: Reporting Bugs, Prev: Tools for Compilation, Up: Installation
|
||
|
||
C.4 Specific advice for GNU/Linux systems
|
||
=========================================
|
||
|
||
If you are installing the GNU C Library on GNU/Linux systems, you need
|
||
to have the header files from a 3.2 or newer kernel around for
|
||
reference. (For the ia64 architecture, you need version 3.2.18 or newer
|
||
because this is the first version with support for the ‘accept4’ system
|
||
call.) These headers must be installed using ‘make headers_install’;
|
||
the headers present in the kernel source directory are not suitable for
|
||
direct use by the GNU C Library. You do not need to use that kernel,
|
||
just have its headers installed where the GNU C Library can access them,
|
||
referred to here as INSTALL-DIRECTORY. The easiest way to do this is to
|
||
unpack it in a directory such as ‘/usr/src/linux-VERSION’. In that
|
||
directory, run ‘make headers_install
|
||
INSTALL_HDR_PATH=INSTALL-DIRECTORY’. Finally, configure the GNU C
|
||
Library with the option ‘--with-headers=INSTALL-DIRECTORY/include’. Use
|
||
the most recent kernel you can get your hands on. (If you are
|
||
cross-compiling the GNU C Library, you need to specify
|
||
‘ARCH=ARCHITECTURE’ in the ‘make headers_install’ command, where
|
||
ARCHITECTURE is the architecture name used by the Linux kernel, such as
|
||
‘x86’ or ‘powerpc’.)
|
||
|
||
After installing the GNU C Library, you may need to remove or rename
|
||
directories such as ‘/usr/include/linux’ and ‘/usr/include/asm’, and
|
||
replace them with copies of directories such as ‘linux’ and ‘asm’ from
|
||
‘INSTALL-DIRECTORY/include’. All directories present in
|
||
‘INSTALL-DIRECTORY/include’ should be copied, except that the GNU C
|
||
Library provides its own version of ‘/usr/include/scsi’; the files
|
||
provided by the kernel should be copied without replacing those provided
|
||
by the GNU C Library. The ‘linux’, ‘asm’ and ‘asm-generic’ directories
|
||
are required to compile programs using the GNU C Library; the other
|
||
directories describe interfaces to the kernel but are not required if
|
||
not compiling programs using those interfaces. You do not need to copy
|
||
kernel headers if you did not specify an alternate kernel header source
|
||
using ‘--with-headers’.
|
||
|
||
The Filesystem Hierarchy Standard for GNU/Linux systems expects some
|
||
components of the GNU C Library installation to be in ‘/lib’ and some in
|
||
‘/usr/lib’. This is handled automatically if you configure the GNU C
|
||
Library with ‘--prefix=/usr’. If you set some other prefix or allow it
|
||
to default to ‘/usr/local’, then all the components are installed there.
|
||
|
||
|
||
File: libc.info, Node: Reporting Bugs, Prev: Linux, Up: Installation
|
||
|
||
C.5 Reporting Bugs
|
||
==================
|
||
|
||
There are probably bugs in the GNU C Library. There are certainly
|
||
errors and omissions in this manual. If you report them, they will get
|
||
fixed. If you don’t, no one will ever know about them and they will
|
||
remain unfixed for all eternity, if not longer.
|
||
|
||
It is a good idea to verify that the problem has not already been
|
||
reported. Bugs are documented in two places: The file ‘BUGS’ describes
|
||
a number of well known bugs and the central GNU C Library bug tracking
|
||
system has a WWW interface at <https://sourceware.org/bugzilla/>. The
|
||
WWW interface gives you access to open and closed reports. A closed
|
||
report normally includes a patch or a hint on solving the problem.
|
||
|
||
To report a bug, first you must find it. With any luck, this will be
|
||
the hard part. Once you’ve found a bug, make sure it’s really a bug. A
|
||
good way to do this is to see if the GNU C Library behaves the same way
|
||
some other C library does. If so, probably you are wrong and the
|
||
libraries are right (but not necessarily). If not, one of the libraries
|
||
is probably wrong. It might not be the GNU C Library. Many historical
|
||
Unix C libraries permit things that we don’t, such as closing a file
|
||
twice.
|
||
|
||
If you think you have found some way in which the GNU C Library does
|
||
not conform to the ISO and POSIX standards (*note Standards and
|
||
Portability::), that is definitely a bug. Report it!
|
||
|
||
Once you’re sure you’ve found a bug, try to narrow it down to the
|
||
smallest test case that reproduces the problem. In the case of a C
|
||
library, you really only need to narrow it down to one library function
|
||
call, if possible. This should not be too difficult.
|
||
|
||
The final step when you have a simple test case is to report the bug.
|
||
Do this at <https://bugs.linaro.org/>.
|
||
|
||
If you are not sure how a function should behave, and this manual
|
||
doesn’t tell you, that’s a bug in the manual. Report that too! If the
|
||
function’s behavior disagrees with the manual, then either the library
|
||
or the manual has a bug, so report the disagreement. If you find any
|
||
errors or omissions in this manual, please report them to the bug
|
||
database. If you refer to specific sections of the manual, please
|
||
include the section names for easier identification.
|
||
|
||
|
||
File: libc.info, Node: Maintenance, Next: Platform, Prev: Installation, Up: Top
|
||
|
||
Appendix D Library Maintenance
|
||
******************************
|
||
|
||
* Menu:
|
||
|
||
* Source Layout:: How to add new functions or header files
|
||
to the GNU C Library.
|
||
* Symbol handling:: How to handle symbols in the GNU C Library.
|
||
* Porting:: How to port the GNU C Library to
|
||
a new machine or operating system.
|
||
|
||
|
||
File: libc.info, Node: Source Layout, Next: Symbol handling, Up: Maintenance
|
||
|
||
D.1 Adding New Functions
|
||
========================
|
||
|
||
The process of building the library is driven by the makefiles, which
|
||
make heavy use of special features of GNU ‘make’. The makefiles are
|
||
very complex, and you probably don’t want to try to understand them.
|
||
But what they do is fairly straightforward, and only requires that you
|
||
define a few variables in the right places.
|
||
|
||
The library sources are divided into subdirectories, grouped by
|
||
topic.
|
||
|
||
The ‘string’ subdirectory has all the string-manipulation functions,
|
||
‘math’ has all the mathematical functions, etc.
|
||
|
||
Each subdirectory contains a simple makefile, called ‘Makefile’,
|
||
which defines a few ‘make’ variables and then includes the global
|
||
makefile ‘Rules’ with a line like:
|
||
|
||
include ../Rules
|
||
|
||
The basic variables that a subdirectory makefile defines are:
|
||
|
||
‘subdir’
|
||
The name of the subdirectory, for example ‘stdio’. This variable
|
||
*must* be defined.
|
||
|
||
‘headers’
|
||
The names of the header files in this section of the library, such
|
||
as ‘stdio.h’.
|
||
|
||
‘routines’
|
||
‘aux’
|
||
The names of the modules (source files) in this section of the
|
||
library. These should be simple names, such as ‘strlen’ (rather
|
||
than complete file names, such as ‘strlen.c’). Use ‘routines’ for
|
||
modules that define functions in the library, and ‘aux’ for
|
||
auxiliary modules containing things like data definitions. But the
|
||
values of ‘routines’ and ‘aux’ are just concatenated, so there
|
||
really is no practical difference.
|
||
|
||
‘tests’
|
||
The names of test programs for this section of the library. These
|
||
should be simple names, such as ‘tester’ (rather than complete file
|
||
names, such as ‘tester.c’). ‘make tests’ will build and run all
|
||
the test programs. If a test program needs input, put the test
|
||
data in a file called ‘TEST-PROGRAM.input’; it will be given to the
|
||
test program on its standard input. If a test program wants to be
|
||
run with arguments, put the arguments (all on a single line) in a
|
||
file called ‘TEST-PROGRAM.args’. Test programs should exit with
|
||
zero status when the test passes, and nonzero status when the test
|
||
indicates a bug in the library or error in building.
|
||
|
||
‘others’
|
||
The names of “other” programs associated with this section of the
|
||
library. These are programs which are not tests per se, but are
|
||
other small programs included with the library. They are built by
|
||
‘make others’.
|
||
|
||
‘install-lib’
|
||
‘install-data’
|
||
‘install’
|
||
Files to be installed by ‘make install’. Files listed in
|
||
‘install-lib’ are installed in the directory specified by ‘libdir’
|
||
in ‘configparms’ or ‘Makeconfig’ (*note Installation::). Files
|
||
listed in ‘install-data’ are installed in the directory specified
|
||
by ‘datadir’ in ‘configparms’ or ‘Makeconfig’. Files listed in
|
||
‘install’ are installed in the directory specified by ‘bindir’ in
|
||
‘configparms’ or ‘Makeconfig’.
|
||
|
||
‘distribute’
|
||
Other files from this subdirectory which should be put into a
|
||
distribution tar file. You need not list here the makefile itself
|
||
or the source and header files listed in the other standard
|
||
variables. Only define ‘distribute’ if there are files used in an
|
||
unusual way that should go into the distribution.
|
||
|
||
‘generated’
|
||
Files which are generated by ‘Makefile’ in this subdirectory.
|
||
These files will be removed by ‘make clean’, and they will never go
|
||
into a distribution.
|
||
|
||
‘extra-objs’
|
||
Extra object files which are built by ‘Makefile’ in this
|
||
subdirectory. This should be a list of file names like ‘foo.o’;
|
||
the files will actually be found in whatever directory object files
|
||
are being built in. These files will be removed by ‘make clean’.
|
||
This variable is used for secondary object files needed to build
|
||
‘others’ or ‘tests’.
|
||
|
||
* Menu:
|
||
|
||
* Platform: Adding Platform-specific. Adding platform-specific
|
||
features.
|
||
|
||
|
||
File: libc.info, Node: Adding Platform-specific, Up: Source Layout
|
||
|
||
D.1.1 Platform-specific types, macros and functions
|
||
---------------------------------------------------
|
||
|
||
It’s sometimes necessary to provide nonstandard, platform-specific
|
||
features to developers. The C library is traditionally the lowest
|
||
library layer, so it makes sense for it to provide these low-level
|
||
features. However, including these features in the C library may be a
|
||
disadvantage if another package provides them as well as there will be
|
||
two conflicting versions of them. Also, the features won’t be available
|
||
to projects that do not use the GNU C Library but use other GNU tools,
|
||
like GCC.
|
||
|
||
The current guidelines are:
|
||
• If the header file provides features that only make sense on a
|
||
particular machine architecture and have nothing to do with an
|
||
operating system, then the features should ultimately be provided
|
||
as GCC built-in functions. Until then, the GNU C Library may
|
||
provide them in the header file. When the GCC built-in functions
|
||
become available, those provided in the header file should be made
|
||
conditionally available prior to the GCC version in which the
|
||
built-in function was made available.
|
||
|
||
• If the header file provides features that are specific to an
|
||
operating system, both GCC and the GNU C Library could provide it,
|
||
but the GNU C Library is preferred as it already has a lot of
|
||
information about the operating system.
|
||
|
||
• If the header file provides features that are specific to an
|
||
operating system but used by the GNU C Library, then the GNU C
|
||
Library should provide them.
|
||
|
||
The general solution for providing low-level features is to export
|
||
them as follows:
|
||
|
||
• A nonstandard, low-level header file that defines macros and inline
|
||
functions should be called ‘sys/platform/NAME.h’.
|
||
|
||
• Each header file’s name should include the platform name, to avoid
|
||
users thinking there is anything in common between the different
|
||
header files for different platforms. For example, a
|
||
‘sys/platform/ARCH.h’ name such as ‘sys/platform/ppc.h’ is better
|
||
than ‘sys/platform.h’.
|
||
|
||
• A platform-specific header file provided by the GNU C Library
|
||
should coordinate with GCC such that compiler built-in versions of
|
||
the functions and macros are preferred if available. This means
|
||
that user programs will only ever need to include
|
||
‘sys/platform/ARCH.h’, keeping the same names of types, macros, and
|
||
functions for convenience and portability.
|
||
|
||
• Each included symbol must have the prefix ‘__ARCH_’, such as
|
||
‘__ppc_get_timebase’.
|
||
|
||
The easiest way to provide a header file is to add it to the
|
||
‘sysdep_headers’ variable. For example, the combination of
|
||
Linux-specific header files on PowerPC could be provided like this:
|
||
|
||
sysdep_headers += sys/platform/ppc.h
|
||
|
||
Then ensure that you have added a ‘sys/platform/ppc.h’ header file in
|
||
the machine-specific directory, e.g.,
|
||
‘sysdeps/powerpc/sys/platform/ppc.h’.
|
||
|
||
|
||
File: libc.info, Node: Symbol handling, Next: Porting, Prev: Source Layout, Up: Maintenance
|
||
|
||
D.2 Symbol handling in the GNU C Library
|
||
========================================
|
||
|
||
* Menu:
|
||
|
||
* 64-bit time symbol handling :: How to handle 64-bit time related
|
||
symbols in the GNU C Library.
|
||
|
||
|
||
File: libc.info, Node: 64-bit time symbol handling, Up: Symbol handling
|
||
|
||
D.2.1 64-bit time symbol handling in the GNU C Library
|
||
------------------------------------------------------
|
||
|
||
With respect to time handling, GNU C Library configurations fall in two
|
||
classes depending on the value of ‘__TIMESIZE’:
|
||
|
||
‘__TIMESIZE == 32’
|
||
|
||
These "dual-time" configurations have both 32-bit and 64-bit time
|
||
support. 32-bit time support provides type ‘time_t’ and cannot
|
||
handle dates beyond "Y2038". 64-bit time support provides type
|
||
‘__time64_t’ and can handle dates beyond "Y2038".
|
||
|
||
In these configurations, time-related types have two declarations,
|
||
a 64-bit one, and a 32-bit one; and time-related functions
|
||
generally have two definitions: a 64-bit one, and a 32-bit one
|
||
which is a wrapper around the former. Therefore, for every
|
||
‘time_t’-related symbol, there is a corresponding
|
||
‘__time64_t’-related symbol, the name of which is usually the
|
||
32-bit symbol’s name with ‘__’ (a double underscore) prepended and
|
||
‘64’ appended. For instance, the 64-bit-time counterpart of
|
||
‘clock_gettime’ is ‘__clock_gettime64’.
|
||
|
||
‘__TIMESIZE == 64’
|
||
|
||
These "single-time" configurations only have a 64-bit ‘time_t’ and
|
||
related functions, which can handle dates beyond 2038-01-19
|
||
03:14:07 (aka "Y2038").
|
||
|
||
In these configurations, time-related types only have a 64-bit
|
||
declaration; and time-related functions only have one 64-bit
|
||
definition. However, for every ‘time_t’-related symbol, there is a
|
||
corresponding ‘__time64_t’-related macro, the name of which is
|
||
derived as in the dual-time configuration case, and which expands
|
||
to the symbol’s name. For instance, the macro ‘__clock_gettime64’
|
||
expands to ‘clock_gettime’.
|
||
|
||
These macros are purely internal to the GNU C Library and exist
|
||
only so that a single definition of the 64-bit time functions can
|
||
be used on both single-time and dual-time configurations, and so
|
||
that glibc code can freely call the 64-bit functions internally in
|
||
all configurations.
|
||
|
||
Note: at this point, 64-bit time support in dual-time configurations
|
||
is work-in-progress, so for these configurations, the public API only
|
||
makes the 32-bit time support available. In a later change, the public
|
||
API will allow user code to choose the time size for a given compilation
|
||
unit.
|
||
|
||
64-bit variants of time-related types or functions are defined for
|
||
all configurations and use 64-bit-time symbol names (for dual-time
|
||
configurations) or macros (for single-time configurations).
|
||
|
||
32-bit variants of time-related types or functions are defined only
|
||
for dual-time configurations.
|
||
|
||
Here is an example with ‘localtime’:
|
||
|
||
Function ‘localtime’ is declared in ‘time/time.h’ as
|
||
extern struct tm *localtime (const time_t *__timer) __THROW;
|
||
libc_hidden_proto (localtime)
|
||
|
||
For single-time configurations, ‘__localtime64’ is a macro which
|
||
evaluates to ‘localtime’; for dual-time configurations, ‘__localtime64’
|
||
is a function similar to ‘localtime’ except it uses Y2038-proof types:
|
||
#if __TIMESIZE == 64
|
||
# define __localtime64 localtime
|
||
#else
|
||
extern struct tm *__localtime64 (const __time64_t *__timer) __THROW;
|
||
libc_hidden_proto (__localtime64)
|
||
#endif
|
||
|
||
(note: type ‘time_t’ is replaced with ‘__time64_t’ because ‘time_t’
|
||
is not Y2038-proof, but ‘struct tm’ is not replaced because it is
|
||
already Y2038-proof.)
|
||
|
||
The 64-bit-time implementation of ‘localtime’ is written as follows
|
||
and is compiled for both dual-time and single-time configuration
|
||
classes.
|
||
|
||
struct tm *
|
||
__localtime64 (const __time64_t *t)
|
||
{
|
||
return __tz_convert (*t, 1, &_tmbuf);
|
||
}
|
||
libc_hidden_def (__localtime64)
|
||
|
||
The 32-bit-time implementation is a wrapper and is only compiled for
|
||
dual-time configurations:
|
||
|
||
#if __TIMESIZE != 64
|
||
|
||
struct tm *
|
||
localtime (const time_t *t)
|
||
{
|
||
__time64_t t64 = *t;
|
||
return __localtime64 (&t64);
|
||
}
|
||
libc_hidden_def (localtime)
|
||
|
||
#endif
|
||
|
||
|
||
File: libc.info, Node: Porting, Prev: Symbol handling, Up: Maintenance
|
||
|
||
D.3 Porting the GNU C Library
|
||
=============================
|
||
|
||
The GNU C Library is written to be easily portable to a variety of
|
||
machines and operating systems. Machine- and operating system-dependent
|
||
functions are well separated to make it easy to add implementations for
|
||
new machines or operating systems. This section describes the layout of
|
||
the library source tree and explains the mechanisms used to select
|
||
machine-dependent code to use.
|
||
|
||
All the machine-dependent and operating system-dependent files in the
|
||
library are in the subdirectory ‘sysdeps’ under the top-level library
|
||
source directory. This directory contains a hierarchy of subdirectories
|
||
(*note Hierarchy Conventions::).
|
||
|
||
Each subdirectory of ‘sysdeps’ contains source files for a particular
|
||
machine or operating system, or for a class of machine or operating
|
||
system (for example, systems by a particular vendor, or all machines
|
||
that use IEEE 754 floating-point format). A configuration specifies an
|
||
ordered list of these subdirectories. Each subdirectory implicitly
|
||
appends its parent directory to the list. For example, specifying the
|
||
list ‘unix/bsd/vax’ is equivalent to specifying the list ‘unix/bsd/vax
|
||
unix/bsd unix’. A subdirectory can also specify that it implies other
|
||
subdirectories which are not directly above it in the directory
|
||
hierarchy. If the file ‘Implies’ exists in a subdirectory, it lists
|
||
other subdirectories of ‘sysdeps’ which are appended to the list,
|
||
appearing after the subdirectory containing the ‘Implies’ file. Lines
|
||
in an ‘Implies’ file that begin with a ‘#’ character are ignored as
|
||
comments. For example, ‘unix/bsd/Implies’ contains:
|
||
# BSD has Internet-related things.
|
||
unix/inet
|
||
and ‘unix/Implies’ contains:
|
||
posix
|
||
|
||
So the final list is ‘unix/bsd/vax unix/bsd unix/inet unix posix’.
|
||
|
||
‘sysdeps’ has a “special” subdirectory called ‘generic’. It is
|
||
always implicitly appended to the list of subdirectories, so you needn’t
|
||
put it in an ‘Implies’ file, and you should not create any
|
||
subdirectories under it intended to be new specific categories.
|
||
‘generic’ serves two purposes. First, the makefiles do not bother to
|
||
look for a system-dependent version of a file that’s not in ‘generic’.
|
||
This means that any system-dependent source file must have an analogue
|
||
in ‘generic’, even if the routines defined by that file are not
|
||
implemented on other platforms. Second, the ‘generic’ version of a
|
||
system-dependent file is used if the makefiles do not find a version
|
||
specific to the system you’re compiling for.
|
||
|
||
If it is possible to implement the routines in a ‘generic’ file in
|
||
machine-independent C, using only other machine-independent functions in
|
||
the C library, then you should do so. Otherwise, make them stubs. A
|
||
"stub" function is a function which cannot be implemented on a
|
||
particular machine or operating system. Stub functions always return an
|
||
error, and set ‘errno’ to ‘ENOSYS’ (Function not implemented). *Note
|
||
Error Reporting::. If you define a stub function, you must place the
|
||
statement ‘stub_warning(FUNCTION)’, where FUNCTION is the name of your
|
||
function, after its definition. This causes the function to be listed
|
||
in the installed ‘<gnu/stubs.h>’, and makes GNU ld warn when the
|
||
function is used.
|
||
|
||
Some rare functions are only useful on specific systems and aren’t
|
||
defined at all on others; these do not appear anywhere in the
|
||
system-independent source code or makefiles (including the ‘generic’
|
||
directory), only in the system-dependent ‘Makefile’ in the specific
|
||
system’s subdirectory.
|
||
|
||
If you come across a file that is in one of the main source
|
||
directories (‘string’, ‘stdio’, etc.), and you want to write a machine-
|
||
or operating system-dependent version of it, move the file into
|
||
‘sysdeps/generic’ and write your new implementation in the appropriate
|
||
system-specific subdirectory. Note that if a file is to be
|
||
system-dependent, it *must not* appear in one of the main source
|
||
directories.
|
||
|
||
There are a few special files that may exist in each subdirectory of
|
||
‘sysdeps’:
|
||
|
||
‘Makefile’
|
||
|
||
A makefile for this machine or operating system, or class of
|
||
machine or operating system. This file is included by the library
|
||
makefile ‘Makerules’, which is used by the top-level makefile and
|
||
the subdirectory makefiles. It can change the variables set in the
|
||
including makefile or add new rules. It can use GNU ‘make’
|
||
conditional directives based on the variable ‘subdir’ (see above)
|
||
to select different sets of variables and rules for different
|
||
sections of the library. It can also set the ‘make’ variable
|
||
‘sysdep-routines’, to specify extra modules to be included in the
|
||
library. You should use ‘sysdep-routines’ rather than adding
|
||
modules to ‘routines’ because the latter is used in determining
|
||
what to distribute for each subdirectory of the main source tree.
|
||
|
||
Each makefile in a subdirectory in the ordered list of
|
||
subdirectories to be searched is included in order. Since several
|
||
system-dependent makefiles may be included, each should append to
|
||
‘sysdep-routines’ rather than simply setting it:
|
||
|
||
sysdep-routines := $(sysdep-routines) foo bar
|
||
|
||
‘Subdirs’
|
||
|
||
This file contains the names of new whole subdirectories under the
|
||
top-level library source tree that should be included for this
|
||
system. These subdirectories are treated just like the
|
||
system-independent subdirectories in the library source tree, such
|
||
as ‘stdio’ and ‘math’.
|
||
|
||
Use this when there are completely new sets of functions and header
|
||
files that should go into the library for the system this
|
||
subdirectory of ‘sysdeps’ implements. For example,
|
||
‘sysdeps/unix/inet/Subdirs’ contains ‘inet’; the ‘inet’ directory
|
||
contains various network-oriented operations which only make sense
|
||
to put in the library on systems that support the Internet.
|
||
|
||
‘configure’
|
||
|
||
This file is a shell script fragment to be run at configuration
|
||
time. The top-level ‘configure’ script uses the shell ‘.’ command
|
||
to read the ‘configure’ file in each system-dependent directory
|
||
chosen, in order. The ‘configure’ files are often generated from
|
||
‘configure.ac’ files using Autoconf.
|
||
|
||
A system-dependent ‘configure’ script will usually add things to
|
||
the shell variables ‘DEFS’ and ‘config_vars’; see the top-level
|
||
‘configure’ script for details. The script can check for ‘--with-PACKAGE’
|
||
options that were passed to the top-level ‘configure’. For an
|
||
option ‘--with-PACKAGE=VALUE’ ‘configure’ sets the shell variable ‘with_PACKAGE’
|
||
(with any dashes in PACKAGE converted to underscores) to VALUE; if
|
||
the option is just ‘--with-PACKAGE’ (no argument), then it sets ‘with_PACKAGE’
|
||
to ‘yes’.
|
||
|
||
‘configure.ac’
|
||
|
||
This file is an Autoconf input fragment to be processed into the
|
||
file ‘configure’ in this subdirectory. *Note
|
||
(autoconf.info)Introduction::, for a description of Autoconf. You
|
||
should write either ‘configure’ or ‘configure.ac’, but not both.
|
||
The first line of ‘configure.ac’ should invoke the ‘m4’ macro
|
||
‘GLIBC_PROVIDES’. This macro does several ‘AC_PROVIDE’ calls for
|
||
Autoconf macros which are used by the top-level ‘configure’ script;
|
||
without this, those macros might be invoked again unnecessarily by
|
||
Autoconf.
|
||
|
||
That is the general system for how system-dependencies are isolated.
|
||
|
||
* Menu:
|
||
|
||
* Hierarchy Conventions:: The layout of the ‘sysdeps’ hierarchy.
|
||
* Porting to Unix:: Porting the library to an average
|
||
Unix-like system.
|
||
|
||
|
||
File: libc.info, Node: Hierarchy Conventions, Next: Porting to Unix, Up: Porting
|
||
|
||
D.3.1 Layout of the ‘sysdeps’ Directory Hierarchy
|
||
-------------------------------------------------
|
||
|
||
A GNU configuration name has three parts: the CPU type, the
|
||
manufacturer’s name, and the operating system. ‘configure’ uses these
|
||
to pick the list of system-dependent directories to look for. If the
|
||
‘--nfp’ option is _not_ passed to ‘configure’, the directory
|
||
‘MACHINE/fpu’ is also used. The operating system often has a "base
|
||
operating system"; for example, if the operating system is ‘Linux’, the
|
||
base operating system is ‘unix/sysv’. The algorithm used to pick the
|
||
list of directories is simple: ‘configure’ makes a list of the base
|
||
operating system, manufacturer, CPU type, and operating system, in that
|
||
order. It then concatenates all these together with slashes in between,
|
||
to produce a directory name; for example, the configuration ‘i686-linux-gnu’
|
||
results in ‘unix/sysv/linux/i386/i686’. ‘configure’ then tries removing
|
||
each element of the list in turn, so ‘unix/sysv/linux’ and ‘unix/sysv’
|
||
are also tried, among others. Since the precise version number of the
|
||
operating system is often not important, and it would be very
|
||
inconvenient, for example, to have identical ‘irix6.2’ and ‘irix6.3’
|
||
directories, ‘configure’ tries successively less specific operating
|
||
system names by removing trailing suffixes starting with a period.
|
||
|
||
As an example, here is the complete list of directories that would be
|
||
tried for the configuration ‘i686-linux-gnu’:
|
||
|
||
sysdeps/i386/elf
|
||
sysdeps/unix/sysv/linux/i386
|
||
sysdeps/unix/sysv/linux
|
||
sysdeps/gnu
|
||
sysdeps/unix/common
|
||
sysdeps/unix/mman
|
||
sysdeps/unix/inet
|
||
sysdeps/unix/sysv/i386/i686
|
||
sysdeps/unix/sysv/i386
|
||
sysdeps/unix/sysv
|
||
sysdeps/unix/i386
|
||
sysdeps/unix
|
||
sysdeps/posix
|
||
sysdeps/i386/i686
|
||
sysdeps/i386/i486
|
||
sysdeps/libm-i387/i686
|
||
sysdeps/i386/fpu
|
||
sysdeps/libm-i387
|
||
sysdeps/i386
|
||
sysdeps/wordsize-32
|
||
sysdeps/ieee754
|
||
sysdeps/libm-ieee754
|
||
sysdeps/generic
|
||
|
||
Different machine architectures are conventionally subdirectories at
|
||
the top level of the ‘sysdeps’ directory tree. For example, ‘sysdeps/sparc’
|
||
and ‘sysdeps/m68k’. These contain files specific to those machine
|
||
architectures, but not specific to any particular operating system.
|
||
There might be subdirectories for specializations of those
|
||
architectures, such as ‘sysdeps/m68k/68020’. Code which is specific to
|
||
the floating-point coprocessor used with a particular machine should go
|
||
in ‘sysdeps/MACHINE/fpu’.
|
||
|
||
There are a few directories at the top level of the ‘sysdeps’
|
||
hierarchy that are not for particular machine architectures.
|
||
|
||
‘generic’
|
||
As described above (*note Porting::), this is the subdirectory that
|
||
every configuration implicitly uses after all others.
|
||
|
||
‘ieee754’
|
||
This directory is for code using the IEEE 754 floating-point
|
||
format, where the C type ‘float’ is IEEE 754 single-precision
|
||
format, and ‘double’ is IEEE 754 double-precision format. Usually
|
||
this directory is referred to in the ‘Implies’ file in a machine
|
||
architecture-specific directory, such as ‘m68k/Implies’.
|
||
|
||
‘libm-ieee754’
|
||
This directory contains an implementation of a mathematical library
|
||
usable on platforms which use IEEE 754 conformant floating-point
|
||
arithmetic.
|
||
|
||
‘libm-i387’
|
||
This is a special case. Ideally the code should be in
|
||
‘sysdeps/i386/fpu’ but for various reasons it is kept aside.
|
||
|
||
‘posix’
|
||
This directory contains implementations of things in the library in
|
||
terms of POSIX.1 functions. This includes some of the POSIX.1
|
||
functions themselves. Of course, POSIX.1 cannot be completely
|
||
implemented in terms of itself, so a configuration using just
|
||
‘posix’ cannot be complete.
|
||
|
||
‘unix’
|
||
This is the directory for Unix-like things. *Note Porting to
|
||
Unix::. ‘unix’ implies ‘posix’. There are some special-purpose
|
||
subdirectories of ‘unix’:
|
||
|
||
‘unix/common’
|
||
This directory is for things common to both BSD and System V
|
||
release 4. Both ‘unix/bsd’ and ‘unix/sysv/sysv4’ imply
|
||
‘unix/common’.
|
||
|
||
‘unix/inet’
|
||
This directory is for ‘socket’ and related functions on Unix
|
||
systems. ‘unix/inet/Subdirs’ enables the ‘inet’ top-level
|
||
subdirectory. ‘unix/common’ implies ‘unix/inet’.
|
||
|
||
‘mach’
|
||
This is the directory for things based on the Mach microkernel from
|
||
CMU (including GNU/Hurd systems). Other basic operating systems
|
||
(VMS, for example) would have their own directories at the top
|
||
level of the ‘sysdeps’ hierarchy, parallel to ‘unix’ and ‘mach’.
|
||
|
||
|
||
File: libc.info, Node: Porting to Unix, Prev: Hierarchy Conventions, Up: Porting
|
||
|
||
D.3.2 Porting the GNU C Library to Unix Systems
|
||
-----------------------------------------------
|
||
|
||
Most Unix systems are fundamentally very similar. There are variations
|
||
between different machines, and variations in what facilities are
|
||
provided by the kernel. But the interface to the operating system
|
||
facilities is, for the most part, pretty uniform and simple.
|
||
|
||
The code for Unix systems is in the directory ‘unix’, at the top
|
||
level of the ‘sysdeps’ hierarchy. This directory contains
|
||
subdirectories (and subdirectory trees) for various Unix variants.
|
||
|
||
The functions which are system calls in most Unix systems are
|
||
implemented in assembly code, which is generated automatically from
|
||
specifications in files named ‘syscalls.list’. There are several such
|
||
files, one in ‘sysdeps/unix’ and others in its subdirectories. Some
|
||
special system calls are implemented in files that are named with a
|
||
suffix of ‘.S’; for example, ‘_exit.S’. Files ending in ‘.S’ are run
|
||
through the C preprocessor before being fed to the assembler.
|
||
|
||
These files all use a set of macros that should be defined in
|
||
‘sysdep.h’. The ‘sysdep.h’ file in ‘sysdeps/unix’ partially defines
|
||
them; a ‘sysdep.h’ file in another directory must finish defining them
|
||
for the particular machine and operating system variant. See
|
||
‘sysdeps/unix/sysdep.h’ and the machine-specific ‘sysdep.h’
|
||
implementations to see what these macros are and what they should do.
|
||
|
||
The system-specific makefile for the ‘unix’ directory
|
||
(‘sysdeps/unix/Makefile’) gives rules to generate several files from the
|
||
Unix system you are building the library on (which is assumed to be the
|
||
target system you are building the library _for_). All the generated
|
||
files are put in the directory where the object files are kept; they
|
||
should not affect the source tree itself. The files generated are
|
||
‘ioctls.h’, ‘errnos.h’, ‘sys/param.h’, and ‘errlist.c’ (for the ‘stdio’
|
||
section of the library).
|
||
|
||
|
||
File: libc.info, Node: Platform, Next: Contributors, Prev: Maintenance, Up: Top
|
||
|
||
Appendix E Platform-specific facilities
|
||
***************************************
|
||
|
||
The GNU C Library can provide machine-specific functionality.
|
||
|
||
* Menu:
|
||
|
||
* PowerPC:: Facilities Specific to the PowerPC Architecture
|
||
* RISC-V:: Facilities Specific to the RISC-V Architecture
|
||
* X86:: Facilities Specific to the X86 Architecture
|
||
|
||
|
||
File: libc.info, Node: PowerPC, Next: RISC-V, Up: Platform
|
||
|
||
E.1 PowerPC-specific Facilities
|
||
===============================
|
||
|
||
Facilities specific to PowerPC that are not specific to a particular
|
||
operating system are declared in ‘sys/platform/ppc.h’.
|
||
|
||
-- Function: uint64_t __ppc_get_timebase (void)
|
||
Preliminary: | MT-Safe | AS-Safe | AC-Safe | *Note POSIX Safety
|
||
Concepts::.
|
||
|
||
Read the current value of the Time Base Register.
|
||
|
||
The "Time Base Register" is a 64-bit register that stores a
|
||
monotonically incremented value updated at a system-dependent
|
||
frequency that may be different from the processor frequency. More
|
||
information is available in ‘Power ISA 2.06b - Book II - Section
|
||
5.2’.
|
||
|
||
‘__ppc_get_timebase’ uses the processor’s time base facility
|
||
directly without requiring assistance from the operating system, so
|
||
it is very efficient.
|
||
|
||
-- Function: uint64_t __ppc_get_timebase_freq (void)
|
||
Preliminary: | MT-Unsafe init | AS-Unsafe corrupt:init | AC-Unsafe
|
||
corrupt:init | *Note POSIX Safety Concepts::.
|
||
|
||
Read the current frequency at which the Time Base Register is
|
||
updated.
|
||
|
||
This frequency is not related to the processor clock or the bus
|
||
clock. It is also possible that this frequency is not constant.
|
||
More information is available in ‘Power ISA 2.06b - Book II -
|
||
Section 5.2’.
|
||
|
||
The following functions provide hints about the usage of resources
|
||
that are shared with other processors. They can be used, for example,
|
||
if a program waiting on a lock intends to divert the shared resources to
|
||
be used by other processors. More information is available in ‘Power
|
||
ISA 2.06b - Book II - Section 3.2’.
|
||
|
||
-- Function: void __ppc_yield (void)
|
||
Preliminary: | MT-Safe | AS-Safe | AC-Safe | *Note POSIX Safety
|
||
Concepts::.
|
||
|
||
Provide a hint that performance will probably be improved if shared
|
||
resources dedicated to the executing processor are released for use
|
||
by other processors.
|
||
|
||
-- Function: void __ppc_mdoio (void)
|
||
Preliminary: | MT-Safe | AS-Safe | AC-Safe | *Note POSIX Safety
|
||
Concepts::.
|
||
|
||
Provide a hint that performance will probably be improved if shared
|
||
resources dedicated to the executing processor are released until
|
||
all outstanding storage accesses to caching-inhibited storage have
|
||
been completed.
|
||
|
||
-- Function: void __ppc_mdoom (void)
|
||
Preliminary: | MT-Safe | AS-Safe | AC-Safe | *Note POSIX Safety
|
||
Concepts::.
|
||
|
||
Provide a hint that performance will probably be improved if shared
|
||
resources dedicated to the executing processor are released until
|
||
all outstanding storage accesses to cacheable storage for which the
|
||
data is not in the cache have been completed.
|
||
|
||
-- Function: void __ppc_set_ppr_med (void)
|
||
Preliminary: | MT-Safe | AS-Safe | AC-Safe | *Note POSIX Safety
|
||
Concepts::.
|
||
|
||
Set the Program Priority Register to medium value (default).
|
||
|
||
The "Program Priority Register" (PPR) is a 64-bit register that
|
||
controls the program’s priority. By adjusting the PPR value the
|
||
programmer may improve system throughput by causing the system
|
||
resources to be used more efficiently, especially in contention
|
||
situations. The three unprivileged states available are covered by
|
||
the functions ‘__ppc_set_ppr_med’ (medium – default),
|
||
‘__ppc_set_ppc_low’ (low) and ‘__ppc_set_ppc_med_low’ (medium low).
|
||
More information available in ‘Power ISA 2.06b - Book II - Section
|
||
3.1’.
|
||
|
||
-- Function: void __ppc_set_ppr_low (void)
|
||
Preliminary: | MT-Safe | AS-Safe | AC-Safe | *Note POSIX Safety
|
||
Concepts::.
|
||
|
||
Set the Program Priority Register to low value.
|
||
|
||
-- Function: void __ppc_set_ppr_med_low (void)
|
||
Preliminary: | MT-Safe | AS-Safe | AC-Safe | *Note POSIX Safety
|
||
Concepts::.
|
||
|
||
Set the Program Priority Register to medium low value.
|
||
|
||
Power ISA 2.07 extends the priorities that can be set to the Program
|
||
Priority Register (PPR). The following functions implement the new
|
||
priority levels: very low and medium high.
|
||
|
||
-- Function: void __ppc_set_ppr_very_low (void)
|
||
Preliminary: | MT-Safe | AS-Safe | AC-Safe | *Note POSIX Safety
|
||
Concepts::.
|
||
|
||
Set the Program Priority Register to very low value.
|
||
|
||
-- Function: void __ppc_set_ppr_med_high (void)
|
||
Preliminary: | MT-Safe | AS-Safe | AC-Safe | *Note POSIX Safety
|
||
Concepts::.
|
||
|
||
Set the Program Priority Register to medium high value. The medium
|
||
high priority is privileged and may only be set during certain time
|
||
intervals by problem-state programs. If the program priority is
|
||
medium high when the time interval expires or if an attempt is made
|
||
to set the priority to medium high when it is not allowed, the
|
||
priority is set to medium.
|
||
|
||
|
||
File: libc.info, Node: RISC-V, Next: X86, Prev: PowerPC, Up: Platform
|
||
|
||
E.2 RISC-V-specific Facilities
|
||
==============================
|
||
|
||
Cache management facilities specific to RISC-V systems that implement
|
||
the Linux ABI are declared in ‘sys/cachectl.h’.
|
||
|
||
-- Function: void __riscv_flush_icache (void *START, void *END,
|
||
unsigned long int FLAGS)
|
||
Preliminary: | MT-Safe | AS-Safe | AC-Safe | *Note POSIX Safety
|
||
Concepts::.
|
||
|
||
Enforce ordering between stores and instruction cache fetches. The
|
||
range of addresses over which ordering is enforced is specified by
|
||
START and END. The FLAGS argument controls the extent of this
|
||
ordering, with the default behavior (a FLAGS value of 0) being to
|
||
enforce the fence on all threads in the current process. Setting
|
||
the ‘SYS_RISCV_FLUSH_ICACHE_LOCAL’ bit allows users to indicate
|
||
that enforcing ordering on only the current thread is necessary.
|
||
All other flag bits are reserved.
|
||
|
||
|
||
File: libc.info, Node: X86, Prev: RISC-V, Up: Platform
|
||
|
||
E.3 X86-specific Facilities
|
||
===========================
|
||
|
||
Facilities specific to X86 that are not specific to a particular
|
||
operating system are declared in ‘sys/platform/x86.h’.
|
||
|
||
-- Function: const struct cpuid_feature * __x86_get_cpuid_feature_leaf
|
||
(unsigned int LEAF)
|
||
Preliminary: | MT-Safe | AS-Safe | AC-Safe | *Note POSIX Safety
|
||
Concepts::.
|
||
|
||
Return a pointer to x86 CPU feature structure used by query macros
|
||
for x86 CPU feature LEAF.
|
||
|
||
-- Macro: int HAS_CPU_FEATURE (NAME)
|
||
This macro returns a nonzero value (true) if the processor has the
|
||
feature NAME.
|
||
|
||
-- Macro: int CPU_FEATURE_USABLE (NAME)
|
||
This macro returns a nonzero value (true) if the processor has the
|
||
feature NAME and the feature is supported by the operating system.
|
||
|
||
The supported processor features are:
|
||
|
||
• ‘ACPI’ – Thermal Monitor and Software Controlled Clock Facilities.
|
||
|
||
• ‘ADX’ – ADX instruction extensions.
|
||
|
||
• ‘APIC’ – APIC On-Chip.
|
||
|
||
• ‘AES’ – The AES instruction extensions.
|
||
|
||
• ‘AESKLE’ – AES Key Locker instructions are enabled by OS.
|
||
|
||
• ‘AMX_BF16’ – Tile computational operations on bfloat16 numbers.
|
||
|
||
• ‘AMX_INT8’ – Tile computational operations on 8-bit numbers.
|
||
|
||
• ‘AMX_TILE’ – Tile architecture.
|
||
|
||
• ‘ARCH_CAPABILITIES’ – IA32_ARCH_CAPABILITIES MSR.
|
||
|
||
• ‘AVX’ – The AVX instruction extensions.
|
||
|
||
• ‘AVX2’ – The AVX2 instruction extensions.
|
||
|
||
• ‘AVX_VNNI’ – The AVX-VNNI instruction extensions.
|
||
|
||
• ‘AVX512_4FMAPS’ – The AVX512_4FMAPS instruction extensions.
|
||
|
||
• ‘AVX512_4VNNIW’ – The AVX512_4VNNIW instruction extensions.
|
||
|
||
• ‘AVX512_BF16’ – The AVX512_BF16 instruction extensions.
|
||
|
||
• ‘AVX512_BITALG’ – The AVX512_BITALG instruction extensions.
|
||
|
||
• ‘AVX512_FP16’ – The AVX512_FP16 instruction extensions.
|
||
|
||
• ‘AVX512_IFMA’ – The AVX512_IFMA instruction extensions.
|
||
|
||
• ‘AVX512_VBMI’ – The AVX512_VBMI instruction extensions.
|
||
|
||
• ‘AVX512_VBMI2’ – The AVX512_VBMI2 instruction extensions.
|
||
|
||
• ‘AVX512_VNNI’ – The AVX512_VNNI instruction extensions.
|
||
|
||
• ‘AVX512_VP2INTERSECT’ – The AVX512_VP2INTERSECT instruction
|
||
extensions.
|
||
|
||
• ‘AVX512_VPOPCNTDQ’ – The AVX512_VPOPCNTDQ instruction extensions.
|
||
|
||
• ‘AVX512BW’ – The AVX512BW instruction extensions.
|
||
|
||
• ‘AVX512CD’ – The AVX512CD instruction extensions.
|
||
|
||
• ‘AVX512ER’ – The AVX512ER instruction extensions.
|
||
|
||
• ‘AVX512DQ’ – The AVX512DQ instruction extensions.
|
||
|
||
• ‘AVX512F’ – The AVX512F instruction extensions.
|
||
|
||
• ‘AVX512PF’ – The AVX512PF instruction extensions.
|
||
|
||
• ‘AVX512VL’ – The AVX512VL instruction extensions.
|
||
|
||
• ‘BMI1’ – BMI1 instructions.
|
||
|
||
• ‘BMI2’ – BMI2 instructions.
|
||
|
||
• ‘CLDEMOTE’ – CLDEMOTE instruction.
|
||
|
||
• ‘CLFLUSHOPT’ – CLFLUSHOPT instruction.
|
||
|
||
• ‘CLFSH’ – CLFLUSH instruction.
|
||
|
||
• ‘CLWB’ – CLWB instruction.
|
||
|
||
• ‘CMOV’ – Conditional Move instructions.
|
||
|
||
• ‘CMPXCHG16B’ – CMPXCHG16B instruction.
|
||
|
||
• ‘CNXT_ID’ – L1 Context ID.
|
||
|
||
• ‘CORE_CAPABILITIES’ – IA32_CORE_CAPABILITIES MSR.
|
||
|
||
• ‘CX8’ – CMPXCHG8B instruction.
|
||
|
||
• ‘DCA’ – Data prefetch from a memory mapped device.
|
||
|
||
• ‘DE’ – Debugging Extensions.
|
||
|
||
• ‘DEPR_FPU_CS_DS’ – Deprecates FPU CS and FPU DS values.
|
||
|
||
• ‘DS’ – Debug Store.
|
||
|
||
• ‘DS_CPL’ – CPL Qualified Debug Store.
|
||
|
||
• ‘DTES64’ – 64-bit DS Area.
|
||
|
||
• ‘EIST’ – Enhanced Intel SpeedStep technology.
|
||
|
||
• ‘ENQCMD’ – Enqueue Stores instructions.
|
||
|
||
• ‘ERMS’ – Enhanced REP MOVSB/STOSB.
|
||
|
||
• ‘F16C’ – 16-bit floating-point conversion instructions.
|
||
|
||
• ‘FMA’ – FMA extensions using YMM state.
|
||
|
||
• ‘FMA4’ – FMA4 instruction extensions.
|
||
|
||
• ‘FPU’ – X87 Floating Point Unit On-Chip.
|
||
|
||
• ‘FSGSBASE’ – RDFSBASE/RDGSBASE/WRFSBASE/WRGSBASE instructions.
|
||
|
||
• ‘FSRCS’ – Fast Short REP CMP and SCA.
|
||
|
||
• ‘FSRM’ – Fast Short REP MOV.
|
||
|
||
• ‘FSRS’ – Fast Short REP STO.
|
||
|
||
• ‘FXSR’ – FXSAVE and FXRSTOR instructions.
|
||
|
||
• ‘FZLRM’ – Fast Zero-Length REP MOV.
|
||
|
||
• ‘GFNI’ – GFNI instruction extensions.
|
||
|
||
• ‘HLE’ – HLE instruction extensions.
|
||
|
||
• ‘HTT’ – Max APIC IDs reserved field is Valid.
|
||
|
||
• ‘HRESET’ – History reset.
|
||
|
||
• ‘HYBRID’ – Hybrid processor.
|
||
|
||
• ‘IBRS_IBPB’ – Indirect branch restricted speculation (IBRS) and the
|
||
indirect branch predictor barrier (IBPB).
|
||
|
||
• ‘IBT’ – Intel Indirect Branch Tracking instruction extensions.
|
||
|
||
• ‘INVARIANT_TSC’ – Invariant TSC.
|
||
|
||
• ‘INVPCID’ – INVPCID instruction.
|
||
|
||
• ‘KL’ – AES Key Locker instructions.
|
||
|
||
• ‘LAM’ – Linear Address Masking.
|
||
|
||
• ‘L1D_FLUSH’ – IA32_FLUSH_CMD MSR.
|
||
|
||
• ‘LAHF64_SAHF64’ – LAHF/SAHF available in 64-bit mode.
|
||
|
||
• ‘LM’ – Long mode.
|
||
|
||
• ‘LWP’ – Lightweight profiling.
|
||
|
||
• ‘LZCNT’ – LZCNT instruction.
|
||
|
||
• ‘MCA’ – Machine Check Architecture.
|
||
|
||
• ‘MCE’ – Machine Check Exception.
|
||
|
||
• ‘MD_CLEAR’ – MD_CLEAR.
|
||
|
||
• ‘MMX’ – Intel MMX Technology.
|
||
|
||
• ‘MONITOR’ – MONITOR/MWAIT instructions.
|
||
|
||
• ‘MOVBE’ – MOVBE instruction.
|
||
|
||
• ‘MOVDIRI’ – MOVDIRI instruction.
|
||
|
||
• ‘MOVDIR64B’ – MOVDIR64B instruction.
|
||
|
||
• ‘MPX’ – Intel Memory Protection Extensions.
|
||
|
||
• ‘MSR’ – Model Specific Registers RDMSR and WRMSR instructions.
|
||
|
||
• ‘MTRR’ – Memory Type Range Registers.
|
||
|
||
• ‘NX’ – No-execute page protection.
|
||
|
||
• ‘OSPKE’ – OS has set CR4.PKE to enable protection keys.
|
||
|
||
• ‘OSXSAVE’ – The OS has set CR4.OSXSAVE[bit 18] to enable
|
||
XSETBV/XGETBV instructions to access XCR0 and to support processor
|
||
extended state management using XSAVE/XRSTOR.
|
||
|
||
• ‘PAE’ – Physical Address Extension.
|
||
|
||
• ‘PAGE1GB’ – 1-GByte page.
|
||
|
||
• ‘PAT’ – Page Attribute Table.
|
||
|
||
• ‘PBE’ – Pending Break Enable.
|
||
|
||
• ‘PCID’ – Process-context identifiers.
|
||
|
||
• ‘PCLMULQDQ’ – PCLMULQDQ instruction.
|
||
|
||
• ‘PCONFIG’ – PCONFIG instruction.
|
||
|
||
• ‘PDCM’ – Perfmon and Debug Capability.
|
||
|
||
• ‘PGE’ – Page Global Bit.
|
||
|
||
• ‘PKS’ – Protection keys for supervisor-mode pages.
|
||
|
||
• ‘PKU’ – Protection keys for user-mode pages.
|
||
|
||
• ‘POPCNT’ – POPCNT instruction.
|
||
|
||
• ‘PREFETCHW’ – PREFETCHW instruction.
|
||
|
||
• ‘PREFETCHWT1’ – PREFETCHWT1 instruction.
|
||
|
||
• ‘PSE’ – Page Size Extension.
|
||
|
||
• ‘PSE_36’ – 36-Bit Page Size Extension.
|
||
|
||
• ‘PSN’ – Processor Serial Number.
|
||
|
||
• ‘RDPID’ – RDPID instruction.
|
||
|
||
• ‘RDRAND’ – RDRAND instruction.
|
||
|
||
• ‘RDSEED’ – RDSEED instruction.
|
||
|
||
• ‘RDT_A’ – Intel Resource Director Technology (Intel RDT) Allocation
|
||
capability.
|
||
|
||
• ‘RDT_M’ – Intel Resource Director Technology (Intel RDT) Monitoring
|
||
capability.
|
||
|
||
• ‘RDTSCP’ – RDTSCP instruction.
|
||
|
||
• ‘RTM’ – RTM instruction extensions.
|
||
|
||
• ‘SDBG’ – IA32_DEBUG_INTERFACE MSR for silicon debug.
|
||
|
||
• ‘SEP’ – SYSENTER and SYSEXIT instructions.
|
||
|
||
• ‘SERIALIZE’ – SERIALIZE instruction.
|
||
|
||
• ‘SGX’ – Intel Software Guard Extensions.
|
||
|
||
• ‘SGX_LC’ – SGX Launch Configuration.
|
||
|
||
• ‘SHA’ – SHA instruction extensions.
|
||
|
||
• ‘SHSTK’ – Intel Shadow Stack instruction extensions.
|
||
|
||
• ‘SMAP’ – Supervisor-Mode Access Prevention.
|
||
|
||
• ‘SMEP’ – Supervisor-Mode Execution Prevention.
|
||
|
||
• ‘SMX’ – Safer Mode Extensions.
|
||
|
||
• ‘SS’ – Self Snoop.
|
||
|
||
• ‘SSBD’ – Speculative Store Bypass Disable (SSBD).
|
||
|
||
• ‘SSE’ – Streaming SIMD Extensions.
|
||
|
||
• ‘SSE2’ – Streaming SIMD Extensions 2.
|
||
|
||
• ‘SSE3’ – Streaming SIMD Extensions 3.
|
||
|
||
• ‘SSE4_1’ – Streaming SIMD Extensions 4.1.
|
||
|
||
• ‘SSE4_2’ – Streaming SIMD Extensions 4.2.
|
||
|
||
• ‘SSE4A’ – SSE4A instruction extensions.
|
||
|
||
• ‘SSSE3’ – Supplemental Streaming SIMD Extensions 3.
|
||
|
||
• ‘STIBP’ – Single thread indirect branch predictors (STIBP).
|
||
|
||
• ‘SVM’ – Secure Virtual Machine.
|
||
|
||
• ‘SYSCALL_SYSRET’ – SYSCALL/SYSRET instructions.
|
||
|
||
• ‘TBM’ – Trailing bit manipulation instructions.
|
||
|
||
• ‘TM’ – Thermal Monitor.
|
||
|
||
• ‘TM2’ – Thermal Monitor 2.
|
||
|
||
• ‘TRACE’ – Intel Processor Trace.
|
||
|
||
• ‘TSC’ – Time Stamp Counter. RDTSC instruction.
|
||
|
||
• ‘TSC_ADJUST’ – IA32_TSC_ADJUST MSR.
|
||
|
||
• ‘TSC_DEADLINE’ – Local APIC timer supports one-shot operation using
|
||
a TSC deadline value.
|
||
|
||
• ‘TSXLDTRK’ – TSXLDTRK instructions.
|
||
|
||
• ‘UINTR’ – User interrupts.
|
||
|
||
• ‘UMIP’ – User-mode instruction prevention.
|
||
|
||
• ‘VAES’ – VAES instruction extensions.
|
||
|
||
• ‘VME’ – Virtual 8086 Mode Enhancements.
|
||
|
||
• ‘VMX’ – Virtual Machine Extensions.
|
||
|
||
• ‘VPCLMULQDQ’ – VPCLMULQDQ instruction.
|
||
|
||
• ‘WAITPKG’ – WAITPKG instruction extensions.
|
||
|
||
• ‘WBNOINVD’ – WBINVD/WBNOINVD instructions.
|
||
|
||
• ‘WIDE_KL’ – AES wide Key Locker instructions.
|
||
|
||
• ‘X2APIC’ – x2APIC.
|
||
|
||
• ‘XFD’ – Extended Feature Disable (XFD).
|
||
|
||
• ‘XGETBV_ECX_1’ – XGETBV with ECX = 1.
|
||
|
||
• ‘XOP’ – XOP instruction extensions.
|
||
|
||
• ‘XSAVE’ – The XSAVE/XRSTOR processor extended states feature, the
|
||
XSETBV/XGETBV instructions, and XCR0.
|
||
|
||
• ‘XSAVEC’ – XSAVEC instruction.
|
||
|
||
• ‘XSAVEOPT’ – XSAVEOPT instruction.
|
||
|
||
• ‘XSAVES’ – XSAVES/XRSTORS instructions.
|
||
|
||
• ‘XTPRUPDCTRL’ – xTPR Update Control.
|
||
|
||
You could query if a processor supports ‘AVX’ with:
|
||
|
||
#include <sys/platform/x86.h>
|
||
|
||
int
|
||
support_avx (void)
|
||
{
|
||
return HAS_CPU_FEATURE (AVX);
|
||
}
|
||
|
||
and if ‘AVX’ is usable with:
|
||
|
||
#include <sys/platform/x86.h>
|
||
|
||
int
|
||
usable_avx (void)
|
||
{
|
||
return CPU_FEATURE_USABLE (AVX);
|
||
}
|
||
|
||
|
||
File: libc.info, Node: Contributors, Next: Free Manuals, Prev: Platform, Up: Top
|
||
|
||
Appendix F Contributors to the GNU C Library
|
||
********************************************
|
||
|
||
The GNU C Library project would like to thank its many contributors.
|
||
Without them the project would not have been nearly as successful as it
|
||
has been. Any omissions in this list are accidental. Feel free to file
|
||
a bug in bugzilla if you have been left out or some of your
|
||
contributions are not listed. Please keep this list in alphabetical
|
||
order.
|
||
|
||
• Nick Alcock for contributing fixes to allow the GNU C Library to be
|
||
built with the stack smashing protector enabled.
|
||
|
||
• John David Anglin for various fixes to the hppa port.
|
||
|
||
• Albert ARIBAUD for Y2038 related fixes.
|
||
|
||
• Ryan S. Arnold for his improvements for Linux on PowerPC and his
|
||
direction as FSF Project Steward for the GNU C Library.
|
||
|
||
• Miles Bader for writing the ‘argp’ argument-parsing package, and
|
||
the ‘argz’/‘envz’ interfaces.
|
||
|
||
• Ralf Bächle for contributing ‘fpu_control.h’, ‘regdef.h’,
|
||
‘sgidefs.h’, ‘sys/asm.h’, and ‘sys/regdef.h’ under the
|
||
‘sysdeps/mips’ directory.
|
||
|
||
• Jeff Bailey for his maintainership of the HPPA architecture.
|
||
|
||
• Petr Baudis for bug fixes and testing.
|
||
|
||
• Anton Blanchard for various fixes.
|
||
|
||
• Stephen R. van den Berg for contributing a highly-optimized
|
||
‘strstr’ function.
|
||
|
||
• Ondřej Bílka for contributing optimized string routines for x64 and
|
||
various fixes.
|
||
|
||
• Eric Blake for adding O(n) implementations of ‘memmem’, ‘strstr’
|
||
and ‘strcasestr’.
|
||
|
||
• Philip Blundell for the ports to Linux/ARM
|
||
(‘arm-ANYTHING-linuxaout’) and ARM standalone
|
||
(‘arm-ANYTHING-none’), as well as for parts of the IPv6 support
|
||
code.
|
||
|
||
• Per Bothner for the implementation of the ‘libio’ library which is
|
||
used to implement ‘stdio’ functions.
|
||
|
||
• Mark Brown for his direction as part of the GNU C Library steering
|
||
committee.
|
||
|
||
• Thomas Bushnell for his contributions to Hurd.
|
||
|
||
• Rogerio Alves Cardoso for various fixes to PowerPC.
|
||
|
||
• Paul Clarke for optimized functions on PowerPC.
|
||
|
||
• Mike Crowe for various fixes.
|
||
|
||
• Palmer Dabbelt for contributing the port to Linux/RISC-V.
|
||
|
||
• DJ Delorie for maintenance of Linux/RISC-V, and various fixes.
|
||
|
||
• Wilco Dijkstra for various fixes.
|
||
|
||
• Liubov Dmitrieva for optimized string and math functions on x86-64
|
||
and x86.
|
||
|
||
• Ulrich Drepper for his many contributions in almost all parts of
|
||
the GNU C Library, including:
|
||
• writing most of the POSIX Threads Library originally.
|
||
• internationalization support, including the ‘locale’ and
|
||
‘localedef’ utilities.
|
||
• Linux i386/ELF support
|
||
• the ‘hsearch’ and ‘drand48’ families of functions, reentrant
|
||
‘…‘_r’’ versions of the ‘random’ family; System V shared
|
||
memory and IPC support code
|
||
• several highly-optimized string functions for iX86 processors
|
||
• many math functions
|
||
• the character conversion functions (‘iconv’)
|
||
• the ‘ftw’ and ‘nftw’ functions
|
||
• the floating-point printing function used by ‘printf’ and
|
||
friends and the floating-point reading function used by
|
||
‘scanf’, ‘strtod’ and friends
|
||
• the ‘catgets’ support and the entire suite of multi-byte and
|
||
wide-character support functions (‘wctype.h’, ‘wchar.h’,
|
||
etc.).
|
||
• versioning of objects on the symbol level
|
||
|
||
• Richard Earnshaw for continued support and fixes to the various ARM
|
||
machine files.
|
||
|
||
• Paul Eggert for the ‘mktime’ function and for his direction as part
|
||
of the GNU C Library steering committee.
|
||
|
||
• Steve Ellcey for various fixes.
|
||
|
||
• Mike FABIAN for automating Unicode updates, for updating the locale
|
||
data for ISO 14651, for updating the library Unicode support, and
|
||
for various locale updates and fixes.
|
||
|
||
• Tulio Magno Quites Machado Filho for adding a new class of
|
||
installed headers for low-level platform-specific functionality and
|
||
one such for PowerPC and various fixes.
|
||
|
||
• Olaf Flebbe and Ralf Bächle for contributing
|
||
‘sysdeps/mips/fpu_control.h’.
|
||
|
||
• Alistair Francis for Y2038 related fixes.
|
||
|
||
• Mike Frysinger for his maintaining of the IA64 architecture and for
|
||
testing and bug fixing.
|
||
|
||
• Martin Galvan for contributing gdb pretty printer support to glibc
|
||
and adding an initial set of pretty printers for structures in the
|
||
POSIX Threads library.
|
||
|
||
• Michael Glad for the passphrase-hashing function ‘crypt’ and
|
||
related functions.
|
||
|
||
• Wolfram Gloger for contributing the memory allocation functions
|
||
functions ‘malloc’, ‘realloc’ and ‘free’ and related code.
|
||
|
||
• Gabriel F. T. Gomes for his improvements for Linux on PowerPC and
|
||
for implementing the IEEE 128-bit floating point type for PowerPC.
|
||
|
||
• Torbjörn Granlund for fast implementations of many of the string
|
||
functions (‘memcpy’, ‘strlen’, etc.).
|
||
|
||
• Michael J. Haertel for writing the merge sort function ‘qsort’ and
|
||
malloc checking functions like ‘mcheck’.
|
||
|
||
• Bruno Haible for his improvements to the ‘iconv’ and locale
|
||
implementations.
|
||
|
||
• Mao Han for the C-SKY port.
|
||
|
||
• Richard Henderson for the port to Linux on Alpha
|
||
(‘alpha-ANYTHING-linux’) and software floating-point support.
|
||
|
||
• David Holsgrove for the port to Linux on MicroBlaze.
|
||
|
||
• Leonhard Holz for various fixes.
|
||
|
||
• Daniel Jacobowitz for various fixes and enhancements.
|
||
|
||
• Andreas Jaeger for the port to Linux on x86-64
|
||
(‘x86_64-ANYTHING-linux’ and his work on Linux for MIPS
|
||
(‘mips-ANYTHING-linux’), implementing the ‘ldconfig’ program,
|
||
providing a test suite for the math library and for his direction
|
||
as part of the GNU C Library steering committee.
|
||
|
||
• Aurelien Jarno for various fixes.
|
||
|
||
• Rical Jasan for contributing various fixes in the GNU C Library
|
||
manual.
|
||
|
||
• Jakub Jelinek for implementing a number of checking functions,
|
||
software floating-point support and for his direction as part of
|
||
the GNU C Library steering committee.
|
||
|
||
• Simon Josefsson for the ‘libidn’ add-on.
|
||
|
||
• Geoffrey Keating for the port to Linux on PowerPC
|
||
(‘powerpc-ANYTHING-linux’).
|
||
|
||
• Brendan Kehoe for contributing the port to the MIPS DECStation
|
||
running Ultrix 4 (‘mips-dec-ultrix4’) and the port to the DEC Alpha
|
||
running OSF/1 (‘alpha-dec-osf1’).
|
||
|
||
• Mark Kettenis for implementing the ‘utmpx’ interface and a utmp
|
||
daemon, and for a Hesiod NSS module.
|
||
|
||
• Andi Kleen for implementing pthreads lock elision with TSX.
|
||
|
||
• Kazumoto Kojima for the port of the Mach and Hurd code to the MIPS
|
||
architecture (‘mips-ANYTHING-gnu’) and for his work on the SH
|
||
architecture.
|
||
|
||
• Maxim Kuvyrkov for various fixes.
|
||
|
||
• Andreas Krebbel for his work on Linux for s390 and s390x.
|
||
|
||
• Thorsten Kukuk for providing an implementation for NIS (YP) and
|
||
NIS+, securelevel 0, 1 and 2 and for the implementation for a
|
||
caching daemon for NSS (‘nscd’).
|
||
|
||
• Akhilesh Kumar for various fixes to locales.
|
||
|
||
• Jeff Law for various fixes.
|
||
|
||
• Doug Lea for contributing the memory allocation functions ‘malloc’,
|
||
‘realloc’ and ‘free’ and related code.
|
||
|
||
• Chris Leonard for various fixes and enhancements to localedata.
|
||
|
||
• Ilya Leoshkevich for various fixes.
|
||
|
||
• Dmitry V. Levin for various fixes.
|
||
|
||
• Stefan Liebler for various fixes.
|
||
|
||
• Hongjiu Lu for providing the support for a Linux 32-bit runtime
|
||
environment under x86-64 (x32), for porting to Linux on IA64, for
|
||
improved string functions, a framework for testing IFUNC
|
||
implementations, for implementing Intel Control-Flow Enforcement
|
||
Technology, and many bug fixes.
|
||
|
||
• Rafał Lużyński for contributing support for two grammatical forms
|
||
of month names, and for various fixes to locales.
|
||
|
||
• Luis Machado for optimized functions on PowerPC.
|
||
|
||
• David J. MacKenzie for his contribution to the ‘getopt’ function
|
||
and writing the ‘tar.h’ header.
|
||
|
||
• Lukasz Majewski for Y2038 related fixes.
|
||
|
||
• Greg McGary for adding runtime support for bounds checking.
|
||
|
||
• Roland McGrath for writing most of the GNU C Library originally,
|
||
for his work on the Hurd port, his direction as part of the GNU C
|
||
Library steering committee and as FSF Project Steward for the GNU C
|
||
Library, and for many bug fixes and reviewing of contributions.
|
||
|
||
• Allan McRae for various fixes.
|
||
|
||
• Jason Merrill for the port to the Sequent Symmetry running Dynix
|
||
version 3 (‘i386-sequent-bsd’).
|
||
|
||
• Chris Metcalf for the port to Linux/Tile (‘tilegx-ANYTHING-linux’
|
||
and ‘tilepro-ANYTHING-linux’) and support for the generic Linux
|
||
kernel syscall interface used by several newer ports.
|
||
|
||
• Jim Meyering for various fixes.
|
||
|
||
• David Miller for contributing the port to Linux/Sparc
|
||
(‘sparc*-ANYTHING-linux’).
|
||
|
||
• Alan Modra for his improvements for Linux on PowerPC.
|
||
|
||
• David Mosberger-Tang for contributing the port to Linux/Alpha
|
||
(‘alpha-ANYTHING-linux’).
|
||
|
||
• Wainer dos Santos Moschetta for various fixes to powerpc.
|
||
|
||
• Stephen Moshier for implementing some 128-bit long double format
|
||
math functions.
|
||
|
||
• Stephen Munroe for his port to Linux on PowerPC64
|
||
(‘powerpc64-ANYTHING-linux’) and for adding optimized
|
||
implementations for PowerPC.
|
||
|
||
• Paul E. Murphy for various fixes on PowerPC and for implementing
|
||
the IEEE 128-bit floating point type for PowerPC.
|
||
|
||
• Joseph S. Myers for numerous bug fixes for the libm functions, for
|
||
his maintainership of the ARM and MIPS architectures and the math
|
||
component, improving cross-compilation and cross-testing of the GNU
|
||
C Library, expanded coverage of conformtest, merging the ports/
|
||
subdirectory into the GNU C Library main repository and his
|
||
direction as FSF Project Steward for the GNU C Library.
|
||
|
||
• Marko Myllynen for various fixes.
|
||
|
||
• Szabolcs Nagy for various fixes.
|
||
|
||
• Will Newton for contributing some optimized string functions and
|
||
pointer encryption support for ARM and various fixes.
|
||
|
||
• Carlos O’Donell for his maintainership of the HPPA architecture,
|
||
for maintaining the GNU C Library web pages and wiki, for his
|
||
direction as FSF Project Steward for the GNU C Library and various
|
||
bug fixes.
|
||
|
||
• Alexandre Oliva for adding TLS descriptors for LD and GD on x86 and
|
||
x86-64, for the am33 port, for completing the MIPS n64/n32/o32
|
||
multilib port, for thread-safety, async-signal safety and
|
||
async-cancellation safety documentation in the manual, for his
|
||
direction as FSF Project Maintainer and for various fixes.
|
||
|
||
• Paul Pluzhnikov for various fixes.
|
||
|
||
• Marek Polacek for various fixes.
|
||
|
||
• Siddhesh Poyarekar for various fixes, an implementation of a
|
||
framework for performance benchmarking of functions and
|
||
implementing the tunables infrastructure.
|
||
|
||
• Tom Quinn for contributing the startup code to support SunOS shared
|
||
libraries and the port to SGI machines running Irix 4
|
||
(‘mips-sgi-irix4’).
|
||
|
||
• Torvald Riegel for the implementation of new algorithms for
|
||
semaphores, pthread_rwlock and condition variables.
|
||
|
||
• Maciej W. Rozycki for MIPS fixes, support for ABSOLUTE symbols, and
|
||
various fixes.
|
||
|
||
• Leonardo Sandoval for various fixes.
|
||
|
||
• Pravin Satpute for writing sorting rules for some Indian languages.
|
||
|
||
• Douglas C. Schmidt for writing the quick sort function used as a
|
||
fallback by ‘qsort’.
|
||
|
||
• Will Schmidt for optimized string functions on PowerPC.
|
||
|
||
• Andreas Schwab for the port to Linux/m68k (‘m68k-ANYTHING-linux’),
|
||
for his direction as part of the GNU C Library steering committee,
|
||
and for various bug fixes.
|
||
|
||
• Martin Schwidefsky for porting to Linux on s390
|
||
(‘s390-ANYTHING-linux’) and s390x (‘s390x-ANYTHING-linux’).
|
||
|
||
• Thomas Schwinge for his contribution to Hurd and the SH
|
||
architecture.
|
||
|
||
• Martin Sebor for various fixes.
|
||
|
||
• Andrew Senkevich for contributing vector math function
|
||
implementations for x86.
|
||
|
||
• Carlos Eduardo Seo for optimized functions on PowerPC.
|
||
|
||
• Arjun Shankar for testing and bug fixing.
|
||
|
||
• Marcus Shawcroft for contributing the AArch64 port.
|
||
|
||
• TAMUKI Shoichi for various fixes.
|
||
|
||
• Franz Sirl for various fixes.
|
||
|
||
• Jes Sorensen for porting to Linux on IA64 (‘ia64-ANYTHING-linux’).
|
||
|
||
• Rajalakshmi Srinivasaraghavan for various fixes and optimizations
|
||
on PowerPC and for implementing the IEEE 128-bit floating point
|
||
type for PowerPC.
|
||
|
||
• Richard Stallman for his contribution to the ‘getopt’ function.
|
||
|
||
• Alfred M. Szmidt for various fixes.
|
||
|
||
• Chung-Lin Tang for contributing the Nios II port.
|
||
|
||
• Ian Lance Taylor for contributing the port to the MIPS DECStation
|
||
running Ultrix 4 (‘mips-dec-ultrix4’).
|
||
|
||
• Samuel Thibault for improving the Hurd port.
|
||
|
||
• Pino Toscano for various fixes.
|
||
|
||
• Matt Turner for various fixes to the Alpha port.
|
||
|
||
• Tim Waugh for the implementation of the POSIX.2 ‘wordexp’ function
|
||
family.
|
||
|
||
• Ulrich Weigand for various fixes to the PowerPC64 and Arm ports.
|
||
|
||
• Florian Weimer for his maintainership of the network component, for
|
||
handling of security issues, and for various fixes.
|
||
|
||
• Zack Weinberg for the ‘explicit_bzero’ implementation and for
|
||
various fixes.
|
||
|
||
• Mark Wielaard for various fixes.
|
||
|
||
• Eric Youngdale for implementing versioning of objects on the symbol
|
||
level.
|
||
|
||
• Adhemerval Zanella for optimized functions on PowerPC, ISO C
|
||
threads support and various fixes.
|
||
|
||
• Xuelei Zhang for optimized functions on AArch64.
|
||
|
||
Some code in the GNU C Library comes from other projects and might be
|
||
under a different license:
|
||
|
||
• The timezone support code is derived from the public-domain
|
||
timezone package by Arthur David Olson and his many contributors.
|
||
|
||
• Some of the support code for Mach is taken from Mach 3.0 by CMU;
|
||
the file ‘if_ppp.h’ is also copyright by CMU, but under a different
|
||
license; see the file ‘LICENSES’ for the text of the licenses.
|
||
|
||
• The random number generation functions ‘random’, ‘srandom’,
|
||
‘setstate’ and ‘initstate’, which are also the basis for the ‘rand’
|
||
and ‘srand’ functions, were written by Earl T. Cohen for the
|
||
University of California at Berkeley and are copyrighted by the
|
||
Regents of the University of California. They have undergone minor
|
||
changes to fit into the GNU C Library and to fit the ISO C
|
||
standard, but the functional code is Berkeley’s.
|
||
|
||
• The Internet-related code (most of the ‘inet’ subdirectory) and
|
||
several other miscellaneous functions and header files have been
|
||
included from 4.4 BSD with little or no modification. The copying
|
||
permission notice for this code can be found in the file ‘LICENSES’
|
||
in the source distribution.
|
||
|
||
• The ‘getaddrinfo’ and ‘getnameinfo’ functions and supporting code
|
||
were written by Craig Metz; see the file ‘LICENSES’ for details on
|
||
their licensing.
|
||
|
||
• The DNS resolver code is taken directly from BIND 8.2.3-T5B, which
|
||
includes copyrighted code from UC Berkeley and from Digital
|
||
Equipment Corporation. See the file ‘LICENSES’ for the text of the
|
||
DEC license.
|
||
|
||
• The code to support Sun RPC is taken verbatim from Sun’s RPCSRC-4.0
|
||
distribution; see the file ‘LICENSES’ for the text of the license.
|
||
|
||
• The math functions are taken from ‘fdlibm-5.1’ by Sun Microsystems,
|
||
as modified by J.T. Conklin, Ian Lance Taylor, Ulrich Drepper,
|
||
Andreas Schwab, and Roland McGrath.
|
||
|
||
• Many of the IEEE 64-bit double precision math functions (in the
|
||
‘sysdeps/ieee754/dbl-64’ subdirectory) come from the IBM Accurate
|
||
Mathematical Library, contributed by IBM.
|
||
|
||
• Many of the IA64 math functions are taken from a collection of
|
||
“Highly Optimized Mathematical Functions for Itanium” that Intel
|
||
makes available under a free license; see the file ‘LICENSES’ for
|
||
details.
|
||
|
||
|
||
File: libc.info, Node: Free Manuals, Next: Copying, Prev: Contributors, Up: Top
|
||
|
||
Appendix G Free Software Needs Free Documentation
|
||
*************************************************
|
||
|
||
The biggest deficiency in the free software community today is not in
|
||
the software—it is the lack of good free documentation that we can
|
||
include with the free software. Many of our most important programs do
|
||
not come with free reference manuals and free introductory texts.
|
||
Documentation is an essential part of any software package; when an
|
||
important free software package does not come with a free manual and a
|
||
free tutorial, that is a major gap. We have many such gaps today.
|
||
|
||
Consider Perl, for instance. The tutorial manuals that people
|
||
normally use are non-free. How did this come about? Because the
|
||
authors of those manuals published them with restrictive terms—no
|
||
copying, no modification, source files not available—which exclude them
|
||
from the free software world.
|
||
|
||
That wasn’t the first time this sort of thing happened, and it was
|
||
far from the last. Many times we have heard a GNU user eagerly describe
|
||
a manual that he is writing, his intended contribution to the community,
|
||
only to learn that he had ruined everything by signing a publication
|
||
contract to make it non-free.
|
||
|
||
Free documentation, like free software, is a matter of freedom, not
|
||
price. The problem with the non-free manual is not that publishers
|
||
charge a price for printed copies—that in itself is fine. (The Free
|
||
Software Foundation sells printed copies of manuals, too.) The problem
|
||
is the restrictions on the use of the manual. Free manuals are
|
||
available in source code form, and give you permission to copy and
|
||
modify. Non-free manuals do not allow this.
|
||
|
||
The criteria of freedom for a free manual are roughly the same as for
|
||
free software. Redistribution (including the normal kinds of commercial
|
||
redistribution) must be permitted, so that the manual can accompany
|
||
every copy of the program, both on-line and on paper.
|
||
|
||
Permission for modification of the technical content is crucial too.
|
||
When people modify the software, adding or changing features, if they
|
||
are conscientious they will change the manual too—so they can provide
|
||
accurate and clear documentation for the modified program. A manual
|
||
that leaves you no choice but to write a new manual to document a
|
||
changed version of the program is not really available to our community.
|
||
|
||
Some kinds of limits on the way modification is handled are
|
||
acceptable. For example, requirements to preserve the original author’s
|
||
copyright notice, the distribution terms, or the list of authors, are
|
||
ok. It is also no problem to require modified versions to include
|
||
notice that they were modified. Even entire sections that may not be
|
||
deleted or changed are acceptable, as long as they deal with
|
||
nontechnical topics (like this one). These kinds of restrictions are
|
||
acceptable because they don’t obstruct the community’s normal use of the
|
||
manual.
|
||
|
||
However, it must be possible to modify all the _technical_ content of
|
||
the manual, and then distribute the result in all the usual media,
|
||
through all the usual channels. Otherwise, the restrictions obstruct
|
||
the use of the manual, it is not free, and we need another manual to
|
||
replace it.
|
||
|
||
Please spread the word about this issue. Our community continues to
|
||
lose manuals to proprietary publishing. If we spread the word that free
|
||
software needs free reference manuals and free tutorials, perhaps the
|
||
next person who wants to contribute by writing documentation will
|
||
realize, before it is too late, that only free manuals contribute to the
|
||
free software community.
|
||
|
||
If you are writing documentation, please insist on publishing it
|
||
under the GNU Free Documentation License or another free documentation
|
||
license. Remember that this decision requires your approval—you don’t
|
||
have to let the publisher decide. Some commercial publishers will use a
|
||
free license if you insist, but they will not propose the option; it is
|
||
up to you to raise the issue and say firmly that this is what you want.
|
||
If the publisher you are dealing with refuses, please try other
|
||
publishers. If you’re not sure whether a proposed license is free,
|
||
write to <licensing@gnu.org>.
|
||
|
||
You can encourage commercial publishers to sell more free, copylefted
|
||
manuals and tutorials by buying them, and particularly by buying copies
|
||
from the publishers that paid for their writing or for major
|
||
improvements. Meanwhile, try to avoid buying non-free documentation at
|
||
all. Check the distribution terms of a manual before you buy it, and
|
||
insist that whoever seeks your business must respect your freedom.
|
||
Check the history of the book, and try reward the publishers that have
|
||
paid or pay the authors to work on it.
|
||
|
||
The Free Software Foundation maintains a list of free documentation
|
||
published by other publishers, at
|
||
<https://www.fsf.org/doc/other-free-books.html>.
|
||
|
||
|
||
File: libc.info, Node: Copying, Next: Documentation License, Prev: Free Manuals, Up: Top
|
||
|
||
Appendix H GNU Lesser General Public License
|
||
********************************************
|
||
|
||
Version 2.1, February 1999
|
||
|
||
Copyright © 1991, 1999 Free Software Foundation, Inc.
|
||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||
|
||
Everyone is permitted to copy and distribute verbatim copies
|
||
of this license document, but changing it is not allowed.
|
||
|
||
[This is the first released version of the Lesser GPL. It also counts
|
||
as the successor of the GNU Library Public License, version 2, hence the
|
||
version number 2.1.]
|
||
|
||
Preamble
|
||
--------
|
||
|
||
The licenses for most software are designed to take away your freedom to
|
||
share and change it. By contrast, the GNU General Public Licenses are
|
||
intended to guarantee your freedom to share and change free software—to
|
||
make sure the software is free for all its users.
|
||
|
||
This license, the Lesser General Public License, applies to some
|
||
specially designated software—typically libraries—of the Free Software
|
||
Foundation and other authors who decide to use it. You can use it too,
|
||
but we suggest you first think carefully about whether this license or
|
||
the ordinary General Public License is the better strategy to use in any
|
||
particular case, based on the explanations below.
|
||
|
||
When we speak of free software, we are referring to freedom of use,
|
||
not price. Our General Public Licenses are designed to make sure that
|
||
you have the freedom to distribute copies of free software (and charge
|
||
for this service if you wish); that you receive source code or can get
|
||
it if you want it; that you can change the software and use pieces of it
|
||
in new free programs; and that you are informed that you can do these
|
||
things.
|
||
|
||
To protect your rights, we need to make restrictions that forbid
|
||
distributors to deny you these rights or to ask you to surrender these
|
||
rights. These restrictions translate to certain responsibilities for
|
||
you if you distribute copies of the library or if you modify it.
|
||
|
||
For example, if you distribute copies of the library, whether gratis
|
||
or for a fee, you must give the recipients all the rights that we gave
|
||
you. You must make sure that they, too, receive or can get the source
|
||
code. If you link other code with the library, you must provide
|
||
complete object files to the recipients, so that they can relink them
|
||
with the library after making changes to the library and recompiling it.
|
||
And you must show them these terms so they know their rights.
|
||
|
||
We protect your rights with a two-step method: (1) we copyright the
|
||
library, and (2) we offer you this license, which gives you legal
|
||
permission to copy, distribute and/or modify the library.
|
||
|
||
To protect each distributor, we want to make it very clear that there
|
||
is no warranty for the free library. Also, if the library is modified
|
||
by someone else and passed on, the recipients should know that what they
|
||
have is not the original version, so that the original author’s
|
||
reputation will not be affected by problems that might be introduced by
|
||
others.
|
||
|
||
Finally, software patents pose a constant threat to the existence of
|
||
any free program. We wish to make sure that a company cannot
|
||
effectively restrict the users of a free program by obtaining a
|
||
restrictive license from a patent holder. Therefore, we insist that any
|
||
patent license obtained for a version of the library must be consistent
|
||
with the full freedom of use specified in this license.
|
||
|
||
Most GNU software, including some libraries, is covered by the
|
||
ordinary GNU General Public License. This license, the GNU Lesser
|
||
General Public License, applies to certain designated libraries, and is
|
||
quite different from the ordinary General Public License. We use this
|
||
license for certain libraries in order to permit linking those libraries
|
||
into non-free programs.
|
||
|
||
When a program is linked with a library, whether statically or using
|
||
a shared library, the combination of the two is legally speaking a
|
||
combined work, a derivative of the original library. The ordinary
|
||
General Public License therefore permits such linking only if the entire
|
||
combination fits its criteria of freedom. The Lesser General Public
|
||
License permits more lax criteria for linking other code with the
|
||
library.
|
||
|
||
We call this license the "Lesser" General Public License because it
|
||
does _Less_ to protect the user’s freedom than the ordinary General
|
||
Public License. It also provides other free software developers Less of
|
||
an advantage over competing non-free programs. These disadvantages are
|
||
the reason we use the ordinary General Public License for many
|
||
libraries. However, the Lesser license provides advantages in certain
|
||
special circumstances.
|
||
|
||
For example, on rare occasions, there may be a special need to
|
||
encourage the widest possible use of a certain library, so that it
|
||
becomes a de-facto standard. To achieve this, non-free programs must be
|
||
allowed to use the library. A more frequent case is that a free library
|
||
does the same job as widely used non-free libraries. In this case,
|
||
there is little to gain by limiting the free library to free software
|
||
only, so we use the Lesser General Public License.
|
||
|
||
In other cases, permission to use a particular library in non-free
|
||
programs enables a greater number of people to use a large body of free
|
||
software. For example, permission to use the GNU C Library in non-free
|
||
programs enables many more people to use the whole GNU operating system,
|
||
as well as its variant, the GNU/Linux operating system.
|
||
|
||
Although the Lesser General Public License is Less protective of the
|
||
users’ freedom, it does ensure that the user of a program that is linked
|
||
with the Library has the freedom and the wherewithal to run that program
|
||
using a modified version of the Library.
|
||
|
||
The precise terms and conditions for copying, distribution and
|
||
modification follow. Pay close attention to the difference between a
|
||
“work based on the library” and a “work that uses the library”. The
|
||
former contains code derived from the library, whereas the latter must
|
||
be combined with the library in order to run.
|
||
|
||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||
---------------------------------------------------------------
|
||
|
||
0. This License Agreement applies to any software library or other
|
||
program which contains a notice placed by the copyright holder or
|
||
other authorized party saying it may be distributed under the terms
|
||
of this Lesser General Public License (also called “this License”).
|
||
Each licensee is addressed as “you”.
|
||
|
||
A “library” means a collection of software functions and/or data
|
||
prepared so as to be conveniently linked with application programs
|
||
(which use some of those functions and data) to form executables.
|
||
|
||
The “Library”, below, refers to any such software library or work
|
||
which has been distributed under these terms. A “work based on the
|
||
Library” means either the Library or any derivative work under
|
||
copyright law: that is to say, a work containing the Library or a
|
||
portion of it, either verbatim or with modifications and/or
|
||
translated straightforwardly into another language. (Hereinafter,
|
||
translation is included without limitation in the term
|
||
“modification”.)
|
||
|
||
“Source code” for a work means the preferred form of the work for
|
||
making modifications to it. For a library, complete source code
|
||
means all the source code for all modules it contains, plus any
|
||
associated interface definition files, plus the scripts used to
|
||
control compilation and installation of the library.
|
||
|
||
Activities other than copying, distribution and modification are
|
||
not covered by this License; they are outside its scope. The act
|
||
of running a program using the Library is not restricted, and
|
||
output from such a program is covered only if its contents
|
||
constitute a work based on the Library (independent of the use of
|
||
the Library in a tool for writing it). Whether that is true
|
||
depends on what the Library does and what the program that uses the
|
||
Library does.
|
||
|
||
1. You may copy and distribute verbatim copies of the Library’s
|
||
complete source code as you receive it, in any medium, provided
|
||
that you conspicuously and appropriately publish on each copy an
|
||
appropriate copyright notice and disclaimer of warranty; keep
|
||
intact all the notices that refer to this License and to the
|
||
absence of any warranty; and distribute a copy of this License
|
||
along with the Library.
|
||
|
||
You may charge a fee for the physical act of transferring a copy,
|
||
and you may at your option offer warranty protection in exchange
|
||
for a fee.
|
||
|
||
2. You may modify your copy or copies of the Library or any portion of
|
||
it, thus forming a work based on the Library, and copy and
|
||
distribute such modifications or work under the terms of Section 1
|
||
above, provided that you also meet all of these conditions:
|
||
|
||
a. The modified work must itself be a software library.
|
||
|
||
b. You must cause the files modified to carry prominent notices
|
||
stating that you changed the files and the date of any change.
|
||
|
||
c. You must cause the whole of the work to be licensed at no
|
||
charge to all third parties under the terms of this License.
|
||
|
||
d. If a facility in the modified Library refers to a function or
|
||
a table of data to be supplied by an application program that
|
||
uses the facility, other than as an argument passed when the
|
||
facility is invoked, then you must make a good faith effort to
|
||
ensure that, in the event an application does not supply such
|
||
function or table, the facility still operates, and performs
|
||
whatever part of its purpose remains meaningful.
|
||
|
||
(For example, a function in a library to compute square roots
|
||
has a purpose that is entirely well-defined independent of the
|
||
application. Therefore, Subsection 2d requires that any
|
||
application-supplied function or table used by this function
|
||
must be optional: if the application does not supply it, the
|
||
square root function must still compute square roots.)
|
||
|
||
These requirements apply to the modified work as a whole. If
|
||
identifiable sections of that work are not derived from the
|
||
Library, and can be reasonably considered independent and separate
|
||
works in themselves, then this License, and its terms, do not apply
|
||
to those sections when you distribute them as separate works. But
|
||
when you distribute the same sections as part of a whole which is a
|
||
work based on the Library, the distribution of the whole must be on
|
||
the terms of this License, whose permissions for other licensees
|
||
extend to the entire whole, and thus to each and every part
|
||
regardless of who wrote it.
|
||
|
||
Thus, it is not the intent of this section to claim rights or
|
||
contest your rights to work written entirely by you; rather, the
|
||
intent is to exercise the right to control the distribution of
|
||
derivative or collective works based on the Library.
|
||
|
||
In addition, mere aggregation of another work not based on the
|
||
Library with the Library (or with a work based on the Library) on a
|
||
volume of a storage or distribution medium does not bring the other
|
||
work under the scope of this License.
|
||
|
||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||
License instead of this License to a given copy of the Library. To
|
||
do this, you must alter all the notices that refer to this License,
|
||
so that they refer to the ordinary GNU General Public License,
|
||
version 2, instead of to this License. (If a newer version than
|
||
version 2 of the ordinary GNU General Public License has appeared,
|
||
then you can specify that version instead if you wish.) Do not
|
||
make any other change in these notices.
|
||
|
||
Once this change is made in a given copy, it is irreversible for
|
||
that copy, so the ordinary GNU General Public License applies to
|
||
all subsequent copies and derivative works made from that copy.
|
||
|
||
This option is useful when you wish to copy part of the code of the
|
||
Library into a program that is not a library.
|
||
|
||
4. You may copy and distribute the Library (or a portion or derivative
|
||
of it, under Section 2) in object code or executable form under the
|
||
terms of Sections 1 and 2 above provided that you accompany it with
|
||
the complete corresponding machine-readable source code, which must
|
||
be distributed under the terms of Sections 1 and 2 above on a
|
||
medium customarily used for software interchange.
|
||
|
||
If distribution of object code is made by offering access to copy
|
||
from a designated place, then offering equivalent access to copy
|
||
the source code from the same place satisfies the requirement to
|
||
distribute the source code, even though third parties are not
|
||
compelled to copy the source along with the object code.
|
||
|
||
5. A program that contains no derivative of any portion of the
|
||
Library, but is designed to work with the Library by being compiled
|
||
or linked with it, is called a “work that uses the Library”. Such
|
||
a work, in isolation, is not a derivative work of the Library, and
|
||
therefore falls outside the scope of this License.
|
||
|
||
However, linking a “work that uses the Library” with the Library
|
||
creates an executable that is a derivative of the Library (because
|
||
it contains portions of the Library), rather than a “work that uses
|
||
the library”. The executable is therefore covered by this License.
|
||
Section 6 states terms for distribution of such executables.
|
||
|
||
When a “work that uses the Library” uses material from a header
|
||
file that is part of the Library, the object code for the work may
|
||
be a derivative work of the Library even though the source code is
|
||
not. Whether this is true is especially significant if the work
|
||
can be linked without the Library, or if the work is itself a
|
||
library. The threshold for this to be true is not precisely
|
||
defined by law.
|
||
|
||
If such an object file uses only numerical parameters, data
|
||
structure layouts and accessors, and small macros and small inline
|
||
functions (ten lines or less in length), then the use of the object
|
||
file is unrestricted, regardless of whether it is legally a
|
||
derivative work. (Executables containing this object code plus
|
||
portions of the Library will still fall under Section 6.)
|
||
|
||
Otherwise, if the work is a derivative of the Library, you may
|
||
distribute the object code for the work under the terms of Section
|
||
6. Any executables containing that work also fall under Section 6,
|
||
whether or not they are linked directly with the Library itself.
|
||
|
||
6. As an exception to the Sections above, you may also combine or link
|
||
a “work that uses the Library” with the Library to produce a work
|
||
containing portions of the Library, and distribute that work under
|
||
terms of your choice, provided that the terms permit modification
|
||
of the work for the customer’s own use and reverse engineering for
|
||
debugging such modifications.
|
||
|
||
You must give prominent notice with each copy of the work that the
|
||
Library is used in it and that the Library and its use are covered
|
||
by this License. You must supply a copy of this License. If the
|
||
work during execution displays copyright notices, you must include
|
||
the copyright notice for the Library among them, as well as a
|
||
reference directing the user to the copy of this License. Also,
|
||
you must do one of these things:
|
||
|
||
a. Accompany the work with the complete corresponding
|
||
machine-readable source code for the Library including
|
||
whatever changes were used in the work (which must be
|
||
distributed under Sections 1 and 2 above); and, if the work is
|
||
an executable linked with the Library, with the complete
|
||
machine-readable “work that uses the Library”, as object code
|
||
and/or source code, so that the user can modify the Library
|
||
and then relink to produce a modified executable containing
|
||
the modified Library. (It is understood that the user who
|
||
changes the contents of definitions files in the Library will
|
||
not necessarily be able to recompile the application to use
|
||
the modified definitions.)
|
||
|
||
b. Use a suitable shared library mechanism for linking with the
|
||
Library. A suitable mechanism is one that (1) uses at run
|
||
time a copy of the library already present on the user’s
|
||
computer system, rather than copying library functions into
|
||
the executable, and (2) will operate properly with a modified
|
||
version of the library, if the user installs one, as long as
|
||
the modified version is interface-compatible with the version
|
||
that the work was made with.
|
||
|
||
c. Accompany the work with a written offer, valid for at least
|
||
three years, to give the same user the materials specified in
|
||
Subsection 6a, above, for a charge no more than the cost of
|
||
performing this distribution.
|
||
|
||
d. If distribution of the work is made by offering access to copy
|
||
from a designated place, offer equivalent access to copy the
|
||
above specified materials from the same place.
|
||
|
||
e. Verify that the user has already received a copy of these
|
||
materials or that you have already sent this user a copy.
|
||
|
||
For an executable, the required form of the “work that uses the
|
||
Library” must include any data and utility programs needed for
|
||
reproducing the executable from it. However, as a special
|
||
exception, the materials to be distributed need not include
|
||
anything that is normally distributed (in either source or binary
|
||
form) with the major components (compiler, kernel, and so on) of
|
||
the operating system on which the executable runs, unless that
|
||
component itself accompanies the executable.
|
||
|
||
It may happen that this requirement contradicts the license
|
||
restrictions of other proprietary libraries that do not normally
|
||
accompany the operating system. Such a contradiction means you
|
||
cannot use both them and the Library together in an executable that
|
||
you distribute.
|
||
|
||
7. You may place library facilities that are a work based on the
|
||
Library side-by-side in a single library together with other
|
||
library facilities not covered by this License, and distribute such
|
||
a combined library, provided that the separate distribution of the
|
||
work based on the Library and of the other library facilities is
|
||
otherwise permitted, and provided that you do these two things:
|
||
|
||
a. Accompany the combined library with a copy of the same work
|
||
based on the Library, uncombined with any other library
|
||
facilities. This must be distributed under the terms of the
|
||
Sections above.
|
||
|
||
b. Give prominent notice with the combined library of the fact
|
||
that part of it is a work based on the Library, and explaining
|
||
where to find the accompanying uncombined form of the same
|
||
work.
|
||
|
||
8. You may not copy, modify, sublicense, link with, or distribute the
|
||
Library except as expressly provided under this License. Any
|
||
attempt otherwise to copy, modify, sublicense, link with, or
|
||
distribute the Library is void, and will automatically terminate
|
||
your rights under this License. However, parties who have received
|
||
copies, or rights, from you under this License will not have their
|
||
licenses terminated so long as such parties remain in full
|
||
compliance.
|
||
|
||
9. You are not required to accept this License, since you have not
|
||
signed it. However, nothing else grants you permission to modify
|
||
or distribute the Library or its derivative works. These actions
|
||
are prohibited by law if you do not accept this License.
|
||
Therefore, by modifying or distributing the Library (or any work
|
||
based on the Library), you indicate your acceptance of this License
|
||
to do so, and all its terms and conditions for copying,
|
||
distributing or modifying the Library or works based on it.
|
||
|
||
10. Each time you redistribute the Library (or any work based on the
|
||
Library), the recipient automatically receives a license from the
|
||
original licensor to copy, distribute, link with or modify the
|
||
Library subject to these terms and conditions. You may not impose
|
||
any further restrictions on the recipients’ exercise of the rights
|
||
granted herein. You are not responsible for enforcing compliance
|
||
by third parties with this License.
|
||
|
||
11. If, as a consequence of a court judgment or allegation of patent
|
||
infringement or for any other reason (not limited to patent
|
||
issues), conditions are imposed on you (whether by court order,
|
||
agreement or otherwise) that contradict the conditions of this
|
||
License, they do not excuse you from the conditions of this
|
||
License. If you cannot distribute so as to satisfy simultaneously
|
||
your obligations under this License and any other pertinent
|
||
obligations, then as a consequence you may not distribute the
|
||
Library at all. For example, if a patent license would not permit
|
||
royalty-free redistribution of the Library by all those who receive
|
||
copies directly or indirectly through you, then the only way you
|
||
could satisfy both it and this License would be to refrain entirely
|
||
from distribution of the Library.
|
||
|
||
If any portion of this section is held invalid or unenforceable
|
||
under any particular circumstance, the balance of the section is
|
||
intended to apply, and the section as a whole is intended to apply
|
||
in other circumstances.
|
||
|
||
It is not the purpose of this section to induce you to infringe any
|
||
patents or other property right claims or to contest validity of
|
||
any such claims; this section has the sole purpose of protecting
|
||
the integrity of the free software distribution system which is
|
||
implemented by public license practices. Many people have made
|
||
generous contributions to the wide range of software distributed
|
||
through that system in reliance on consistent application of that
|
||
system; it is up to the author/donor to decide if he or she is
|
||
willing to distribute software through any other system and a
|
||
licensee cannot impose that choice.
|
||
|
||
This section is intended to make thoroughly clear what is believed
|
||
to be a consequence of the rest of this License.
|
||
|
||
12. If the distribution and/or use of the Library is restricted in
|
||
certain countries either by patents or by copyrighted interfaces,
|
||
the original copyright holder who places the Library under this
|
||
License may add an explicit geographical distribution limitation
|
||
excluding those countries, so that distribution is permitted only
|
||
in or among countries not thus excluded. In such case, this
|
||
License incorporates the limitation as if written in the body of
|
||
this License.
|
||
|
||
13. The Free Software Foundation may publish revised and/or new
|
||
versions of the Lesser General Public License from time to time.
|
||
Such new versions will be similar in spirit to the present version,
|
||
but may differ in detail to address new problems or concerns.
|
||
|
||
Each version is given a distinguishing version number. If the
|
||
Library specifies a version number of this License which applies to
|
||
it and “any later version”, you have the option of following the
|
||
terms and conditions either of that version or of any later version
|
||
published by the Free Software Foundation. If the Library does not
|
||
specify a license version number, you may choose any version ever
|
||
published by the Free Software Foundation.
|
||
|
||
14. If you wish to incorporate parts of the Library into other free
|
||
programs whose distribution conditions are incompatible with these,
|
||
write to the author to ask for permission. For software which is
|
||
copyrighted by the Free Software Foundation, write to the Free
|
||
Software Foundation; we sometimes make exceptions for this. Our
|
||
decision will be guided by the two goals of preserving the free
|
||
status of all derivatives of our free software and of promoting the
|
||
sharing and reuse of software generally.
|
||
|
||
NO WARRANTY
|
||
|
||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE
|
||
LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS
|
||
AND/OR OTHER PARTIES PROVIDE THE LIBRARY “AS IS” WITHOUT WARRANTY
|
||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
|
||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||
FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
|
||
PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE
|
||
DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR
|
||
OR CORRECTION.
|
||
|
||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY
|
||
MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE
|
||
LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
|
||
INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
|
||
INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU
|
||
OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY
|
||
OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN
|
||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||
|
||
END OF TERMS AND CONDITIONS
|
||
---------------------------
|
||
|
||
How to Apply These Terms to Your New Libraries
|
||
----------------------------------------------
|
||
|
||
If you develop a new library, and you want it to be of the greatest
|
||
possible use to the public, we recommend making it free software that
|
||
everyone can redistribute and change. You can do so by permitting
|
||
redistribution under these terms (or, alternatively, under the terms of
|
||
the ordinary General Public License).
|
||
|
||
To apply these terms, attach the following notices to the library.
|
||
It is safest to attach them to the start of each source file to most
|
||
effectively convey the exclusion of warranty; and each file should have
|
||
at least the “copyright” line and a pointer to where the full notice is
|
||
found.
|
||
|
||
ONE LINE TO GIVE THE LIBRARY'S NAME AND AN IDEA OF WHAT IT DOES.
|
||
Copyright (C) YEAR NAME OF AUTHOR
|
||
|
||
This library is free software; you can redistribute it and/or modify it
|
||
under the terms of the GNU Lesser General Public License as published by
|
||
the Free Software Foundation; either version 2.1 of the License, or (at
|
||
your option) any later version.
|
||
|
||
This library is distributed in the hope that it will be useful, but
|
||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||
Lesser General Public License for more details.
|
||
|
||
You should have received a copy of the GNU Lesser General Public
|
||
License along with this library; if not, write to the Free Software
|
||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||
USA.
|
||
|
||
Also add information on how to contact you by electronic and paper
|
||
mail.
|
||
|
||
You should also get your employer (if you work as a programmer) or
|
||
your school, if any, to sign a “copyright disclaimer” for the library,
|
||
if necessary. Here is a sample; alter the names:
|
||
|
||
Yoyodyne, Inc., hereby disclaims all copyright interest in the library
|
||
`Frob' (a library for tweaking knobs) written by James Random Hacker.
|
||
|
||
SIGNATURE OF TY COON, 1 April 1990
|
||
Ty Coon, President of Vice
|
||
|
||
That’s all there is to it!
|
||
|
||
|
||
File: libc.info, Node: Documentation License, Next: Concept Index, Prev: Copying, Up: Top
|
||
|
||
Appendix I GNU Free Documentation License
|
||
*****************************************
|
||
|
||
Version 1.3, 3 November 2008
|
||
|
||
Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
|
||
<https://fsf.org/>
|
||
|
||
Everyone is permitted to copy and distribute verbatim copies
|
||
of this license document, but changing it is not allowed.
|
||
|
||
0. PREAMBLE
|
||
|
||
The purpose of this License is to make a manual, textbook, or other
|
||
functional and useful document "free" in the sense of freedom: to
|
||
assure everyone the effective freedom to copy and redistribute it,
|
||
with or without modifying it, either commercially or
|
||
noncommercially. Secondarily, this License preserves for the
|
||
author and publisher a way to get credit for their work, while not
|
||
being considered responsible for modifications made by others.
|
||
|
||
This License is a kind of “copyleft”, which means that derivative
|
||
works of the document must themselves be free in the same sense.
|
||
It complements the GNU General Public License, which is a copyleft
|
||
license designed for free software.
|
||
|
||
We have designed this License in order to use it for manuals for
|
||
free software, because free software needs free documentation: a
|
||
free program should come with manuals providing the same freedoms
|
||
that the software does. But this License is not limited to
|
||
software manuals; it can be used for any textual work, regardless
|
||
of subject matter or whether it is published as a printed book. We
|
||
recommend this License principally for works whose purpose is
|
||
instruction or reference.
|
||
|
||
1. APPLICABILITY AND DEFINITIONS
|
||
|
||
This License applies to any manual or other work, in any medium,
|
||
that contains a notice placed by the copyright holder saying it can
|
||
be distributed under the terms of this License. Such a notice
|
||
grants a world-wide, royalty-free license, unlimited in duration,
|
||
to use that work under the conditions stated herein. The
|
||
“Document”, below, refers to any such manual or work. Any member
|
||
of the public is a licensee, and is addressed as “you”. You accept
|
||
the license if you copy, modify or distribute the work in a way
|
||
requiring permission under copyright law.
|
||
|
||
A “Modified Version” of the Document means any work containing the
|
||
Document or a portion of it, either copied verbatim, or with
|
||
modifications and/or translated into another language.
|
||
|
||
A “Secondary Section” is a named appendix or a front-matter section
|
||
of the Document that deals exclusively with the relationship of the
|
||
publishers or authors of the Document to the Document’s overall
|
||
subject (or to related matters) and contains nothing that could
|
||
fall directly within that overall subject. (Thus, if the Document
|
||
is in part a textbook of mathematics, a Secondary Section may not
|
||
explain any mathematics.) The relationship could be a matter of
|
||
historical connection with the subject or with related matters, or
|
||
of legal, commercial, philosophical, ethical or political position
|
||
regarding them.
|
||
|
||
The “Invariant Sections” are certain Secondary Sections whose
|
||
titles are designated, as being those of Invariant Sections, in the
|
||
notice that says that the Document is released under this License.
|
||
If a section does not fit the above definition of Secondary then it
|
||
is not allowed to be designated as Invariant. The Document may
|
||
contain zero Invariant Sections. If the Document does not identify
|
||
any Invariant Sections then there are none.
|
||
|
||
The “Cover Texts” are certain short passages of text that are
|
||
listed, as Front-Cover Texts or Back-Cover Texts, in the notice
|
||
that says that the Document is released under this License. A
|
||
Front-Cover Text may be at most 5 words, and a Back-Cover Text may
|
||
be at most 25 words.
|
||
|
||
A “Transparent” copy of the Document means a machine-readable copy,
|
||
represented in a format whose specification is available to the
|
||
general public, that is suitable for revising the document
|
||
straightforwardly with generic text editors or (for images composed
|
||
of pixels) generic paint programs or (for drawings) some widely
|
||
available drawing editor, and that is suitable for input to text
|
||
formatters or for automatic translation to a variety of formats
|
||
suitable for input to text formatters. A copy made in an otherwise
|
||
Transparent file format whose markup, or absence of markup, has
|
||
been arranged to thwart or discourage subsequent modification by
|
||
readers is not Transparent. An image format is not Transparent if
|
||
used for any substantial amount of text. A copy that is not
|
||
“Transparent” is called “Opaque”.
|
||
|
||
Examples of suitable formats for Transparent copies include plain
|
||
ASCII without markup, Texinfo input format, LaTeX input format,
|
||
SGML or XML using a publicly available DTD, and standard-conforming
|
||
simple HTML, PostScript or PDF designed for human modification.
|
||
Examples of transparent image formats include PNG, XCF and JPG.
|
||
Opaque formats include proprietary formats that can be read and
|
||
edited only by proprietary word processors, SGML or XML for which
|
||
the DTD and/or processing tools are not generally available, and
|
||
the machine-generated HTML, PostScript or PDF produced by some word
|
||
processors for output purposes only.
|
||
|
||
The “Title Page” means, for a printed book, the title page itself,
|
||
plus such following pages as are needed to hold, legibly, the
|
||
material this License requires to appear in the title page. For
|
||
works in formats which do not have any title page as such, “Title
|
||
Page” means the text near the most prominent appearance of the
|
||
work’s title, preceding the beginning of the body of the text.
|
||
|
||
The “publisher” means any person or entity that distributes copies
|
||
of the Document to the public.
|
||
|
||
A section “Entitled XYZ” means a named subunit of the Document
|
||
whose title either is precisely XYZ or contains XYZ in parentheses
|
||
following text that translates XYZ in another language. (Here XYZ
|
||
stands for a specific section name mentioned below, such as
|
||
“Acknowledgements”, “Dedications”, “Endorsements”, or “History”.)
|
||
To “Preserve the Title” of such a section when you modify the
|
||
Document means that it remains a section “Entitled XYZ” according
|
||
to this definition.
|
||
|
||
The Document may include Warranty Disclaimers next to the notice
|
||
which states that this License applies to the Document. These
|
||
Warranty Disclaimers are considered to be included by reference in
|
||
this License, but only as regards disclaiming warranties: any other
|
||
implication that these Warranty Disclaimers may have is void and
|
||
has no effect on the meaning of this License.
|
||
|
||
2. VERBATIM COPYING
|
||
|
||
You may copy and distribute the Document in any medium, either
|
||
commercially or noncommercially, provided that this License, the
|
||
copyright notices, and the license notice saying this License
|
||
applies to the Document are reproduced in all copies, and that you
|
||
add no other conditions whatsoever to those of this License. You
|
||
may not use technical measures to obstruct or control the reading
|
||
or further copying of the copies you make or distribute. However,
|
||
you may accept compensation in exchange for copies. If you
|
||
distribute a large enough number of copies you must also follow the
|
||
conditions in section 3.
|
||
|
||
You may also lend copies, under the same conditions stated above,
|
||
and you may publicly display copies.
|
||
|
||
3. COPYING IN QUANTITY
|
||
|
||
If you publish printed copies (or copies in media that commonly
|
||
have printed covers) of the Document, numbering more than 100, and
|
||
the Document’s license notice requires Cover Texts, you must
|
||
enclose the copies in covers that carry, clearly and legibly, all
|
||
these Cover Texts: Front-Cover Texts on the front cover, and
|
||
Back-Cover Texts on the back cover. Both covers must also clearly
|
||
and legibly identify you as the publisher of these copies. The
|
||
front cover must present the full title with all words of the title
|
||
equally prominent and visible. You may add other material on the
|
||
covers in addition. Copying with changes limited to the covers, as
|
||
long as they preserve the title of the Document and satisfy these
|
||
conditions, can be treated as verbatim copying in other respects.
|
||
|
||
If the required texts for either cover are too voluminous to fit
|
||
legibly, you should put the first ones listed (as many as fit
|
||
reasonably) on the actual cover, and continue the rest onto
|
||
adjacent pages.
|
||
|
||
If you publish or distribute Opaque copies of the Document
|
||
numbering more than 100, you must either include a machine-readable
|
||
Transparent copy along with each Opaque copy, or state in or with
|
||
each Opaque copy a computer-network location from which the general
|
||
network-using public has access to download using public-standard
|
||
network protocols a complete Transparent copy of the Document, free
|
||
of added material. If you use the latter option, you must take
|
||
reasonably prudent steps, when you begin distribution of Opaque
|
||
copies in quantity, to ensure that this Transparent copy will
|
||
remain thus accessible at the stated location until at least one
|
||
year after the last time you distribute an Opaque copy (directly or
|
||
through your agents or retailers) of that edition to the public.
|
||
|
||
It is requested, but not required, that you contact the authors of
|
||
the Document well before redistributing any large number of copies,
|
||
to give them a chance to provide you with an updated version of the
|
||
Document.
|
||
|
||
4. MODIFICATIONS
|
||
|
||
You may copy and distribute a Modified Version of the Document
|
||
under the conditions of sections 2 and 3 above, provided that you
|
||
release the Modified Version under precisely this License, with the
|
||
Modified Version filling the role of the Document, thus licensing
|
||
distribution and modification of the Modified Version to whoever
|
||
possesses a copy of it. In addition, you must do these things in
|
||
the Modified Version:
|
||
|
||
A. Use in the Title Page (and on the covers, if any) a title
|
||
distinct from that of the Document, and from those of previous
|
||
versions (which should, if there were any, be listed in the
|
||
History section of the Document). You may use the same title
|
||
as a previous version if the original publisher of that
|
||
version gives permission.
|
||
|
||
B. List on the Title Page, as authors, one or more persons or
|
||
entities responsible for authorship of the modifications in
|
||
the Modified Version, together with at least five of the
|
||
principal authors of the Document (all of its principal
|
||
authors, if it has fewer than five), unless they release you
|
||
from this requirement.
|
||
|
||
C. State on the Title page the name of the publisher of the
|
||
Modified Version, as the publisher.
|
||
|
||
D. Preserve all the copyright notices of the Document.
|
||
|
||
E. Add an appropriate copyright notice for your modifications
|
||
adjacent to the other copyright notices.
|
||
|
||
F. Include, immediately after the copyright notices, a license
|
||
notice giving the public permission to use the Modified
|
||
Version under the terms of this License, in the form shown in
|
||
the Addendum below.
|
||
|
||
G. Preserve in that license notice the full lists of Invariant
|
||
Sections and required Cover Texts given in the Document’s
|
||
license notice.
|
||
|
||
H. Include an unaltered copy of this License.
|
||
|
||
I. Preserve the section Entitled “History”, Preserve its Title,
|
||
and add to it an item stating at least the title, year, new
|
||
authors, and publisher of the Modified Version as given on the
|
||
Title Page. If there is no section Entitled “History” in the
|
||
Document, create one stating the title, year, authors, and
|
||
publisher of the Document as given on its Title Page, then add
|
||
an item describing the Modified Version as stated in the
|
||
previous sentence.
|
||
|
||
J. Preserve the network location, if any, given in the Document
|
||
for public access to a Transparent copy of the Document, and
|
||
likewise the network locations given in the Document for
|
||
previous versions it was based on. These may be placed in the
|
||
“History” section. You may omit a network location for a work
|
||
that was published at least four years before the Document
|
||
itself, or if the original publisher of the version it refers
|
||
to gives permission.
|
||
|
||
K. For any section Entitled “Acknowledgements” or “Dedications”,
|
||
Preserve the Title of the section, and preserve in the section
|
||
all the substance and tone of each of the contributor
|
||
acknowledgements and/or dedications given therein.
|
||
|
||
L. Preserve all the Invariant Sections of the Document, unaltered
|
||
in their text and in their titles. Section numbers or the
|
||
equivalent are not considered part of the section titles.
|
||
|
||
M. Delete any section Entitled “Endorsements”. Such a section
|
||
may not be included in the Modified Version.
|
||
|
||
N. Do not retitle any existing section to be Entitled
|
||
“Endorsements” or to conflict in title with any Invariant
|
||
Section.
|
||
|
||
O. Preserve any Warranty Disclaimers.
|
||
|
||
If the Modified Version includes new front-matter sections or
|
||
appendices that qualify as Secondary Sections and contain no
|
||
material copied from the Document, you may at your option designate
|
||
some or all of these sections as invariant. To do this, add their
|
||
titles to the list of Invariant Sections in the Modified Version’s
|
||
license notice. These titles must be distinct from any other
|
||
section titles.
|
||
|
||
You may add a section Entitled “Endorsements”, provided it contains
|
||
nothing but endorsements of your Modified Version by various
|
||
parties—for example, statements of peer review or that the text has
|
||
been approved by an organization as the authoritative definition of
|
||
a standard.
|
||
|
||
You may add a passage of up to five words as a Front-Cover Text,
|
||
and a passage of up to 25 words as a Back-Cover Text, to the end of
|
||
the list of Cover Texts in the Modified Version. Only one passage
|
||
of Front-Cover Text and one of Back-Cover Text may be added by (or
|
||
through arrangements made by) any one entity. If the Document
|
||
already includes a cover text for the same cover, previously added
|
||
by you or by arrangement made by the same entity you are acting on
|
||
behalf of, you may not add another; but you may replace the old
|
||
one, on explicit permission from the previous publisher that added
|
||
the old one.
|
||
|
||
The author(s) and publisher(s) of the Document do not by this
|
||
License give permission to use their names for publicity for or to
|
||
assert or imply endorsement of any Modified Version.
|
||
|
||
5. COMBINING DOCUMENTS
|
||
|
||
You may combine the Document with other documents released under
|
||
this License, under the terms defined in section 4 above for
|
||
modified versions, provided that you include in the combination all
|
||
of the Invariant Sections of all of the original documents,
|
||
unmodified, and list them all as Invariant Sections of your
|
||
combined work in its license notice, and that you preserve all
|
||
their Warranty Disclaimers.
|
||
|
||
The combined work need only contain one copy of this License, and
|
||
multiple identical Invariant Sections may be replaced with a single
|
||
copy. If there are multiple Invariant Sections with the same name
|
||
but different contents, make the title of each such section unique
|
||
by adding at the end of it, in parentheses, the name of the
|
||
original author or publisher of that section if known, or else a
|
||
unique number. Make the same adjustment to the section titles in
|
||
the list of Invariant Sections in the license notice of the
|
||
combined work.
|
||
|
||
In the combination, you must combine any sections Entitled
|
||
“History” in the various original documents, forming one section
|
||
Entitled “History”; likewise combine any sections Entitled
|
||
“Acknowledgements”, and any sections Entitled “Dedications”. You
|
||
must delete all sections Entitled “Endorsements.”
|
||
|
||
6. COLLECTIONS OF DOCUMENTS
|
||
|
||
You may make a collection consisting of the Document and other
|
||
documents released under this License, and replace the individual
|
||
copies of this License in the various documents with a single copy
|
||
that is included in the collection, provided that you follow the
|
||
rules of this License for verbatim copying of each of the documents
|
||
in all other respects.
|
||
|
||
You may extract a single document from such a collection, and
|
||
distribute it individually under this License, provided you insert
|
||
a copy of this License into the extracted document, and follow this
|
||
License in all other respects regarding verbatim copying of that
|
||
document.
|
||
|
||
7. AGGREGATION WITH INDEPENDENT WORKS
|
||
|
||
A compilation of the Document or its derivatives with other
|
||
separate and independent documents or works, in or on a volume of a
|
||
storage or distribution medium, is called an “aggregate” if the
|
||
copyright resulting from the compilation is not used to limit the
|
||
legal rights of the compilation’s users beyond what the individual
|
||
works permit. When the Document is included in an aggregate, this
|
||
License does not apply to the other works in the aggregate which
|
||
are not themselves derivative works of the Document.
|
||
|
||
If the Cover Text requirement of section 3 is applicable to these
|
||
copies of the Document, then if the Document is less than one half
|
||
of the entire aggregate, the Document’s Cover Texts may be placed
|
||
on covers that bracket the Document within the aggregate, or the
|
||
electronic equivalent of covers if the Document is in electronic
|
||
form. Otherwise they must appear on printed covers that bracket
|
||
the whole aggregate.
|
||
|
||
8. TRANSLATION
|
||
|
||
Translation is considered a kind of modification, so you may
|
||
distribute translations of the Document under the terms of section
|
||
4. Replacing Invariant Sections with translations requires special
|
||
permission from their copyright holders, but you may include
|
||
translations of some or all Invariant Sections in addition to the
|
||
original versions of these Invariant Sections. You may include a
|
||
translation of this License, and all the license notices in the
|
||
Document, and any Warranty Disclaimers, provided that you also
|
||
include the original English version of this License and the
|
||
original versions of those notices and disclaimers. In case of a
|
||
disagreement between the translation and the original version of
|
||
this License or a notice or disclaimer, the original version will
|
||
prevail.
|
||
|
||
If a section in the Document is Entitled “Acknowledgements”,
|
||
“Dedications”, or “History”, the requirement (section 4) to
|
||
Preserve its Title (section 1) will typically require changing the
|
||
actual title.
|
||
|
||
9. TERMINATION
|
||
|
||
You may not copy, modify, sublicense, or distribute the Document
|
||
except as expressly provided under this License. Any attempt
|
||
otherwise to copy, modify, sublicense, or distribute it is void,
|
||
and will automatically terminate your rights under this License.
|
||
|
||
However, if you cease all violation of this License, then your
|
||
license from a particular copyright holder is reinstated (a)
|
||
provisionally, unless and until the copyright holder explicitly and
|
||
finally terminates your license, and (b) permanently, if the
|
||
copyright holder fails to notify you of the violation by some
|
||
reasonable means prior to 60 days after the cessation.
|
||
|
||
Moreover, your license from a particular copyright holder is
|
||
reinstated permanently if the copyright holder notifies you of the
|
||
violation by some reasonable means, this is the first time you have
|
||
received notice of violation of this License (for any work) from
|
||
that copyright holder, and you cure the violation prior to 30 days
|
||
after your receipt of the notice.
|
||
|
||
Termination of your rights under this section does not terminate
|
||
the licenses of parties who have received copies or rights from you
|
||
under this License. If your rights have been terminated and not
|
||
permanently reinstated, receipt of a copy of some or all of the
|
||
same material does not give you any rights to use it.
|
||
|
||
10. FUTURE REVISIONS OF THIS LICENSE
|
||
|
||
The Free Software Foundation may publish new, revised versions of
|
||
the GNU Free Documentation License from time to time. Such new
|
||
versions will be similar in spirit to the present version, but may
|
||
differ in detail to address new problems or concerns. See
|
||
<https://www.gnu.org/licenses/>.
|
||
|
||
Each version of the License is given a distinguishing version
|
||
number. If the Document specifies that a particular numbered
|
||
version of this License “or any later version” applies to it, you
|
||
have the option of following the terms and conditions either of
|
||
that specified version or of any later version that has been
|
||
published (not as a draft) by the Free Software Foundation. If the
|
||
Document does not specify a version number of this License, you may
|
||
choose any version ever published (not as a draft) by the Free
|
||
Software Foundation. If the Document specifies that a proxy can
|
||
decide which future versions of this License can be used, that
|
||
proxy’s public statement of acceptance of a version permanently
|
||
authorizes you to choose that version for the Document.
|
||
|
||
11. RELICENSING
|
||
|
||
“Massive Multiauthor Collaboration Site” (or “MMC Site”) means any
|
||
World Wide Web server that publishes copyrightable works and also
|
||
provides prominent facilities for anybody to edit those works. A
|
||
public wiki that anybody can edit is an example of such a server.
|
||
A “Massive Multiauthor Collaboration” (or “MMC”) contained in the
|
||
site means any set of copyrightable works thus published on the MMC
|
||
site.
|
||
|
||
“CC-BY-SA” means the Creative Commons Attribution-Share Alike 3.0
|
||
license published by Creative Commons Corporation, a not-for-profit
|
||
corporation with a principal place of business in San Francisco,
|
||
California, as well as future copyleft versions of that license
|
||
published by that same organization.
|
||
|
||
“Incorporate” means to publish or republish a Document, in whole or
|
||
in part, as part of another Document.
|
||
|
||
An MMC is “eligible for relicensing” if it is licensed under this
|
||
License, and if all works that were first published under this
|
||
License somewhere other than this MMC, and subsequently
|
||
incorporated in whole or in part into the MMC, (1) had no cover
|
||
texts or invariant sections, and (2) were thus incorporated prior
|
||
to November 1, 2008.
|
||
|
||
The operator of an MMC Site may republish an MMC contained in the
|
||
site under CC-BY-SA on the same site at any time before August 1,
|
||
2009, provided the MMC is eligible for relicensing.
|
||
|
||
ADDENDUM: How to use this License for your documents
|
||
====================================================
|
||
|
||
To use this License in a document you have written, include a copy of
|
||
the License in the document and put the following copyright and license
|
||
notices just after the title page:
|
||
|
||
Copyright (C) YEAR YOUR NAME.
|
||
Permission is granted to copy, distribute and/or modify this document
|
||
under the terms of the GNU Free Documentation License, Version 1.3
|
||
or any later version published by the Free Software Foundation;
|
||
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
|
||
Texts. A copy of the license is included in the section entitled ``GNU
|
||
Free Documentation License''.
|
||
|
||
If you have Invariant Sections, Front-Cover Texts and Back-Cover
|
||
Texts, replace the “with…Texts.” line with this:
|
||
|
||
with the Invariant Sections being LIST THEIR TITLES, with
|
||
the Front-Cover Texts being LIST, and with the Back-Cover Texts
|
||
being LIST.
|
||
|
||
If you have Invariant Sections without Cover Texts, or some other
|
||
combination of the three, merge those two alternatives to suit the
|
||
situation.
|
||
|
||
If your document contains nontrivial examples of program code, we
|
||
recommend releasing these examples in parallel under your choice of free
|
||
software license, such as the GNU General Public License, to permit
|
||
their use in free software.
|
||
|
||
|
||
File: libc.info, Node: Concept Index, Next: Type Index, Prev: Documentation License, Up: Top
|
||
|
||
Concept Index
|
||
*************
|
||
|
||
|