- 31 1月, 2015 1 次提交
-
-
由 Trutz Behn 提交于
the definitions are generic for all kernel archs. exposure of these macros now only occurs on the same feature test as for the function accepting them, which is believed to be more correct.
-
- 23 12月, 2014 1 次提交
-
-
由 Szabolcs Nagy 提交于
PR_SET_MM_MAP was introduced as a subcommand for PR_SET_MM in linux v3.18 commit f606b77f1a9e362451aca8f81d8f36a3a112139e the associated struct type is replicated in sys/prctl.h using libc types. example usage: struct prctl_mm_map *p; ... prctl(PR_SET_MM, PR_SET_MM_MAP, p, sizeof *p); the kernel side supported struct size may be queried with the PR_SET_MM_MAP_SIZE subcommand.
-
- 21 12月, 2014 3 次提交
-
-
由 Rich Felker 提交于
-
由 Rich Felker 提交于
per the rules for hexadecimal integer constants, the previous definitions were correctly treated as having unsigned type except possibly when used in preprocessor conditionals, where all artithmetic takes place as intmax_t or uintmax_t. the explicit 'u' suffix ensures that they are treated as unsigned in all contexts.
-
由 Felix Janda 提交于
-
- 18 12月, 2014 5 次提交
-
-
由 Rich Felker 提交于
since wint_t is unsigned, WINT_MIN needs to expand to an unsigned zero.
-
由 Rich Felker 提交于
it's unclear whether compilers which provide pure imaginary types might produce a pure imaginary expression for 1.0fi. using 0.0f+1.0fi ensures that the result is explicitly complex and makes this obvious to human readers too.
-
由 Rich Felker 提交于
this change is not necessary but helps diagnose invalid code. based on patch by Jens Gustedt.
-
由 Rich Felker 提交于
based on patches by Jens Gustedt. these macros need to be usable in static initializers, and the old definitions were not. there is no portable way to provide correct definitions for these macros unless the compiler supports pure imaginary types. a portable definition is provided for this case even though there are presently no compilers that can use it. gcc and compatible compilers provide a builtin function that can be used, but clang fails to support this and instead requires a construct which is a constraint violation and which is only a constant expression as a clang-specific extension. since these macros are a namespace violation in pre-C11 profiles, and since no known pre-C11 compilers provide any way to define them correctly anyway, the definitions have been made conditional on C11.
-
由 Rich Felker 提交于
based on patch by Timo Teräs, with some corrections to bounds checking code and other minor changes. while they are borderline scope creep, the functions added are fairly small and are roughly the minimum code needed to use the results of the res_query API without re-implementing error-prone DNS packet parsing, and they are used in practice by some kerberos related software and possibly other things. at this time there is no intent to implement further nameser.h API functions.
-
- 10 12月, 2014 1 次提交
-
-
由 Bobby Bingham 提交于
C++ programmers typically expect something like "::function(x,y)" to work and may be surprised to find that "(::function)(x,y)" is actually required due to the headers declaring a macro version of some standard functions. We already omit function-like macros for C++ in most cases where there is a real function available. This commit extends this to the remaining function-like macros which have a real function version.
-
- 15 10月, 2014 1 次提交
-
-
由 Rich Felker 提交于
based on patch by Sergey Dmitrouk.
-
- 14 10月, 2014 1 次提交
-
-
由 Rich Felker 提交于
-
- 08 10月, 2014 2 次提交
-
-
由 Szabolcs Nagy 提交于
new in linux v3.17 commit 40e041a2c858b3caefc757e26cb85bfceae5062b sealing allows some operations to be blocked on a file which makes file access safer when fds are shared between processes (only supported for shared mem fds currently) flags: F_SEAL_SEAL prevents further sealing F_SEAL_SHRINK prevents file from shrinking F_SEAL_GROW prevents file from growing F_SEAL_WRITE prevents writes fcntl commands: F_GET_SEALS get the current seal flags F_ADD_SEALS add new seal flags
-
由 Szabolcs Nagy 提交于
added in linux v3.17 commit 753a2ad54ef45e3417a9d49537c2b42b04a2e1be enables automatic flow label generation on transmit
-
- 11 9月, 2014 3 次提交
-
-
由 Rich Felker 提交于
as a result of commit ab8f6a6e, this definition is now equivalent to the actual "default profile" which appears immediately below in features.h, and which defines both _BSD_SOURCE and _XOPEN_SOURCE. the intent of providing a _DEFAULT_SOURCE, which glibc also now provides, is to give applications a way to "get back" the default feature profile when it was lost either by compiler flags that inhibit it (such as -std=c99) or by library-provided predefined macros (such as -D_POSIX_C_SOURCE=200809L) which may inhibit exposure of features that were otherwise visible by default and which the application may need. without _DEFAULT_SOURCE, the application had encode knowledge of a particular libc's defaults, and such knowledge was fragile and subject to bitrot. eventually the names _GNU_SOURCE and _BSD_SOURCE should be phased out in favor of the more-descriptive and more-accurate _ALL_SOURCE and _DEFAULT_SOURCE, leaving the old names as aliases but using the new ones internally. however this is a more invasive change that would require extensive regression testing, so it is deferred.
-
由 Rich Felker 提交于
this could be an error if _GNU_SOURCE was already defined differently by the application.
-
由 Rich Felker 提交于
the vast majority of these failures seem to have been oversights at the time _BSD_SOURCE was added, or perhaps shortly afterward. the one which may have had some reason behind it is omission of setpgrp from the _BSD_SOURCE feature profile, since the standard setpgrp interface conflicts with a legacy (pre-POSIX) BSD interface by the same name. however, such omission is not aligned with our general policy in this area (for example, handling of similar _GNU_SOURCE cases) and should not be preserved.
-
- 08 9月, 2014 1 次提交
-
-
由 Szabolcs Nagy 提交于
open file description locks are inherited across fork and only auto dropped after the last fd of the file description is closed, they can be used to synchronize between threads that open separate file descriptions for the same file. new in linux 3.15 commit 0d3f7a2dd2f5cf9642982515e020c1aee2cf7af6
-
- 07 9月, 2014 2 次提交
-
-
由 Rich Felker 提交于
based on patch by Jens Gustedt. mtx_t and cnd_t are defined in such a way that they are formally "compatible types" with pthread_mutex_t and pthread_cond_t, respectively, when accessed from a different translation unit. this makes it possible to implement the C11 functions using the pthread functions (which will dereference them with the pthread types) without having to use the same types, which would necessitate either namespace violations (exposing pthread type names in threads.h) or incompatible changes to the C++ name mangling ABI for the pthread types. for the rest of the types, things are much simpler; using identical types is possible without any namespace considerations.
-
由 Rich Felker 提交于
based on patch by Jens Gustedt for inclusion with C11 threads implementation, but committed separately since it's independent of threads.
-
- 06 9月, 2014 1 次提交
-
-
由 Szabolcs Nagy 提交于
there is no blksize64_t (blksize_t is always long) but there are fsblkcnt64_t and fsfilcnt64_t types in sys/stat.h and sys/types.h. and glob.h missed glob64_t.
-
- 27 8月, 2014 2 次提交
-
-
由 Szabolcs Nagy 提交于
add static_assert and protect the other new C11 keyword macros with #ifndef __cplusplus so they don't conflict with C++ keywords.
-
由 Szabolcs Nagy 提交于
C11 introduced *_DECIMAL_DIG and *_HAS_SUBNORM macros.
-
- 26 8月, 2014 1 次提交
-
-
由 Rich Felker 提交于
this function is needed for some important practical applications of ABI compatibility, and may be useful for supporting some non-portable software at the source level too. I was hesitant to add a function which imposes any constraints on malloc internals; however, it turns out that any malloc implementation which has realloc must already have an efficient way to determine the size of existing allocations, so no additional constraint is imposed. for now, some internal malloc definitions are duplicated in the new source file. if/when malloc is refactored to put them in a shared internal header file, these could be removed. since malloc_usable_size is conventionally declared in malloc.h, the empty stub version of this file was no longer suitable. it's updated to provide the standard allocator functions, nonstandard ones (even if stdlib.h would not expose them based on the feature test macros in effect), and any malloc-extension functions provided (currently, only malloc_usable_size).
-
- 21 8月, 2014 1 次提交
-
-
由 Rich Felker 提交于
unfortunately this needs to be able to vary by arch, because of a huge mess GCC made: the GCC definition, which became the ABI, depends on quirks in GCC's definition of __alignof__, which does not match the formal alignment of the type. GCC's __alignof__ unexpectedly exposes the an implementation detail, its "preferred alignment" for the type, rather than the formal/ABI alignment of the type, which it only actually uses in structures. on most archs the two values are the same, but on some (at least i386) the preferred alignment is greater than the ABI alignment. I considered using _Alignas(8) unconditionally, but on at least one arch (or1k), the alignment of max_align_t with GCC's definition is only 4 (even the "preferred alignment" for these types is only 4).
-
- 13 8月, 2014 2 次提交
-
-
由 Szabolcs Nagy 提交于
-
由 Szabolcs Nagy 提交于
isspace can be a bottleneck in a simple parser, inlining it gives slightly smaller and faster code src/locale/pleval.o already had this optimization, the size change for other libc functions for i386 is src/internal/intscan.o 2134 2118 -16 src/locale/dcngettext.o 1562 1552 -10 src/network/res_msend.o 1961 1940 -21 src/network/lookup_name.o 2627 2608 -19 src/network/getnameinfo.o 1814 1811 -3 src/network/lookup_serv.o 643 624 -19 src/stdio/vfscanf.o 2675 2663 -12 src/stdlib/atoll.o 117 107 -10 src/stdlib/atoi.o 95 91 -4 src/stdlib/atol.o 95 91 -4 src/time/strptime.o 1515 1503 -12 (TOTALS) 432451 432321 -130
-
- 08 8月, 2014 1 次提交
-
-
由 Clément Vasseur 提交于
glibc declares clearenv under _BSD_SOURCE, some applications might depend on it being available this way.
-
- 31 7月, 2014 2 次提交
-
-
由 Rich Felker 提交于
per the resolution of Austin Group issue #617, these are accepted for XSI option in POSIX future and thus I'm treating them as standard functions.
-
由 Rich Felker 提交于
per the standard, ffs is XSI shaded, whereas the other functions in this header are in the base.
-
- 21 7月, 2014 3 次提交
-
-
由 Szabolcs Nagy 提交于
they can be used to set or query if transparent huge pages are disabled. introduced in linux 3.15 commit a0715cc22601e8830ace98366c0c2bd8da52af52
-
由 Szabolcs Nagy 提交于
used by monitoring applications such as ss from iproute2 introduced in linux 3.15 commit 977cb0ecf82eb6d15562573c31edebf90db35163
-
由 Szabolcs Nagy 提交于
ETH_P_80221 is ethertype for IEEE Std 802.21 - Media Independent Handover Protocol introduced in linux 3.15 commit b62faf3cdc875a1ac5a10696cf6ea0b12bab1596 ETH_P_LOOPBACK is the correct packet type for loopback in IEEE 802.3* introduced in linux 3.15 commit 61ccbb684421d374fdcd7cf5d6b024b06f03ce4e some defines were shuffled to be in ascending order and match the kernel header
-
- 20 7月, 2014 1 次提交
-
-
由 Brent Cook 提交于
this function provides a way for third-party library code to use the same logic that's used internally in libc for suppressing untrusted input/state (e.g. the environment) when the application is running with privleges elevated by the setuid or setgid bit or some other mechanism. its semantics are intended to match the openbsd function by the same name. there was some question as to whether this function is necessary: getauxval(AT_SECURE) was proposed as an alternative. however, this has several drawbacks. the most obvious is that it asks programmers to be aware of an implementation detail of ELF-based systems (the aux vector) rather than simply the semantic predicate to be checked. and trying to write a safe, reliable version of issetugid in terms of getauxval is difficult. for example, early versions of the glibc getauxval did not report ENOENT, which could lead to false negatives if AT_SECURE was not present in the aux vector (this could probably only happen when running on non-linux kernels under linux emulation, since glibc does not support linux versions old enough to lack AT_SECURE). as for musl, getauxval has always properly reported errors, but prior to commit 7bece9c2, the musl implementation did not emulate AT_SECURE if missing, which would result in a false positive. since musl actually does partially support kernels that lack AT_SECURE, this was problematic. the intent is that library authors will use issetugid if its availability is detected at build time, and only fall back to the unreliable alternatives on systems that lack it. patch by Brent Cook. commit message/rationale by Rich Felker.
-
- 19 7月, 2014 1 次提交
-
-
由 Stefan Kristiansson 提交于
With the exception of a fenv implementation, the port is fully featured. The port has been tested in or1ksim, the golden reference functional simulator for OpenRISC 1000. It passes all libc-test tests (except the math tests that requires a fenv implementation). The port assumes an or1k implementation that has support for atomic instructions (l.lwa/l.swa). Although it passes all the libc-test tests, the port is still in an experimental state, and has yet experienced very little 'real-world' use.
-
- 22 6月, 2014 1 次提交
-
-
由 Rich Felker 提交于
contributed by Isaac Dunham. this seems to be the last interface that was missing for complete POSIX 2008 base + XSI coverage.
-
- 21 6月, 2014 1 次提交
-
-
由 Rich Felker 提交于
this issue affected the prioritynames and facilitynames arrays which are only provided when requested (usually by syslogd implementations) and which are presently defined as compound literals. the aliasing violation seems to have been introduced as a workaround for bad behavior by gcc's -Wwrite-strings option, but it caused compilers to completely optimize out the contents of prioritynames and facilitynames since, under many usage cases, the aliasing rules prove that the contents are never accessed.
-
- 20 6月, 2014 1 次提交
-
-
由 Rich Felker 提交于
these are not pure syscall wrappers because they have to work around kernel API bugs on 64-bit archs. the workarounds could probably be made somewhat more efficient, but at the cost of more complexity. this may be revisited later.
-
- 04 6月, 2014 1 次提交
-
-
由 Rich Felker 提交于
for all address types, a scope_id specified as a decimal value is accepted. for addresses with link-local scope, a string containing the interface name is also accepted. some changes are made to error handling to avoid unwanted fallbacks in the case where the scope_id is invalid: if an earlier name lookup backend fails with an error rather than simply "0 results", this failure now suppresses any later attempts with other backends. in getnameinfo, a light "itoa" type function is added for generating decimal scope_id results, and decimal port strings for services are also generated using this function now so as not to pull in the dependency on snprintf. in netdb.h, a definition for the NI_NUMERICSCOPE flag is added. this is required by POSIX (it was previously missing) and needed to allow callers to suppress interface-name lookups.
-