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.                                    

Reply via email to