So is it impossible to run ICS on CPUs without SSSE3?

884 views
Skip to first unread message

StefanS

unread,
Jan 16, 2012, 2:47:12 AM1/16/12
to andro...@googlegroups.com
Dear all,

after spending the weekend trying to bring my device config for the IBM Thinkpad X41T Tablet up and running to ICS-x86, I've mostly succeeded.

Wacom Pen input works as before, and I can use the i915 Gallium driver. BUT I run into problems because many applications are killed with signal 4 (SIGILL), and after a bit of research it seems that this is due to illegal instructions. The Pentium M has SSE and SSE2 instructions, so it could only be SSSE3 instructions. (By the way, the i915 Classic driver also crashes, which is why I use Gallium.)

Now is it impossible to work around this? I know that some applications might decide to use SSSE3 anyway, but this shouldn't prevent things like the browser or ConnectBot from running properly, or is it so deeply ingrained that there's no way of using it without?

Thanks,

Stefan

Fai Wong

unread,
Jan 16, 2012, 3:50:36 AM1/16/12
to andro...@googlegroups.com
Google forced ICS to be ran on SSSE3 capable CPUs only.
Even Android-x86 team has done something to make the "base system" run
without SSSE3, we won't be able to ensure the applications can work
properly.

2012/1/16 StefanS <and...@stefanseidel.info>:

> --
> You received this message because you are subscribed to the Google Groups
> "Android-x86" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/android-x86/-/NXmKp9rWTzYJ.
> To post to this group, send email to andro...@googlegroups.com.
> To unsubscribe from this group, send email to
> android-x86...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/android-x86?hl=en.

StefanS

unread,
Jan 16, 2012, 6:32:19 AM1/16/12
to andro...@googlegroups.com
Ok, thanks. I've noticed, that many files get compiled with the explicit options -mtune=atom and -msse3, even though I could not find this in any Makefile or *.mk and I have definitely disabled the Atom optimizations.

I've added -mno-sse3 and -mno-ssse3 to the global build options now (compiling as I write) and hope that the gcc will use the last-one-wins strategy for command line options. Really silly IMO.

Stefan

fuzzy7k

unread,
Jan 16, 2012, 7:35:30 PM1/16/12
to Android-x86
Seems like it's time for me to try ics again. I couldn't even get a
gui before. My device has support for sse3, but not ssse3, which
according to the ndk documentation should work. Did you have to do
anything special (compile flag wise) to get the pen and graphics
working?

StefanS

unread,
Jan 17, 2012, 6:03:19 AM1/17/12
to andro...@googlegroups.com
I copied the wacom-input from gingerbread to a subdirectory for now, and it works. Service wacom-input didn't start right away, but I started it by hand.

As I said, i915 didn't work because of SSE3 instructions, but i915g worked fine. Other than that, no problems, no special flags.

The people who ported MacOS X to run on any PC wrote a pretty impressive SSE3 emulator using nothing but the illegal opcode interrupt handler and running an SSE2-version of the SSE3 command then. I'm investigating if this could be something.

Stefan
P.S.: Yes, by now I've noticed that the original threads about SSSE3 were wrong and in facts it's SSE3 that needs to be supported.

Yolan

unread,
Jan 24, 2012, 11:52:39 AM1/24/12
to andro...@googlegroups.com
Did -mno-ssse3 work for you? What is the syntax for global build options?

Thanks



Stefan

--
You received this message because you are subscribed to the Google Groups "Android-x86" group.
To view this discussion on the web visit https://groups.google.com/d/msg/android-x86/-/o738qY3nRskJ.

To post to this group, send email to andro...@googlegroups.com.
To unsubscribe from this group, send email to android-x86...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/android-x86?hl=en.

StefanS

unread,
Jan 25, 2012, 4:33:43 AM1/25/12
to andro...@googlegroups.com
No, -mno-see3 and/or -mtune=pentium-m did not work. I think it's because of the prebuilt toolchain - I saw a patch that the default gcc options were set to "-march=atom -DUSE_SSE3 ..." by Google. I wanted to rebuild the toolchain myself, but I haven't got very far since the source git repo for the toolchain seems to be down|broken|moved.

I think the best option would be to emulate the SSE3 instructions via SSE2, because it will allow all x86-specific applications to run (since SSE3 is made required by the NDK). The OSx86 project has a working piece of assembler code, which is great and reasonably fast. However, I'm not the kernel hacker and there are some very specific questions open about this whole thing that needs to be answered by someone who knows x86 programming and Linux kernel VERY well.

Any help would be appreciated!

Stefan
Reply all
Reply to author
Forward
0 new messages