These patches contains some fixes for the type specific types: * signedness of plain char when defaulting to unsigned * long double * predefine for INT128 * int32_t & char32_t as well as simplifying and moving around some code about these arch specifities. Changes since v1: * int32_t & char32_t: use Linux convention by default * predefine __SIZEOF_INT128__ only where supported * avoid #ifdef for OS-specifics * fix which platforms support 128-bit long double --- Luc Van Oostenryck (12): arch: fix the signedness of plain chars arch: simplify i386/x86-64 specifics arch: keep BSD & Darwin specifics with i386/x86-64 specifics arch: do not needlessly set bitness on 32-bit archs arch: remove impossible cases with 64-bit arch not being lp64 arch: char32_t should be the same as uint32_t, not uint arch: (almost) all platforms simply use int for int32 arch: add predefines for INT128 only on supported archs arch: use a variable for the OS arch: fix wchar_t & wint_t on SunOS/Solaris arch: sparc32 on SunOS/Solaris uses 128-bit long doubles arch: add note for 128-bit long double on mips64 lib.c | 41 +++++++++-------- lib.h | 1 + machine.h | 26 +++++++++-- target.c | 76 ++++++++++++++++++------------- validation/char-signed-native.c | 9 ++++ validation/char-unsigned-native.c | 11 +++++ validation/char-unsigned.c | 2 +- validation/preprocessor/predef.c | 2 + 8 files changed, 114 insertions(+), 54 deletions(-) create mode 100644 validation/char-signed-native.c create mode 100644 validation/char-unsigned-native.c base-commit: fd3528aa0409874386610ce63bb647fff8312fd9 -- 2.24.0