- my @s = (8, 16, 32);
- push @s, 64 unless $^O eq 'MSWin32';
- for (@s) {
- my $size = int($Config{'u' . $_ . 'size'} || 0);
- $unit = $_ if $size && $size <= $align;
+ my $align = $Config{alignbytes} || 1;
+ my @bits = (8, 16, 32);
+ push @bits, 64 unless $^O eq 'MSWin32';
+ for my $bits (@bits) {
+ my $size = $Config{"u${bits}size"};
+ next unless $size;
+ $unit = { bits => $bits, size => $size } if $size && $size <= $align;