SSE support

Users and developers helping users with generic and technical Pale Moon issues on all operating systems.

Moderator: trava90

Forum rules
This board is for technical/general usage questions and troubleshooting for the Pale Moon browser only.
Technical issues and questions not related to the Pale Moon browser should be posted in other boards!
Please keep off-topic and general discussion out of this board, thank you!
Freewind

SSE support

Unread post by Freewind » 2016-05-27, 10:44

Hello,

what was the last x86 Linux version with SSE support?
I tried to install on old Athlon XP with elementaryOS (Ubuntu LTS 14.04) an have no luck with the latest archived version 24.2.2

1. is 24.2.2 SSE or SSE2 ?
2. what was last SSE ?
3. how to get ?


Thanks
Freewind

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35633
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Re: SSE support

Unread post by Moonchild » 2016-05-27, 10:50

You may have to compile your own. SSE2 has been a minimum requirement for Pale Moon for a very, very long time.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

Freewind

Re: SSE support

Unread post by Freewind » 2016-05-27, 11:15

Thanks for the info.

Freewind

Walter Dnes
Astronaut
Astronaut
Posts: 652
Joined: 2015-07-30, 20:29
Location: Vaughan, ON, Canada

Re: SSE support

Unread post by Walter Dnes » 2016-05-28, 19:14

Freewind wrote:Thanks for the info.

Freewind
Let me know if you need any help. I went through the steep learning curve, in order to build Atom builds on my desktop, in a QEMU VM. Yes, it can build on an Atom netbook...
  1. in approximately 11 hours
  2. with the cpu speed set to maximum
  3. from a plain command prompt with no X or other non-essential programs running
Also, note that you will have a "Flash-free machine"... because Adobe Flash for linux now requires SSE2 support in the CPU. You're looking at HTML5-only. If you're lucky, you might get Gnash or Lightspark working as Flash replacements.
There's a right way
There's a wrong way
And then there's my way

jeikobu614

Re: SSE support

Unread post by jeikobu614 » 2016-06-03, 20:22

11 hours on Atom :wtf: For me it's probably way more. By the way, if I set GCC native flag will code be compiled with all SSE options and all supported functions by processor? Or do I need to specify

Code: Select all

mfpmath=sse
??

dinosaur
Fanatic
Fanatic
Posts: 165
Joined: 2014-06-03, 09:26
Location: France

Re: SSE support

Unread post by dinosaur » 2016-06-03, 21:50

You need to use a -march option corresponding to a processor with SSE but without SSE2 (-march=pentium3) and you may also add -msse to specify you want the compiler to favour SSE over MMX. Finally, if you want the FP math to be performed via SSE rather than via the legacy IEEE FPU instructions, you may use -mfpmath=sse

So, you could try: -march=pentium3 -msse -mfpmath=sse

Note that 'man gcc' explains all that (and more).

Walter Dnes
Astronaut
Astronaut
Posts: 652
Joined: 2015-07-30, 20:29
Location: Vaughan, ON, Canada

Re: SSE support

Unread post by Walter Dnes » 2016-06-05, 05:26

jeikobu614 wrote:11 hours on Atom :wtf: For me it's probably way more. By the way, if I set GCC native flag will code be compiled with all SSE options and all supported functions by processor? Or do I need to specify

Code: Select all

mfpmath=sse
??
Setting "-march=native" builds specifically for the machine that it's being built on, i.e. you're building it on machine A and it'll be running on that same machine A. In that case I suggest the following flags (one long line or continuations with "\")...

Code: Select all

-O2 -march=native -mfpmath=sse -pipe -fomit-frame-pointer -fno-unwind-tables -fno-asynchronous-unwind-tables
Getting rid of frame-pointer and unwind-tables cuts down on the code bloat. Speaking of which, I suggest using the "Atom" source code branch, rather than the regular branch. There's nothing Atom-specific in it, but they've removed some "developer" options, which cuts down on memory footprint. Important for an older machine.

If you're building on machine A and intend to run it on machine B, things get complex, but it can be done. Let me know if that's the case. It's worth a thread in its own right. I've stumbled across just about all the booby traps, and hopefully can help you avoid them.

Last resort... I can rattle off a custom linux build for you. It takes approximately 2 hours. The only question is "do you trust some random guy on the internet". Plus which, it's a lot like the line about "teach a man to fish". Being able to do things for yourself is nice.
There's a right way
There's a wrong way
And then there's my way

jeikobu614

Re: SSE support

Unread post by jeikobu614 » 2016-06-05, 08:45

Walter Dnes wrote:Setting "-march=native" builds specifically for the machine that it's being built on, i.e. you're building it on machine A and it'll be running on that same machine A. In that case I suggest the following flags (one long line or continuations with "\")...

Code: Select all

-O2 -march=native -mfpmath=sse -pipe -fomit-frame-pointer -fno-unwind-tables -fno-asynchronous-unwind-tables
Getting rid of frame-pointer and unwind-tables cuts down on the code bloat. Speaking of which, I suggest using the "Atom" source code branch, rather than the regular branch. There's nothing Atom-specific in it, but they've removed some "developer" options, which cuts down on memory footprint. Important for an older machine.

If you're building on machine A and intend to run it on machine B, things get complex, but it can be done. Let me know if that's the case. It's worth a thread in its own right. I've stumbled across just about all the booby traps, and hopefully can help you avoid them.

Last resort... I can rattle off a custom linux build for you. It takes approximately 2 hours. The only question is "do you trust some random guy on the internet". Plus which, it's a lot like the line about "teach a man to fish". Being able to do things for yourself is nice.
I've got my own build of PM from Atom source built on Atom processor :) I've been just wondering if i need to set

Code: Select all

-mfpmath=sse
to full SSE support. I think I need to, cuz default

Code: Select all

mfpmath
for

Code: Select all

-march=native
on Atom processor is

Code: Select all

-mfpmath=387

Walter Dnes
Astronaut
Astronaut
Posts: 652
Joined: 2015-07-30, 20:29
Location: Vaughan, ON, Canada

Re: SSE support

Unread post by Walter Dnes » 2016-06-05, 18:49

jeikobu614 wrote:I've got my own build of PM from Atom source built on Atom processor :) I've been just wondering if i need to set

Code: Select all

-mfpmath=sse
to full SSE support. I think I need to, cuz default

Code: Select all

mfpmath
for

Code: Select all

-march=native
on Atom processor is

Code: Select all

-mfpmath=387
I hate to say this, but... it depends. According to the gcc manual https://gcc.gnu.org/onlinedocs/gcc-4.9. ... 64-Options
  • ‘387’ is the default for i386 compiler.
  • ‘sse’ is the default for the x86-64 compiler.
So if you're building for 32-bit linux, you need to explicitly specify "-mfpmath=sse". Compiling for 64-bit linux defaults to sse. I have one of the older 32-bit-only Atoms ("Bonnell") so I have to put in "-mfpmath=sse" when building for it.
There's a right way
There's a wrong way
And then there's my way

Locked