0

I have installed qtcreator in lubuntu 16.04 and when trying to open it, i am getting an error

This program requires an x86 processor that supports SSE2 extension, at least a Pentium 4 or newer Aborted (core dumped)

can someone help me to solve this problem.

I'm using ICOP borad with Lubuntu 16.04

harsha
  • 25
  • 4
  • @eyllanesc yes i have installed qtcreator (3.5.1) based on QT 5.5.1, but when i try opening it i'm getting the above error. – harsha Jul 17 '18 at 11:32
  • I have not asked you if you have it installed but what was your installation procedure – eyllanesc Jul 17 '18 at 11:33
  • I used following commands to install `sudo apt-get install build-essential` `sudo apt-get install qtcreator` `sudo apt-get install qt5-default` – harsha Jul 17 '18 at 11:40
  • mmm, if so it is better that you report it as a bug to Lubuntu. https://ubuntuforums.org/showthread.php?t=2308366 – eyllanesc Jul 17 '18 at 11:45

1 Answers1

0

You'll probably need to compile from source with -mno-sse (Or just -mno-sse2 if your CPU has SSE1 but not SSE2). If you're not cross-compiling from a faster machine, use -march=native to enable all the instruction sets your CPU supports, and not enable any that it doesn't.)

The 32-bit qtcreator package probably enables SSE2 on purpose, because detected it and printed an error instead of just dying with a SIGILL. Likely it can be built from source (or the Ubuntu source package) with a different config.


Apparently 32-bit Ubuntu is intended to run on CPUs without SSE2, according to this guide posted in the Ubuntu forums. (It's talking about old desktops with old mainstream CPUs, not modern embedded, but same difference.) So this might be considered a bug.

gcc's 32-bit code-gen does default to assuming cmov support and other P6 (Pentium Pro / Pentium II) instructions, but I guess Ubuntu configures their 32-bit gcc to not enable -msse2 by default. So you couldn't even boot the kernel on a P5 Pentium or older. (Makes sense, if you have SSE2 you probably have an x86-64 capable CPU; running on 32-bit-only CPUs is one of the few reasons for not just using x86-64 Ubuntu. But some people do use 32-bit systems for some reason on modern HW, and gimping it too much by disabling cmov and other P6 new instructions might be undesirable.)

A few years ago (like 2013 maybe?) I booted an Ubuntu live CD on an Athlon XP (SSE1 but not SSE2). It mostly booted to the desktop, but there was a popup from one program that it had died with SIGILL. i.e. it tried to run an SSE2 instruction and got an illegal-instruction exception. I guess this would be considered a but if 32-bit Ubuntu really does aim to support CPUs without SSE2

Peter Cordes
  • 328,167
  • 45
  • 605
  • 847