Bug#896188: libgmp10: Pentium 1 Mobile CPU detected as MMX capable resulting in illegal instruction crash.

Martin Kopun vanilkovy.puding at gmail.com
Fri Apr 20 16:39:58 BST 2018


Package: libgmp10
Version: 2:6.0.0+dfsg-6
Severity: important
Tags: patch

Dear Maintainer,

*** Reporter, please consider answering these questions, where appropriate ***

   * What led up to the situation?
    Starting elinks and going to any https page resulted in illegal instruction from libgmp.
    Also wget -O /dev/null -o /dev/null https://google.com resulted in the crash.
    dmesg:
    [79118.429854] traps: wget[1193] trap invalid opcode ip:b7ac1600 sp:bffdab94 error:0 in libgmp.so.10.2.0[b7a93000+8e000]

    I assume that any other program calling libgmp functions which use MMX would crash as well.
    The issue is caused by wrong MMX detection where gmp assumes that MMX is present.
   * What exactly did you do (or not do) that was effective (or
     ineffective)?
    I have downloaded source package of gmp, applied one line patch in mpn/x86/fat/fat.c, compiled it and installed.
   * What was the outcome of this action?
    No more crashes on my system
   * What outcome did you expect instead?

*** End of the template - remove these template lines ***

    Since the Debian 8 is the last release supporting old 32bit hardware I reccomend backporting a patch from the upstream.
    The patch itself is a simple one to be found at
    https://gmplib.org/repo/gmp/rev/cd5e58236267 [Fix old pentium recog.]
    and also maybe https://gmplib.org/repo/gmp/rev/4117847f9e8b but i didnt change config.guess during my test above.
    My CPU is Mobile Pentium 75 - 200 and does not have MMX indeed.
cat /proc/cpuinfo
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 5
model		: 7
model name	: Mobile Pentium 75 - 200
stepping	: 0
cpu MHz		: 74.871
fdiv_bug	: no
f00f_bug	: yes
coma_bug	: no
fpu		: yes
fpu_exception	: yes
cpuid level	: 1
wp		: yes
flags		: fpu vme de pse tsc msr mce cx8 cpuid
bugs		: f00f
bogomips	: 149.74
clflush size	: 32
cache_alignment	: 32
address sizes	: 32 bits physical, 32 bits virtual
power management:

-- System Information:
Debian Release: 8.10
  APT prefers oldstable
  APT policy: (500, 'oldstable')
Architecture: i386 (i586)

Kernel: Linux 4.16.0-v1
Locale: LANG=sk_SK.UTF-8, LC_CTYPE=sk_SK.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages libgmp10 depends on:
ii  libc6              2.19-18+deb8u10
ii  multiarch-support  2.19-18+deb8u10

libgmp10 recommends no packages.

libgmp10 suggests no packages.

-- no debconf information



More information about the debian-science-maintainers mailing list