Package: autoconf
Version: 2.69-1
Severity: grave
Tags: lfs

The file: ./lib/autoconf/specific.m4 contained basically the following C code:

[...]
#include <sys/types.h>

int main(int argc, char **argv)
{
  /* Cause a compile-time error if off_t is smaller than 64 bits */
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
  int off_t_is_large[ (LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T
% 2147483647 == 1) ? 1 : -1 ];
  return 0;
}
[...]

this is undefined behavior (clang fails as expected, but not gcc 4.6
and above). Instead it should (maybe?) read as:

[...]
#include <sys/types.h>

int main(int argc, char **argv)
{
  /* Cause a compile-time error if off_t is smaller than 64 bits */
#define LARGE_OFF_T (((off_t) (1LL << 62)) - 1 + ((off_t) (1LL << 62)))
  int off_t_is_large[ (LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T
% 2147483647 == 1) ? 1 : -1 ];
  return 0;
}
[...]

references:
https://lists.debian.org/debian-devel/2014/03/msg00500.html
http://stackoverflow.com/questions/22664658/finding-off-t-size


-- 
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to