reassign 324455 libc6.1 2.3.5-3 retitle 324455 regression from 2.3.2 in __divqu on alpha thanks
On Mon, Aug 22, 2005 at 07:05:46PM -0700, Steve Langasek wrote: > On Mon, Aug 22, 2005 at 06:11:05PM +0200, Laurent Fousse wrote: > > * Laurent Fousse [Mon, Aug 22, 2005 at 05:42:32PM +0200]: > > > > Could you do me a favour? Try building with -O2. > > > The same test failed with -O2, gcc 4.0.1-5. Trying with gcc-3.4 now. > > Failed with 3.4 and 3.3, both using -O2. Something is wrong in the > > toolchain, only somewhere else. > Ok, having looked at the test in greater detail, it seems to have just been > the luck of the draw that the test never failed before on alpha. > [EMAIL PROTECTED]:/home/devel/release/gmp-4.1.4/tests/mpz$ ./dive_ui 500 > [EMAIL PROTECTED]:/home/devel/release/gmp-4.1.4/tests/mpz$ ./dive_ui 1000 > mpz_divexact_ui wrong > a=15555198415671637283 > d=15555198415671637283 > q=1 > got=0 > Aborted > $ > Amusing that it's only dividing a number by itself that seems to give gmp > fits here. :-) If I special-case q=1 out, I get a full sequence of 5000 > tests without errors. Other values that don't fail the test include > d=0x0056e18e03a9de91 and d=0x459f9e46f19b39d8; others that do include > d=0xa679fe5e2536755c and d=0xd2e85bb7873d8a7e. Looks suspiciously like > signed/unsigned breakage, as only values with the high bit set appear to be > affected. > Will continue investigating. Buggy division function in glibc 2.3.5. $ .libs/dive_ui mpz_divexact_ui wrong a=15555198415671637283 d=15555198415671637283 q=1 got=0 Aborted $ LD_LIBRARY_PATH=./libc6/lib/ ./libc6/lib/ld-linux.so.2 .libs/dive_ui && echo success success $ Simple test case: int main() { unsigned long a= 1UL << 63; unsigned long b= 1UL << 63; exit (a/b != 1); } Appears to be a bug in the implementation of __divqu. Upgrading to 2.3.5-4, to confirm whether the bug still exists. -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. [EMAIL PROTECTED] http://www.debian.org/
signature.asc
Description: Digital signature