musl/include
Rich Felker cdbbcfb8f5 fix dubious char signedness check in limits.h
commit 201995f382 introduced a hack
utilizing the signedness of character constants at the preprocessor
level to avoid depending on the gcc-specific __CHAR_UNSIGNED__ predef.
while this trick works on gcc and presumably other compilers being
used, it's not clear that the behavior it depends on is actually
conforming. C11 6.4.4.4 ¶10 defines character constants as having type
int, and 6.10.1 ¶4 defines preprocessor #if arithmetic to take place
in intmax_t or uintmax_t, depending on the signedness of the integer
operand types, and it is specified that "this includes interpreting
character constants".

if character literals had type char and just promoted to int, it would
be clear that when char is unsigned they should behave as uintmax_t at
the preprocessor level. however, as written the text of the standard
seems to require that character constants always behave as intmax_t,
corresponding to int, at the preprocessor level.

since there is a good deal of ambiguity about the correct behavior and
a risk that compilers will disagree or that an interpretation may
mandate a change in the behavior, do not rely on it for defining
CHAR_MIN and CHAR_MAX correctly. instead, use the signedness of the
value (as opposed to the type) of '\xff', which will be positive if
and only if plain char is unsigned. this behavior is clearly
specified, and the specific case '\xff' is even used in an example,
under 6.4.4.4 of the standard.
2018-08-28 13:54:50 -04:00
..
arpa fix endian errors in arpa/nameser.h due to failure to include endian.h 2017-12-14 23:36:47 -05:00
net net/if_arp.h: add ARPHRD_RAWIP from linux v4.14 2018-02-22 18:47:49 -05:00
netinet add ETH_P_PREAUTH ethertype from linux v4.17 2018-06-19 13:26:41 -04:00
netpacket update netpacket/packet.h to linux v4.3 2016-01-26 18:29:32 -05:00
scsi
sys move inclusion of linux headers for kd.h, soundcard.h, vt.h to bits 2018-07-20 01:06:41 -04:00
aio.h make all objects used with atomic operations volatile 2015-03-03 22:50:02 -05:00
alloca.h
alltypes.h.in explicitly use signed keyword to define intNN_t and derivative types 2018-03-12 20:04:59 -04:00
ar.h
assert.h restore _Noreturn to __assert_fail 2016-08-30 16:39:54 -04:00
byteswap.h
complex.h fix mismatched parens in CMPLX def for annex-g-conforming compilers 2015-11-02 21:44:57 -05:00
cpio.h
crypt.h
ctype.h add macro version of ctype.h isascii function 2015-06-06 18:16:22 +00:00
dirent.h add _DIRENT_HAVE_D_* macros to dirent.h 2018-01-12 14:26:59 -05:00
dlfcn.h
elf.h add missing m68k relocation types in elf.h 2018-06-12 17:02:21 -04:00
endian.h
err.h
errno.h remove attribute((const)) from pthread_self and errno location decls 2015-09-17 04:45:01 +00:00
fcntl.h add new fcntl.h macros from linux v4.13 2017-11-05 18:41:24 -05:00
features.h in public headers, don't assume pre-C99 compilers have __inline keyword 2016-12-16 23:12:32 -05:00
fenv.h
float.h fix FLT_ROUNDS regression in C++ applications 2015-03-23 11:26:51 -04:00
fmtmsg.h
fnmatch.h
ftw.h make brace placement in public header struct definitions consistent 2016-07-03 15:02:25 -04:00
getopt.h make brace placement in public header struct definitions consistent 2016-07-03 15:02:25 -04:00
glob.h fix macros for LFS *64_t types in sys/stat.h, sys/types.h, glob.h 2014-09-05 16:03:07 -04:00
grp.h fix various header namespace issues under feature-test-macro control 2016-10-20 17:20:01 -04:00
iconv.h
ifaddrs.h remove parameter names from public headers 2016-10-20 17:04:37 -04:00
inttypes.h
iso646.h
langinfo.h add _NL_LOCALE_NAME extension to nl_langinfo 2017-07-31 23:08:27 -04:00
lastlog.h
libgen.h
libintl.h add format argument attributes to gettext function prototypes 2015-09-15 20:30:36 +00:00
limits.h fix dubious char signedness check in limits.h 2018-08-28 13:54:50 -04:00
link.h generalize ELF hash table types not to assume 32-bit entries 2016-11-11 12:46:06 -05:00
locale.h
malloc.h add malloc_usable_size function and non-stub malloc.h 2014-08-25 22:47:27 -04:00
math.h fix FP_ILOGB0 and FP_ILOGBNAN definitions to be valid for use in #if 2018-08-22 19:11:58 -04:00
memory.h
mntent.h make brace placement in public header struct definitions consistent 2016-07-03 15:02:25 -04:00
monetary.h
mqueue.h
netdb.h move IPPORT_RESERVED from netdb.h to netinet/in.h 2017-08-29 20:50:48 -04:00
nl_types.h
paths.h
poll.h make brace placement in public header struct definitions consistent 2016-07-03 15:02:25 -04:00
pthread.h add limited pthread_setattr_default_np API to set stack size defaults 2016-11-08 12:45:03 -05:00
pty.h
pwd.h fix various header namespace issues under feature-test-macro control 2016-10-20 17:20:01 -04:00
regex.h
resolv.h don't claim support for resolv.h APIs that aren't supported 2016-11-07 11:55:53 -05:00
sched.h fix use of memset without declaration in sched.h cpu set macros 2017-09-28 12:57:06 -04:00
search.h
semaphore.h make all objects used with atomic operations volatile 2015-03-03 22:50:02 -05:00
setjmp.h remove macro definition of longjmp from setjmp.h 2015-04-01 20:35:03 -04:00
shadow.h
signal.h remove spurious const keyword in sigqueue declaration 2018-03-10 18:19:41 -05:00
spawn.h add no-op POSIX_SPAWN_USEVFORK to spawn.h 2017-04-22 20:40:09 -04:00
stdalign.h add static_assert and hide noreturn, alignas, alignof from C++ 2014-08-27 02:55:54 -04:00
stdarg.h remove legacy i386 fallback stdarg implementation and framework 2016-12-15 12:18:24 -05:00
stdbool.h
stdc-predef.h add stdc-predef.h for library-level predefined macros 2016-07-03 20:03:30 -04:00
stddef.h add max_align_t definition for C11 and C++11 2014-08-20 17:20:14 -04:00
stdint.h fix signedness of UINT32_MAX and UINT64_MAX at the preprocessor level 2014-12-21 02:30:29 -05:00
stdio_ext.h
stdio.h fix aliasing violations in fgetpos/fsetpos 2018-02-24 16:45:33 -05:00
stdlib.h remove parameter names from public headers 2016-10-20 17:04:37 -04:00
stdnoreturn.h add static_assert and hide noreturn, alignas, alignof from C++ 2014-08-27 02:55:54 -04:00
string.h add explicit_bzero implementation 2018-06-26 16:59:12 -04:00
strings.h implement ffsl and ffsll functions 2014-07-31 02:38:23 -04:00
stropts.h
syscall.h
sysexits.h
syslog.h
tar.h fix default feature profile in tar.h 2018-03-28 15:53:45 -04:00
termios.h
tgmath.h
threads.h remove parameter names from public headers 2016-10-20 17:04:37 -04:00
time.h fix various header namespace issues under feature-test-macro control 2016-10-20 17:20:01 -04:00
uchar.h uchar.h: define char16_t and char32_t for old c++ 2018-07-17 22:24:03 -04:00
ucontext.h
ulimit.h
unistd.h fix minor namespace issue in unistd.h 2018-03-10 18:19:40 -05:00
utime.h make brace placement in public header struct definitions consistent 2016-07-03 15:02:25 -04:00
utmp.h add declarations for utmpname/utmpxname to appropriate headers 2016-02-12 09:58:50 -05:00
utmpx.h fix typo in utmpx.h 2016-10-20 16:55:32 -04:00
values.h
wait.h
wchar.h remove parameter names from public headers 2016-10-20 17:04:37 -04:00
wctype.h improve iswdigit macro to diagnose errors 2015-05-02 21:19:08 -04:00
wordexp.h make brace placement in public header typedef'd structs consistent 2016-07-03 16:19:28 -04:00