Hi, there is a small problem with SSIZE_MAX, because it is not always defined, especially not in gcc/glimits.h, which seems to be the fall-back if the target fails to have a working limits.h.
When I create a cross-compiler for --target=arm-linux-gnueabihf, the working limits.h is overwritten by fix-includes with a copy of gcc/glimits.h. Probably because it is not possible to compile the target headers with the build compiler and produce meaningful test results. However because gcc/glimits.h does not define SSIZE_MAX the following build fails with In file included from ../../gcc-4.9-20131215/gcc/config/host-linux.c:21:0: ../../gcc-4.9-20131215/gcc/config/host-linux.c: In function 'int linux_gt_pch_use_address(void*, size_t, int, size_t)': ../../gcc-4.9-20131215/gcc/config/host-linux.c:215:43: error: 'SSIZE_MAX' was not declared in this scope nbytes = read (fd, base, MIN (size, SSIZE_MAX)); ^ ../../gcc-4.9-20131215/gcc/system.h:351:26: note: in definition of macro 'MIN' #define MIN(X,Y) ((X) < (Y) ? (X) : (Y)) ^ The most simple way to fix this would be to not use SSIZE_MAX here. Boot-Strapped and regression-tested on X86_64. Plus cross-build for arm-linux-gnueabihf. Ok for trunk? Thanks Bernd.