]> git.vpit.fr Git - perl/modules/Scalar-Vec-Util.git/commitdiff
Test for little endianess more reliably
authorVincent Pit <vince@profvince.com>
Sat, 16 May 2009 08:19:40 +0000 (10:19 +0200)
committerVincent Pit <vince@profvince.com>
Sat, 16 May 2009 08:19:40 +0000 (10:19 +0200)
Makefile.PL

index 6f4e066506346e41221cd9c6e37449e1bbecda24..ec065d3ef4a78ab5e5380ed44a08b1c3d5e7cab7 100644 (file)
@@ -37,8 +37,19 @@ if ($cc) {
 
 my @DEFINES;
 
+sub is_little_endian {
+ my $order = $Config{byteorder};
+ return 0 unless $order;
+ my $len = length $order;
+ if ($len > 8) {
+  $order = substr $order, 0, 8;
+  $len   = 8;
+ }
+ return $order eq (join '', 1 .. $len);
+}
+
 my $unit = { bits => 8, size => 1 };
-if (unpack("h*", pack("s", 0x1234)) != 4321) {
+if (not is_little_endian()) {
  print "Forcing unit size of 8 on non-little-endian systems.\n";
 } else {
  print "Checking unit size in bits... ";