Bug#775940: Configure: determine sizeof(int) without running host arch code during cross building

Niko Tyni ntyni at debian.org
Fri Apr 17 19:27:44 UTC 2015


On Wed, Jan 21, 2015 at 08:00:20PM +0100, Helmut Grohne wrote:
> Package: src:perl
> Version: 5.20.1-4
> Tags: patch
> User: helmutg at debian.org
> Usertags: rebootstrap

> A major issue with cross building perl is that it tries to run host arch
> code during configure. In quite a few cases this is completely
> unnecessary. Consider its check for sizeof(int) for instance. As we know
> from autotools, sizeof values can be determined by bisecting using
> compile-only tests. I am therefore attaching a patch that turns the
> compile&run test for sizeof(int) into a compile-only test.

Thanks, and sorry for the delay. Trying this out, I see (on amd64)
  Checking to see how big your integers are...
  try.c: In function ‘main’:
  try.c:7:13: error: size of array ‘test’ is negative
    static int test[1 - 2 * (sizeof(int) >= 1)];
               ^
  try.c: In function ‘main’:
  try.c:7:13: error: size of array ‘test’ is negative
    static int test[1 - 2 * (sizeof(int) >= 2)];
               ^
  try.c: In function ‘main’:
  try.c:7:13: error: size of array ‘test’ is negative
    static int test[1 - 2 * (sizeof(int) >= 4)];
               ^
I assume that's the expected error for too small size probes, and
a finished implementation would just redirect those to /dev/null ?

I'll forward this upstream, but please note that they're currently
frozen for a 5.22 release in May.
-- 
Niko Tyni   ntyni at debian.org




More information about the Perl-maintainers mailing list