about summary refs log tree commit diff
path: root/include
Commit message (Collapse)AuthorAgeFilesLines
* fix default feature profile in tar.hRich Felker2018-03-281-0/+2
| | | | | | | commit d93c0740d86aaf7043e79b942a6c0b3f576af4c8 added use of feature test macros without including features.h, causing a definition that should be exposed in the default profile, TSVTX, to appear only when _XOPEN_SOURCE or higher is explicitly defined.
* explicitly use signed keyword to define intNN_t and derivative typesRich Felker2018-03-121-4/+4
| | | | | | | | | | | | | | | | | | | | standing alone, both the signed and int keywords identify the same type, a (signed) int. however the C language has an exception where, when the lone keyword int is used to declare a bitfield, it's implementation-defined whether the bitfield is signed or unsigned. C11 footnote 125 extends this implementation-definedness to typedefs, and DR#315 extends it to other integer types (for which support with bitfields is implementation-defined). while reasonable ABIs (all the ones we support) define bitfields as signed by default, GCC and compatible compilers offer an option -funsigned-bitfields to change the default. while any signed types defined without explicit use of the signed keyword are affected, the stdint.h types, especially intNN_t, have a natural use in bitfields. ensure that bitfields defined with these types always have the correct signedness regardless of compiler & flags used. see also GCC PR 83294.
* remove spurious const keyword in sigqueue declarationRich Felker2018-03-101-1/+1
| | | | | | this must have been taken from POSIX without realizing that it was meaningless. the resolution to Austin Group issue #844 removed it from the standard.
* fix minor namespace issue in unistd.hRich Felker2018-03-101-2/+1
| | | | | | the F_* macros associated with the lockf function are XSI-shaded (like the lockf function itself) and should only be exposed when the function is.
* fix minor namespace issue in tar.hRich Felker2018-03-101-0/+2
| | | | TSVTX is XSI-shaded.
* fix minor namespace issues in limits.hRich Felker2018-03-101-5/+10
| | | | PAGE_SIZE, NZERO, and NL_LANGMAX are XSI-shaded.
* reverse definition dependency between PAGESIZE and PAGE_SIZERich Felker2018-03-101-2/+2
| | | | | | PAGESIZE is actually the version defined in POSIX base, with PAGE_SIZE being in the XSI option. use PAGESIZE as the underlying definition to facilitate making exposure of PAGE_SIZE conditional.
* fix aliasing violations in fgetpos/fsetposRich Felker2018-02-241-0/+1
| | | | | | | | | | | | | add a member of appropriate type to the fpos_t union so that accesses are well-defined. use long long instead of off_t since off_t is not always exposed in stdio.h and there's no namespace-clean alias for it. access is still performed using pointer casts rather than by naming the union member as a matter of style; to the extent possible, the naming of fields in opaque types defined in the public headers is not treated as an API contract with the implementation. access via the pointer cast is valid as long as the union has a member of matching type.
* add getentropy functionRich Felker2018-02-231-0/+1
| | | | | | | based loosely on patch by Hauke Mehrtens; converted to wrap the public API of the underlying getrandom function rather than direct syscalls, so that if/when a fallback implementation of getrandom is added it will automatically get picked up by getentropy too.
* add getrandom syscall wrapperHauke Mehrtens2018-02-221-0/+19
| | | | | This syscall is available since Linux 3.17 and was also implemented in glibc in version 2.25 using the same interfaces.
* elf.h: add DT_SYMTAB_SHNDXSzabolcs Nagy2018-02-221-1/+2
| | | | | | | it's a recent addition to elf gabi: http://sco.com/developers/gabi/latest/revision.html based on discussions at https://sourceware.org/bugzilla/show_bug.cgi?id=15835
* elf.h: syncronize DF_1_ flags with binutilsSzabolcs Nagy2018-02-221-0/+2
| | | | | DF_1_STUB and DF_1_PIE were added in binutils-gdb commit 5c383f026242d25a3c21fdfda42e5ca218b346c8
* elf.h: update NT_* coredump elf notes for linux v4.15Szabolcs Nagy2018-02-221-0/+21
| | | | | | | | | NT_ARM_SVE and NT_S390_RI_CB are new in linux commits 43d4da2c45b2f5d62f8a79ff7c6f95089bb24656 and 262832bc5acda76fd8f901d39f4da1121d951222 the rest are older. musl missed NT_PRFPREG because it followed the glibc api: https://sourceware.org/bugzilla/show_bug.cgi?id=14890
* elf.h: add PPC64_OPT_LOCALENTRYSzabolcs Nagy2018-02-221-0/+1
| | | | | allows calling extern functions without saving r2, for details see glibc commit 0572433b5beb636de1a49ec6b4fdab830c38cdc5
* elf.h: add AT_* auxval macros for cache geometrySzabolcs Nagy2018-02-221-0/+8
| | | | | AT_L1I_*, AT_L1D_*, AT_L2_* and AT_L3_* were added in linux v4.11 for powerpc in commit 98a5f361b8625c6f4841d6ba013bbf0e80d08147.
* sys/prctl.h: add new PR_SVE_* macros from linux v4.15Szabolcs Nagy2018-02-221-0/+6
| | | | | | | PR_SVE_SET_VL and PR_SVE_GET_VL controls are new in linux commit 2d2123bc7c7f843aa9db87720de159a049839862 related PR_SVE_* macros were added in 7582e22038a266444eb87bc07c372592ad647439
* netinet/in.h: add new IPV6_FREEBIND from linux v4.15Szabolcs Nagy2018-02-221-0/+1
| | | | | new socekt option for AF_INET6 SOL_RAW sockets, added in linux commit 84e14fe353de7624872e582887712079ba0b2d56
* netinet/tcp.h: add TCP_* socket options from linux v4.15Szabolcs Nagy2018-02-221-0/+2
| | | | | TCP_FASTOPEN_KEY is new in 1fba70e5b6bed53496ba1f1f16127f5be01b5fb6 TCP_FASTOPEN_NO_COOKIE is new in 71c02379c762cb616c00fd5c4ed253fbf6bbe11b
* add MAP_SYNC and MAP_SHARED_VALIDATE from linux v4.15Szabolcs Nagy2018-02-221-0/+2
| | | | | | | | for synchronous page faults, new in linux commit 1c9725974074a047f6080eecc62c50a8e840d050 and b6fb293f2497a9841d94f6b57bd2bb2cd222da43 note that only targets that use asm-generic/mman.h have this new flag defined, so undef it on other targets (mips*, powerpc*).
* netinet/tcp.h: add tcp_diag_md5sig struct from linux v4.14Szabolcs Nagy2018-02-221-0/+8
| | | | | for querying tcp md5 signing keys. new in linux commit c03fa9bcacd9ac04595cc13f34f3445f0a5ecf13
* sys/{mman,shm}.h: add {MAP,SHM}_HUGE_ macros from linux uapiSzabolcs Nagy2018-02-222-0/+26
| | | | | | | | | | | | | *_HUGE_SHIFT, *_HUGE_2MB, *_HUGE_1GB are documented in the man page, so add all of the *_HUGE_* macros from linux uapi. if MAP_HUGETLB is set, top bits of the mmap flags encode the page size. see the linux commit aafd4562dfee81a40ba21b5ea3cf5e06664bc7f6 if SHM_HUGETLB is set, top bits of the shmget flags encode the page size. see the linux commit 4da243ac1cf6aeb30b7c555d56208982d66d6d33 *_HUGE_16GB is defined unsigned to avoid signed left shift ub.
* netinet/if_ether.h: add new ETH_P_ macros from linux v4.14Szabolcs Nagy2018-02-221-0/+4
| | | | | | | | new ethertypes in linux v4.14: ETH_P_ERSPAN new in 84e54fe0a5eaed696dee4019c396f8396f5a908b ETH_P_IFE new in 2804fd3af6ba5ae5737705b27146455eabe2e2f8 ETH_P_NSH new in 155e6f649757c902901e599c268f8b575ddac1f8 ETH_P_MAP new in 7373ae7e8f0bf2c0718422481da986db5058b005
* net/if_arp.h: add ARPHRD_RAWIP from linux v4.14Szabolcs Nagy2018-02-221-0/+1
| | | | new in linux commmit cdf4969c42a6c1a376dd03a9e846cf638d3cd4b1
* signal.h: add missing SIGTRAP si_codesSzabolcs Nagy2018-02-221-0/+2
| | | | | TRAP_BRANCH and TRAP_HWBKPT new in linux commit da654b74bda14c45a7d98c731bf3c1a43b6b74e2
* sys/mman.h: add MADV_WIPEONFORK from linux v4.14Szabolcs Nagy2018-02-221-0/+2
| | | | | allows zeroing anonymous private pages inherited by a child process. new in linux commit d2cd9ede6e193dd7d88b6d27399e96229a551b19
* sys/socket.h: add MSG_ZEROCOPY from linux v4.14Szabolcs Nagy2018-02-221-0/+2
| | | | | | | MSG_ZEROCOPY socket send flag avoids copy in the kernel new in linux commit 52267790ef52d7513879238ca9fac22c1733e0e3 SO_ZEROCOPY socket option enables MSG_ZEROCOPY if availale new in linux commit 76851d1212c11365362525e1e2c0a18c97478e6b
* sys/socket.h: add SOL_TLS from linux v4.13Szabolcs Nagy2018-02-221-0/+1
| | | | | socket option for kernel TLS support new in linux commit 3c4d7559159bfe1e3b94df3a657b2cda3a34e218
* sys/socket.h: add PF_SMC from linux v4.11Szabolcs Nagy2018-02-221-1/+3
| | | | | | add AF_SMC and PF_SMC for the IBM shared memory communication protocol. new in linux commit ac7138746e14137a451f8539614cdd349153e0c0 (linux socket.h is not in uapi so this update was missed earlier)
* add _DIRENT_HAVE_D_* macros to dirent.hRostislav Skudnov2018-01-121-0/+4
|
* add additional uapi guards for Linux kernel header filesHauke Mehrtens2018-01-093-0/+10
| | | | | | | | | | | | With Linux kernel 4.16 it will be possible to guard more parts of the Linux header files from a libc. Make use of this in musl to guard all the structures and other definitions from the Linux header files which are also defined by the header files provided by musl. This will make it possible to compile source files which include both the libc headers and the kernel userspace headers. This extends the definitions done in commit 04983f227238 ("make netinet/in.h suppress clashing definitions from kernel headers")
* fix endian errors in netinet/icmp6.h due to failure to include endian.hRich Felker2017-12-151-0/+1
|
* fix endian errors in arpa/nameser.h due to failure to include endian.hJo-Philipp Wich2017-12-141-0/+1
|
* adjust fopencookie structure tag for ABI-compatRich Felker2017-12-061-1/+1
| | | | | stdio types use the struct tag names from glibc libio to match C++ ABI.
* implement the fopencookie extension to stdioWilliam Pitcock2017-12-061-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | notes added by maintainer: this function is a GNU extension. it was chosen over the similar BSD function funopen because the latter depends on fpos_t being an arithmetic type as part of its public API, conflicting with our definition of fpos_t and with the intent that it be an opaque type. it was accepted for inclusion because, despite not being widely used, it is usually very difficult to extricate software using it from the dependency on it. calling pattern for the read and write callbacks is not likely to match glibc or other implementations, but should work with any reasonable callbacks. in particular the read function is never called without at least one byte being needed to satisfy its caller, so that spurious blocking is not introduced. contracts for what callbacks called from inside libc/stdio can do are always complicated, and at some point still need to be specified explicitly. at the very least, the callbacks must return or block indefinitely (they cannot perform nonlocal exits) and they should not make calls to stdio using their own FILE as an argument.
* add new tcp.h socket options from linux v4.13Szabolcs Nagy2017-11-051-2/+7
| | | | | TCP_ULP is new in linux commit 734942cc4ea6478eed125af258da1bdbb4afe578 TCP_MD5SIG_EXT is new in 8917a777be3ba566377be05117f71b93a5fd909d
* add new fcntl.h macros from linux v4.13Szabolcs Nagy2017-11-051-0/+12
| | | | | | | | for getting/setting write lifetime hints fcntl commands were added in linux commit c75b1d9421f80f4143e389d2d50ddfc8a28c8c35 added under _GNU_SOURCE || _BSD_SOURCE, since RWH_* life time hints are not in the POSIX reserved namespace.
* add SO_ getsockopt options from linux v4.13Szabolcs Nagy2017-11-051-0/+2
| | | | | SCM_TIMESTAMPING_PKTINFO is new in aad9c8c470f2a8321a99eb053630ce0e199558d6 SO_PEERGROUPS is new in 28b5ba2aa0f55d80adb2624564ed2b170c19519e
* add ARPHDR_VSOCKMON from linux v4.12Szabolcs Nagy2017-11-051-0/+1
| | | | new in linux commit 531b374834c891ae2abf800693074df35a7d1a36
* add new SO_ socket options from linux v4.12Szabolcs Nagy2017-11-051-0/+3
| | | | | | SO_MEMINFO added in linux commit a2d133b1d465016d0d97560b11f54ba0ace56d3e SO_INCOMING_NAPI_ID added in 6d4339028b350efbf87c61e6d9e113e5373545c9 SO_COOKIE added in 5daab9db7b65df87da26fd8cfa695fb9546a1ddb
* add TCP_NLA_* enums from linux v4.11Szabolcs Nagy2017-11-051-0/+2
| | | | | two new stats for SCM_TIMESTAMPING_OPT_STATS, added in linux commit 7e98102f489775d8c000884fca8a0d995ea688a9
* add TCP_FASTOPEN_CONNECT tcp socket option from linux v4.11Szabolcs Nagy2017-11-051-0/+1
| | | | new in linux commit 19f6d3f3c8422d65b5e3d2162e30ef07c6e21ea2
* add ETH_P_IBOE from linux v4.11Szabolcs Nagy2017-11-051-0/+1
| | | | new in linux commit 69ae543969abeba48e04dd93277684c8c0895f3b
* add TFD_TIMER_CANCEL_ON_SET that timerfd.h was missingSzabolcs Nagy2017-11-051-0/+1
| | | | | linux commit 575b1967e10a1f3038266244d2c7a3ca6b99fed8 moved timerfd apis to a new uapi header which showed musl was missing this flag.
* add ETH_MIN_MTU and ETH_MAX_MTU from linux v4.10Szabolcs Nagy2017-11-051-0/+2
| | | | | | min max mtu size definitions mostly for drivers. new in linux commits a52ad514fdf3b8a57ca4322c92d2d8d5c6182485 and d894be57ca92c8a8819ab544d550809e8731137b
* add IP_RECVFRAGSIZE and IPV6_RECVFRAGSIZE from linux v4.10Szabolcs Nagy2017-11-051-0/+2
| | | | added in linux commit 70ecc24841326396a827deb55c3fefac582a729d
* add SCM_TIMESTAMPING_OPT_STATS and related TCP_ enums from linux v4.10Szabolcs Nagy2017-11-052-0/+11
| | | | | | | for tcp timestamp control messages, new in linux commit 1c885808e45601b2b6f68b30ac1d999e10b6f606 and export time measurements via tcp_info, added in linux commit efd90174167530c67a54273fd5d8369c87f9bd32
* fix use of memset without declaration in sched.h cpu set macrosRich Felker2017-09-281-0/+1
| | | | patch by Jörg Krause.
* move IPPORT_RESERVED from netdb.h to netinet/in.hRich Felker2017-08-292-2/+2
| | | | | it's in the reserved namespace for the latter, where it seems it was historically defined, and some programs expect to find it there.
* add _NL_LOCALE_NAME extension to nl_langinfoRich Felker2017-07-311-0/+6
| | | | | | | | | | | | | | | | | since setlocale(cat, NULL) is required to return the setting for the global locale, there is no standard mechanism to obtain the name of the currently active thread-local locale set by uselocale. this makes it impossible for application/library software to load appropriate translations, etc. unless using the gettext implementation provided by libc, which has privileged access to libc internals. to fill this gap, glibc introduced the _NL_LOCALE_NAME macro which can be used with nl_langinfo to obtain the name. GNU gettext/gnulib code already use this functionality on glibc, and can easily be adapted to make use of it on non-glibc systems if it's available; for other systems they poke at locale implementation internals, which we want to avoid. this patch provides a compatible interface to the one glibc introduced.
* remove useless declarations in string.hAlexander Monakov2017-07-041-2/+0
| | | | | The two functions str{,n}casecmp_l are specified to be declared in <strings.h> which is already included from <string.h> under _GNU_SOURCE.