Hello, Please find below the message by Dragoslav Sicarov with a patch to fix the tests failures reported in the same message,
The file attached is the patch by Dragoslav Sicarov.
Cheers,
Anibal
On Sun, 2013-12-29 15:13:16 +0000, Dragoslav Sicarov wrote:
> Package: grib-api
> Version: 1.10.4-3
> Tags: sid
>
> Hi all,
>
> FTBFS: 21 of 38 tests fail when trying to build package from source on
> mips. Part of build log has been attached.
>
> The root cause of failing tests for mips is in function
> grib_encode_unsigned_long() that is used for writing into grib message
> buffer (function is implemented differently for big-endian and
> little-endian architectures).
>
> On big-endian architectures, function uses shift operations, where in
> some corner-case situations left operand (which is of type unsigned
> long; size of long equals 4 bytes for 32bit system) is shifted right
> by 32 bits.
>
> According to C standard, if the value of the right operand of shift
> operation is negative, or is greater than or equal to the width of the
> left operand, the behaviour is undefined.
>
> On 32-bit mips architecture shift operations by a variable number of
> bits are translated to/use 'srlv' and 'sllv' instructions which shift
> left operand by (right_operand mod 32) bits. In case of shifting by
> 32 bits, this results in left operand being unchanged. However, in
> order for this package to function properly a result of 0 is expected.
>
> Proposed patch fixes these corner-cases by setting the result of shift
> operation to 0 if right operand is greater than or equal to size of
> long (actually, no shifting is performed, the result is set to zero).
>
> Patch has been attached.
> --- a/src/grib_bits.c
> +++ b/src/grib_bits.c
> @@ -24,7 +24,7 @@
> long GRIB_MASK = -1; /* Mask of sword bits */
>
> # define VALUE(p,q,b) \
> - (((b)==max_nbits ? GRIB_MASK : ~(GRIB_MASK<<(b))) &
> ((p)>>(max_nbits-((q)+(b)))))
> + (((b)==max_nbits ? GRIB_MASK : ~(GRIB_MASK<<(b))) & (((max_nbits-((q)+(b)))
> >= max_nbits) ? 0 : ((p)>>(max_nbits-((q)+(b))))))
>
> # define MASKVALUE(q,b) \
> ((b)==max_nbits ? GRIB_MASK : (~(GRIB_MASK<<(b))<<(max_nbits-((q)+(b)))))
> --- a/src/grib_bits_fast_big_endian.c
> +++ b/src/grib_bits_fast_big_endian.c
> @@ -62,9 +62,16 @@
> countOfLeftmostBits = max_nbits - startBit;
> startBit = max_nbits - remainingBits;
> remainingBits -= countOfLeftmostBits;
> - destination[nextWord] =
> - ((destination[nextWord] >> countOfLeftmostBits) << countOfLeftmostBits)
> - + (VALUE(val,startBit,countOfLeftmostBits));
> + if (countOfLeftmostBits < max_nbits)
> + {
> + destination[nextWord] =
> + ((destination[nextWord] >> countOfLeftmostBits) <<
> countOfLeftmostBits)
> + + (VALUE(val,startBit,countOfLeftmostBits));
> + }
> + else
> + {
> + destination[nextWord] = (VALUE(val,startBit,countOfLeftmostBits));
> + }
> startBit = 0;
> nextWord++;
> }
> Making check in tests
> make[2]: Entering directory `/??PKGBUILDDIR??/tests'
> make check-TESTS
> make[3]: Entering directory `/??PKGBUILDDIR??/tests'
>
> TEST: ./definitions.sh
> PASS: definitions.sh
>
> TEST: ./ieee.sh
> PASS: ieee.sh
>
> TEST: ./grib1to2.sh
> FAIL: grib1to2.sh
>
> TEST: ./grib2to1.sh
> FAIL: grib2to1.sh
>
> TEST: ./badgrib.sh
> PASS: badgrib.sh
>
> TEST: ./ls.sh
> FAIL: ls.sh
>
> TEST: ./convert.sh
> Invalid grib message(s) found in /??PKGBUILDDIR??/data/out.grib2
> FAIL: convert.sh
>
> TEST: ./filter.sh
> GRIB_API ERROR : Message is too large for the current architecture
> FAIL: filter.sh
>
> TEST: ./multi.sh
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 7494-7494
> over message boundary (3747)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 119278-119278
> over message boundary (59639)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 193150-193150
> over message boundary (96575)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 191834-191834
> over message boundary (95917)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 195092-195092
> over message boundary (97546)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 193926-193926
> over message boundary (96963)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 195560-195560
> over message boundary (97780)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 194616-194616
> over message boundary (97308)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 195440-195440
> over message boundary (97720)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 194772-194772
> over message boundary (97386)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 196066-196066
> over message boundary (98033)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 194430-194430
> over message boundary (97215)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 197412-197412
> over message boundary (98706)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 194880-194880
> over message boundary (97440)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 199542-199542
> over message boundary (99771)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 196902-196902
> over message boundary (98451)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 200202-200202
> over message boundary (100101)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 197258-197258
> over message boundary (98629)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 200008-200008
> over message boundary (100004)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 196896-196896
> over message boundary (98448)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 201242-201242
> over message boundary (100621)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 198372-198372
> over message boundary (99186)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 197716-197716
> over message boundary (98858)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 195034-195034
> over message boundary (97517)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 198362-198362
> over message boundary (99181)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 194932-194932
> over message boundary (97466)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 200802-200802
> over message boundary (100401)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 198614-198614
> over message boundary (99307)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 198566-198566
> over message boundary (99283)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 196920-196920
> over message boundary (98460)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 204564-204564
> over message boundary (102282)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 202982-202982
> over message boundary (101491)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 201748-201748
> over message boundary (100874)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 198722-198722
> over message boundary (99361)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 202698-202698
> over message boundary (101349)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 200584-200584
> over message boundary (100292)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 195584-195584
> over message boundary (97792)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 193676-193676
> over message boundary (96838)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 183778-183778
> over message boundary (91889)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 182186-182186
> over message boundary (91093)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 169128-169128
> over message boundary (84564)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 166494-166494
> over message boundary (83247)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 160512-160512
> over message boundary (80256)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 156488-156488
> over message boundary (78244)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 153212-153212
> over message boundary (76606)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 149744-149744
> over message boundary (74872)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 148080-148080
> over message boundary (74040)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 145326-145326
> over message boundary (72663)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 140628-140628
> over message boundary (70314)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 138610-138610
> over message boundary (69305)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 142890-142890
> over message boundary (71445)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 139762-139762
> over message boundary (69881)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 141374-141374
> over message boundary (70687)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 137144-137144
> over message boundary (68572)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 180936-180936
> over message boundary (90468)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 150002-150002
> over message boundary (75001)
> GRIB_API ERROR : Creating ()_if0x57a020 of section at offset 7494-7494
> over message boundary (3747)
> GRIB_API ERROR : Creating ()_if0x57a020 of section at offset 119278-119278
> over message boundary (59639)
> GRIB_API ERROR : Creating ()_if0x57a020 of section at offset 193150-193150
> over message boundary (96575)
> GRIB_API ERROR : Creating ()_if0x57a020 of section at offset 191834-191834
> over message boundary (95917)
> GRIB_API ERROR : Creating ()_if0x57a020 of section at offset 195092-195092
> over message boundary (97546)
> GRIB_API ERROR : Creating ()_if0x57a020 of section at offset 193926-193926
> over message boundary (96963)
> GRIB_API ERROR : Creating ()_if0x57a020 of section at offset 195560-195560
> over message boundary (97780)
> GRIB_API ERROR : Creating ()_if0x57a020 of section at offset 194616-194616
> over message boundary (97308)
> GRIB_API ERROR : Creating ()_if0x57a020 of section at offset 195440-195440
> over message boundary (97720)
> GRIB_API ERROR : Creating ()_if0x57a020 of section at offset 194772-194772
> over message boundary (97386)
> GRIB_API ERROR : Creating ()_if0x57a020 of section at offset 196066-196066
> over message boundary (98033)
> GRIB_API ERROR : Creating ()_if0x57a020 of section at offset 194430-194430
> over message boundary (97215)
> GRIB_API ERROR : Creating ()_if0x57a020 of section at offset 197412-197412
> over message boundary (98706)
> GRIB_API ERROR : Creating ()_if0x57a020 of section at offset 194880-194880
> over message boundary (97440)
> GRIB_API ERROR : Creating ()_if0x57a020 of section at offset 199542-199542
> over message boundary (99771)
> GRIB_API ERROR : Creating ()_if0x57a020 of section at offset 196902-196902
> over message boundary (98451)
> GRIB_API ERROR : Creating ()_if0x57a020 of section at offset 200202-200202
> over message boundary (100101)
> GRIB_API ERROR : Creating ()_if0x57a020 of section at offset 197258-197258
> over message boundary (98629)
> GRIB_API ERROR : Creating ()_if0x57a020 of section at offset 200008-200008
> over message boundary (100004)
> GRIB_API ERROR : Creating ()_if0x57a020 of section at offset 196896-196896
> over message boundary (98448)
> GRIB_API ERROR : Creating ()_if0x57a020 of section at offset 201242-201242
> over message boundary (100621)
> GRIB_API ERROR : Creating ()_if0x57a020 of section at offset 198372-198372
> over message boundary (99186)
> Segmentation fault
> FAIL: multi.sh
>
> TEST: ./budg.sh
> PASS: budg.sh
>
> TEST: ./gridType.sh
> PASS: gridType.sh
>
> TEST: ./concept.sh
> GRIB_API ERROR : Creating ()_if0x57b6e0 of section at offset 16612-16612
> over message boundary (8306)
> GRIB_API ERROR : Creating ()_if0x579148 of section at offset 81052-81052
> over message boundary (40526)
> GRIB_API ERROR : Creating ()_if0x5795e8 of section at offset 2352-2352
> over message boundary (1176)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 7494-7494
> over message boundary (3747)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 119278-119278
> over message boundary (59639)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 193150-193150
> over message boundary (96575)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 191834-191834
> over message boundary (95917)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 195092-195092
> over message boundary (97546)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 193926-193926
> over message boundary (96963)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 195560-195560
> over message boundary (97780)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 194616-194616
> over message boundary (97308)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 195440-195440
> over message boundary (97720)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 194772-194772
> over message boundary (97386)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 196066-196066
> over message boundary (98033)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 194430-194430
> over message boundary (97215)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 197412-197412
> over message boundary (98706)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 194880-194880
> over message boundary (97440)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 199542-199542
> over message boundary (99771)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 196902-196902
> over message boundary (98451)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 200202-200202
> over message boundary (100101)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 197258-197258
> over message boundary (98629)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 200008-200008
> over message boundary (100004)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 196896-196896
> over message boundary (98448)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 201242-201242
> over message boundary (100621)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 198372-198372
> over message boundary (99186)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 197716-197716
> over message boundary (98858)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 195034-195034
> over message boundary (97517)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 198362-198362
> over message boundary (99181)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 194932-194932
> over message boundary (97466)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 200802-200802
> over message boundary (100401)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 198614-198614
> over message boundary (99307)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 198566-198566
> over message boundary (99283)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 196920-196920
> over message boundary (98460)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 204564-204564
> over message boundary (102282)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 202982-202982
> over message boundary (101491)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 201748-201748
> over message boundary (100874)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 198722-198722
> over message boundary (99361)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 202698-202698
> over message boundary (101349)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 200584-200584
> over message boundary (100292)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 195584-195584
> over message boundary (97792)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 193676-193676
> over message boundary (96838)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 183778-183778
> over message boundary (91889)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 182186-182186
> over message boundary (91093)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 169128-169128
> over message boundary (84564)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 166494-166494
> over message boundary (83247)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 160512-160512
> over message boundary (80256)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 156488-156488
> over message boundary (78244)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 153212-153212
> over message boundary (76606)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 149744-149744
> over message boundary (74872)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 148080-148080
> over message boundary (74040)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 145326-145326
> over message boundary (72663)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 140628-140628
> over message boundary (70314)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 138610-138610
> over message boundary (69305)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 142890-142890
> over message boundary (71445)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 139762-139762
> over message boundary (69881)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 141374-141374
> over message boundary (70687)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 137144-137144
> over message boundary (68572)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 180936-180936
> over message boundary (90468)
> GRIB_API ERROR : Creating ()_if0x579ff0 of section at offset 150002-150002
> over message boundary (75001)
> GRIB_API ERROR : Creating ()_if0x57ed70 of section at offset 2358-2358
> over message boundary (1179)
> GRIB_API ERROR : Creating ()_if0x57ed70 of section at offset 2358-2358
> over message boundary (1179)
> GRIB_API ERROR : Creating ()_if0x57ed70 of section at offset 2358-2358
> over message boundary (1179)
> GRIB_API ERROR : Creating ()_if0x57ed70 of section at offset 2358-2358
> over message boundary (1179)
> GRIB_API ERROR : Creating ()_if0x57ed70 of section at offset 2358-2358
> over message boundary (1179)
> GRIB_API ERROR : Creating ()_if0x57ed70 of section at offset 2358-2358
> over message boundary (1179)
> GRIB_API ERROR : Creating ()_if0x57ed70 of section at offset 2358-2358
> over message boundary (1179)
> GRIB_API ERROR : Creating ()_if0x57ed70 of section at offset 2358-2358
> over message boundary (1179)
> GRIB_API ERROR : Creating ()_if0x57ed70 of section at offset 2358-2358
> over message boundary (1179)
> GRIB_API ERROR : Creating ()_if0x57ed70 of section at offset 2358-2358
> over message boundary (1179)
> GRIB_API ERROR : Creating ()_if0x57ed70 of section at offset 2358-2358
> over message boundary (1179)
> GRIB_API ERROR : Creating ()_if0x57ed70 of section at offset 2358-2358
> over message boundary (1179)
> GRIB_API ERROR : Creating ()_if0x57ed70 of section at offset 2358-2358
> over message boundary (1179)
> GRIB_API ERROR : Creating ()_if0x57ed70 of section at offset 2358-2358
> over message boundary (1179)
> GRIB_API ERROR : Creating ()_if0x57ed70 of section at offset 2358-2358
> over message boundary (1179)
> GRIB_API ERROR : Creating ()_if0x57ed70 of section at offset 2358-2358
> over message boundary (1179)
> GRIB_API ERROR : Creating ()_if0x57ed70 of section at offset 2358-2358
> over message boundary (1179)
> GRIB_API ERROR : Creating ()_if0x57ed70 of section at offset 2358-2358
> over message boundary (1179)
> GRIB_API ERROR : Creating ()_if0x57ed70 of section at offset 2358-2358
> over message boundary (1179)
> GRIB_API ERROR : Creating ()_if0x57ed70 of section at offset 2358-2358
> over message boundary (1179)
> GRIB_API ERROR : Creating ()_if0x57ed70 of section at offset 2358-2358
> over message boundary (1179)
> GRIB_API ERROR : Creating ()_if0x57b2d0 of section at offset 17160-17160
> over message boundary (8580)
> GRIB_API ERROR : Creating ()_if0x5795e8 of section at offset 2358-2358
> over message boundary (1179)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3110-3110
> over message boundary (1555)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3110-3110
> over message boundary (1555)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3110-3110
> over message boundary (1555)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3110-3110
> over message boundary (1555)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3110-3110
> over message boundary (1555)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3158-3158
> over message boundary (1579)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3110-3110
> over message boundary (1555)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3110-3110
> over message boundary (1555)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3110-3110
> over message boundary (1555)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 4478-4478
> over message boundary (2239)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3158-3158
> over message boundary (1579)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 1980-1980
> over message boundary (990)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3110-3110
> over message boundary (1555)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3110-3110
> over message boundary (1555)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3158-3158
> over message boundary (1579)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3110-3110
> over message boundary (1555)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3158-3158
> over message boundary (1579)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3158-3158
> over message boundary (1579)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3110-3110
> over message boundary (1555)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3158-3158
> over message boundary (1579)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3158-3158
> over message boundary (1579)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3158-3158
> over message boundary (1579)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3110-3110
> over message boundary (1555)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3158-3158
> over message boundary (1579)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3110-3110
> over message boundary (1555)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3158-3158
> over message boundary (1579)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3158-3158
> over message boundary (1579)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3158-3158
> over message boundary (1579)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3158-3158
> over message boundary (1579)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3158-3158
> over message boundary (1579)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3110-3110
> over message boundary (1555)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3110-3110
> over message boundary (1555)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 4526-4526
> over message boundary (2263)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3110-3110
> over message boundary (1555)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3110-3110
> over message boundary (1555)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3110-3110
> over message boundary (1555)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3110-3110
> over message boundary (1555)
> GRIB_API ERROR : Creating ()_if0x579760 of section at offset 3110-3110
> over message boundary (1555)
> GRIB_API ERROR : Creating ()_if0x579148 of section at offset 191834-191834
> over message boundary (95917)
> GRIB_API ERROR : Creating ()_if0x579148 of section at offset 193926-193926
> over message boundary (96963)
> GRIB_API ERROR : Creating ()_if0x579148 of section at offset 194616-194616
> over message boundary (97308)
> GRIB_API ERROR : Creating ()_if0x579148 of section at offset 194772-194772
> over message boundary (97386)
> GRIB_API ERROR : Creating ()_if0x579148 of section at offset 194430-194430
> over message boundary (97215)
> GRIB_API ERROR : Creating ()_if0x579148 of section at offset 194880-194880
> over message boundary (97440)
> GRIB_API ERROR : Creating ()_if0x579148 of section at offset 196902-196902
> over message boundary (98451)
> GRIB_API ERROR : Creating ()_if0x579148 of section at offset 197258-197258
> over message boundary (98629)
> GRIB_API ERROR : Creating ()_if0x579148 of section at offset 196896-196896
> over message boundary (98448)
> GRIB_API ERROR : Creating ()_if0x579148 of section at offset 198372-198372
> over message boundary (99186)
> GRIB_API ERROR : Creating ()_if0x579148 of section at offset 195034-195034
> over message boundary (97517)
> GRIB_API ERROR : Creating ()_if0x579148 of section at offset 194932-194932
> over message boundary (97466)
> GRIB_API ERROR : Creating ()_if0x579148 of section at offset 198614-198614
> over message boundary (99307)
> GRIB_API ERROR : Creating ()_if0x579148 of section at offset 196920-196920
> over message boundary (98460)
> GRIB_API ERROR : Creating ()_if0x579148 of section at offset 202982-202982
> over message boundary (101491)
> GRIB_API ERROR : Creating ()_if0x579148 of section at offset 198722-198722
> over message boundary (99361)
> GRIB_API ERROR : Creating ()_if0x579148 of section at offset 200584-200584
> over message boundary (100292)
> GRIB_API ERROR : Creating ()_if0x579148 of section at offset 193676-193676
> over message boundary (96838)
> GRIB_API ERROR : Creating ()_if0x579148 of section at offset 182186-182186
> over message boundary (91093)
> GRIB_API ERROR : Creating ()_if0x579148 of section at offset 166494-166494
> over message boundary (83247)
> GRIB_API ERROR : Creating ()_if0x579148 of section at offset 156488-156488
> over message boundary (78244)
> GRIB_API ERROR : Creating ()_if0x579148 of section at offset 149744-149744
> over message boundary (74872)
> GRIB_API ERROR : Creating ()_if0x579148 of section at offset 145326-145326
> over message boundary (72663)
> GRIB_API ERROR : Creating ()_if0x579148 of section at offset 138610-138610
> over message boundary (69305)
> GRIB_API ERROR : Creating ()_if0x579148 of section at offset 139762-139762
> over message boundary (69881)
> GRIB_API ERROR : Creating ()_if0x579148 of section at offset 137144-137144
> over message boundary (68572)
> PASS: concept.sh
>
> TEST: ./decimalPrecision.sh
> /??PKGBUILDDIR??/data/regular_latlon_surface.grib2: No such file or directory
> FAIL: decimalPrecision.sh
>
> TEST: ./bitsPerValue.sh
> /??PKGBUILDDIR??/data/regular_latlon_surface.grib2: No such file or directory
> FAIL: bitsPerValue.sh
>
> TEST: ./get_fail.sh
> PASS: get_fail.sh
>
> TEST: ./missing.sh
> GRIB_API ERROR : Creating ()_if0x5795d8 of section at offset 2352-2352
> over message boundary (1176)
> GRIB_API ERROR : Creating ()_if0x5795d8 of section at offset 2352-2352
> over message boundary (1176)
> GRIB_API ERROR : Creating ()_if0x579680 of section at offset 2352-2352
> over message boundary (1176)
> GRIB_API ERROR : Message is too large for the current architecture
> FAIL: missing.sh
>
> TEST: ./local.sh
> GRIB_API ERROR : Message is too large for the current architecture
> FAIL: local.sh
>
> TEST: ./step.sh
> /??PKGBUILDDIR??/data/reduced_latlon_surface_constant.grib2: No such file or
> directory
> FAIL: step.sh
>
> TEST: ./set.sh
> /??PKGBUILDDIR??/data/regular_gaussian_surface.grib2: No such file or
> directory
> FAIL: set.sh
>
> TEST: ./iterator.sh
> /??PKGBUILDDIR??/data/reduced_latlon_surface.grib2: No such file or directory
> /??PKGBUILDDIR??/data/reduced_latlon_surface.grib2: No such file or directory
> FAIL: iterator.sh
>
> TEST: ./compare.sh
> PASS: compare.sh
>
> TEST: ./level.sh
> PASS: level.sh
>
> TEST: ./index.sh
> PASS: index.sh
>
> TEST: ./bitmap.sh
> /??PKGBUILDDIR??/data/regular_latlon_surface.grib2: No such file or directory
> FAIL: bitmap.sh
>
> TEST: ./list.sh
> /??PKGBUILDDIR??/data/reduced_gaussian_model_level.grib2: No such file or
> directory
> FAIL: list.sh
>
> TEST: ./second_order.sh
> PASS: second_order.sh
>
> TEST: ./multi_from_message.sh
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 7494-7494
> over message boundary (3747)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 119278-119278
> over message boundary (59639)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 193150-193150
> over message boundary (96575)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 191834-191834
> over message boundary (95917)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 195092-195092
> over message boundary (97546)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 193926-193926
> over message boundary (96963)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 195560-195560
> over message boundary (97780)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 194616-194616
> over message boundary (97308)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 195440-195440
> over message boundary (97720)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 194772-194772
> over message boundary (97386)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 196066-196066
> over message boundary (98033)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 194430-194430
> over message boundary (97215)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 197412-197412
> over message boundary (98706)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 194880-194880
> over message boundary (97440)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 199542-199542
> over message boundary (99771)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 196902-196902
> over message boundary (98451)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 200202-200202
> over message boundary (100101)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 197258-197258
> over message boundary (98629)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 200008-200008
> over message boundary (100004)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 196896-196896
> over message boundary (98448)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 201242-201242
> over message boundary (100621)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 198372-198372
> over message boundary (99186)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 197716-197716
> over message boundary (98858)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 195034-195034
> over message boundary (97517)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 198362-198362
> over message boundary (99181)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 194932-194932
> over message boundary (97466)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 200802-200802
> over message boundary (100401)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 198614-198614
> over message boundary (99307)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 198566-198566
> over message boundary (99283)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 196920-196920
> over message boundary (98460)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 204564-204564
> over message boundary (102282)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 202982-202982
> over message boundary (101491)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 201748-201748
> over message boundary (100874)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 198722-198722
> over message boundary (99361)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 202698-202698
> over message boundary (101349)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 200584-200584
> over message boundary (100292)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 195584-195584
> over message boundary (97792)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 193676-193676
> over message boundary (96838)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 183778-183778
> over message boundary (91889)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 182186-182186
> over message boundary (91093)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 169128-169128
> over message boundary (84564)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 166494-166494
> over message boundary (83247)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 160512-160512
> over message boundary (80256)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 156488-156488
> over message boundary (78244)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 153212-153212
> over message boundary (76606)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 149744-149744
> over message boundary (74872)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 148080-148080
> over message boundary (74040)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 145326-145326
> over message boundary (72663)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 140628-140628
> over message boundary (70314)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 138610-138610
> over message boundary (69305)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 142890-142890
> over message boundary (71445)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 139762-139762
> over message boundary (69881)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 141374-141374
> over message boundary (70687)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 137144-137144
> over message boundary (68572)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 180936-180936
> over message boundary (90468)
> GRIB_API ERROR : Creating ()_if0x429e18 of section at offset 150002-150002
> over message boundary (75001)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 7494-7494
> over message boundary (3747)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 119278-119278
> over message boundary (59639)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 193150-193150
> over message boundary (96575)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 191834-191834
> over message boundary (95917)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 195092-195092
> over message boundary (97546)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 193926-193926
> over message boundary (96963)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 195560-195560
> over message boundary (97780)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 194616-194616
> over message boundary (97308)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 195440-195440
> over message boundary (97720)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 194772-194772
> over message boundary (97386)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 196066-196066
> over message boundary (98033)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 194430-194430
> over message boundary (97215)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 197412-197412
> over message boundary (98706)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 194880-194880
> over message boundary (97440)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 199542-199542
> over message boundary (99771)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 196902-196902
> over message boundary (98451)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 200202-200202
> over message boundary (100101)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 197258-197258
> over message boundary (98629)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 200008-200008
> over message boundary (100004)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 196896-196896
> over message boundary (98448)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 201242-201242
> over message boundary (100621)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 198372-198372
> over message boundary (99186)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 197716-197716
> over message boundary (98858)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 195034-195034
> over message boundary (97517)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 198362-198362
> over message boundary (99181)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 194932-194932
> over message boundary (97466)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 200802-200802
> over message boundary (100401)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 198614-198614
> over message boundary (99307)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 198566-198566
> over message boundary (99283)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 196920-196920
> over message boundary (98460)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 204564-204564
> over message boundary (102282)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 202982-202982
> over message boundary (101491)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 201748-201748
> over message boundary (100874)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 198722-198722
> over message boundary (99361)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 202698-202698
> over message boundary (101349)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 200584-200584
> over message boundary (100292)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 195584-195584
> over message boundary (97792)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 193676-193676
> over message boundary (96838)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 183778-183778
> over message boundary (91889)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 182186-182186
> over message boundary (91093)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 169128-169128
> over message boundary (84564)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 166494-166494
> over message boundary (83247)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 160512-160512
> over message boundary (80256)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 156488-156488
> over message boundary (78244)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 153212-153212
> over message boundary (76606)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 149744-149744
> over message boundary (74872)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 148080-148080
> over message boundary (74040)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 145326-145326
> over message boundary (72663)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 140628-140628
> over message boundary (70314)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 138610-138610
> over message boundary (69305)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 142890-142890
> over message boundary (71445)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 139762-139762
> over message boundary (69881)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 141374-141374
> over message boundary (70687)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 137144-137144
> over message boundary (68572)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 180936-180936
> over message boundary (90468)
> GRIB_API ERROR : Creating ()_if0x579fd8 of section at offset 150002-150002
> over message boundary (75001)
> PASS: multi_from_message.sh
>
> TEST: ./change_scanning.sh
> GRIB_API ERROR : Message is too large for the current architecture
> *** unreadable message ***
> FAIL: change_scanning.sh
>
> TEST: ./julian.sh
> PASS: julian.sh
>
> TEST: ./statistics.sh
> /??PKGBUILDDIR??/data/regular_latlon_surface.grib2: No such file or directory
> FAIL: statistics.sh
>
> TEST: ./tigge.sh
> PASS: tigge.sh
>
> TEST: ./tigge_conversions.sh
> FAIL: tigge_conversions.sh
>
> TEST: ./read_any.sh
> no data to test
> PASS: read_any.sh
>
> TEST: ./padding.sh
> PASS: padding.sh
>
> TEST: ./lamb_az_eq_area.sh
> /??PKGBUILDDIR??/data/regular_gaussian_pressure_level_constant.grib2: No such
> file or directory
> FAIL: lamb_az_eq_area.sh
>
> TEST: ./grib_to_netcdf.sh
> NetCDF was not enabled. Skipping this test.
> PASS: grib_to_netcdf.sh
>
> TEST: ./debug.sh
> FAIL: debug.sh
>
> TEST: ./jpeg.sh
> GRIB_API ERROR : Creating ()_if0x5791a8 of section at offset 81052-81052
> over message boundary (40526)
> GRIB_API ERROR : Message is too large for the current architecture
> FAIL: jpeg.sh
> ===========================================
> make[3]: *** [check-TESTS] Error 1
> 21 of 38 tests failed
> Please report to [email protected]
> ===========================================
> make[3]: Leaving directory `/??PKGBUILDDIR??/tests'
> make[2]: *** [check-am] Error 2
> make[2]: Leaving directory `/??PKGBUILDDIR??/tests'
> make[1]: *** [check-recursive] Error 1
> make[1]: Leaving directory `/??PKGBUILDDIR??'
> dh_auto_test: make -j1 check returned exit code 2
> make: *** [build-arch] Error 2
> dpkg-buildpackage: error: debian/rules build-arch gave error exit status 2
From: Dragoslav Sicarov <[email protected]> Subject: FTBFS: grib-api - tests fail for mips Date: Sun, 29 Dec 2013 15:13:16 +0000 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=733510 FTBFS: 21 of 38 tests fail when trying to build package from source on mips. Part of build log has been attached. The root cause of failing tests for mips is in function grib_encode_unsigned_long() that is used for writing into grib message buffer (function is implemented differently for big-endian and little-endian architectures). On big-endian architectures, function uses shift operations, where in some corner-case situations left operand (which is of type unsigned long; size of long equals 4 bytes for 32bit system) is shifted right by 32 bits. According to C standard, if the value of the right operand of shift operation is negative, or is greater than or equal to the width of the left operand, the behaviour is undefined. On 32-bit mips architecture shift operations by a variable number of bits are translated to/use 'srlv' and 'sllv' instructions which shift left operand by (right_operand mod 32) bits. In case of shifting by 32 bits, this results in left operand being unchanged. However, in order for this package to function properly a result of 0 is expected. Proposed patch fixes these corner-cases by setting the result of shift operation to 0 if right operand is greater than or equal to size of long (actually, no shifting is performed, the result is set to zero). --- a/src/grib_bits.c 2013-05-29 16:32:07.000000000 +0100 +++ b/src/grib_bits.c 2014-04-30 08:40:17.717503443 +0100 @@ -24,7 +24,7 @@ long GRIB_MASK = -1; /* Mask of sword bits */ # define VALUE(p,q,b) \ - (((b)==max_nbits ? GRIB_MASK : ~(GRIB_MASK<<(b))) & ((p)>>(max_nbits-((q)+(b))))) + (((b)==max_nbits ? GRIB_MASK : ~(GRIB_MASK<<(b))) & (((max_nbits-((q)+(b))) >= max_nbits) ? 0 : ((p)>>(max_nbits-((q)+(b)))))) # define MASKVALUE(q,b) \ ((b)==max_nbits ? GRIB_MASK : (~(GRIB_MASK<<(b))<<(max_nbits-((q)+(b))))) --- a/src/grib_bits_fast_big_endian.c 2013-05-29 16:32:07.000000000 +0100 +++ b/src/grib_bits_fast_big_endian.c 2014-04-30 08:40:17.733503444 +0100 @@ -62,9 +62,16 @@ int grib_encode_unsigned_long(unsigned c countOfLeftmostBits = max_nbits - startBit; startBit = max_nbits - remainingBits; remainingBits -= countOfLeftmostBits; - destination[nextWord] = - ((destination[nextWord] >> countOfLeftmostBits) << countOfLeftmostBits) - + (VALUE(val,startBit,countOfLeftmostBits)); + if (countOfLeftmostBits < max_nbits) + { + destination[nextWord] = + ((destination[nextWord] >> countOfLeftmostBits) << countOfLeftmostBits) + + (VALUE(val,startBit,countOfLeftmostBits)); + } + else + { + destination[nextWord] = (VALUE(val,startBit,countOfLeftmostBits)); + } startBit = 0; nextWord++; }
signature.asc
Description: Digital signature

