XS Config uses pack to check ptrsize and ivsize, which yields host values
when running under miniperl.

--- a/ext/Config/Config_xs.PL
+++ b/ext/Config/Config_xs.PL
@@ -29,16 +29,6 @@
         unshift @INC, '../../lib', '../../lib/auto';
         $in_core = 1;
     }
-    my $ptrsize = length(pack('P',""));
-    my $ivsize =  length(pack('j',0));
-    die "unknown pointer size" if $ptrsize != 4 && $ptrsize != 8; #POSIX.pm not available
-    eval 'sub SPTR_MIN () { '.($ptrsize == 8 ? '-9223372036854775808' : '-2147483648').' } '.
-    'sub SPTR_MAX () { '.($ptrsize == 8 ? '0x7FFFFFFFFFFFFFFF' : '0x7FFFFFFF').' } '.
-    'sub IV_MIN () { '.($ivsize == 8 ? '-9223372036854775808' : '-2147483648').' } '.
-    'sub IV_MAX () { '.($ivsize == 8 ? '0x7FFFFFFFFFFFFFFF' : '0x7FFFFFFF').' } '.
-    'sub PTRSIZE () { '.$ptrsize.' } '.
-    'sub INLSIZE () { '.($ptrsize == 8 ? 13 : 5).' } '.
-    'sub BE () { '.((pack('N', 1) eq pack('L', 1))+0).'}';
 }
 use strict ;
 use Config ;
@@ -48,6 +38,18 @@
     require './regen/regen_lib.pl';
 }
 
+my $ivsize = $Config{'ivsize'};
+my $ptrsize = $Config{'ptrsize'};
+my $byteorder = $Config{'byteorder'};
+die "unknown pointer size" if $ptrsize != 4 && $ptrsize != 8; #POSIX.pm not available
+sub SPTR_MIN () { ($ptrsize == 8 ? -9223372036854775808 : -2147483648) };
+sub SPTR_MAX () { ($ptrsize == 8 ? 0x7FFFFFFFFFFFFFFF : 0x7FFFFFFF) };
+sub IV_MIN () { ($ivsize == 8 ? -9223372036854775808 : -2147483648) };
+sub IV_MAX () { ($ivsize == 8 ? 0x7FFFFFFFFFFFFFFF : 0x7FFFFFFF) };
+sub PTRSIZE () { $ptrsize };
+sub INLSIZE () { ($ptrsize == 8 ? 13 : 5) };
+sub BE () { ($byteorder == 0x4321 or $byteorder == 0x87654321) };
+
 ###########################################################################
 
 my $force = @ARGV ? $ARGV[0] eq '--force' : 0;
