Skip to contentSkip to conversation

FreeRDP: misc arch-related fixes (branch yem/fixes)

PATCH New Yann E. MORIN 3 participants 7 messages Dec 27, 2014 – Dec 28, 2014

lore
Share & tools
lore
#0 lore raw

cover FreeRDP: misc arch-related fixes (branch yem/fixes)

Hello All!

Two patches to fix FreeRDP because it may mis-detects the CPU, and may enable features (Neon, SSE2) even if the CPU is missing them.

Regards,
Yann E. MORIN.

The following changes since commit 4ab89081f4d9187b9ad853eac2058fd98c6892d1:

package/ffmpeg: update hash (2014-12-27 19:09:39 +0100)

are available in the git repository at:

git://git.busybox.net/~ymorin/git/buildroot yem/fixes

for you to fetch changes up to d37d664e994af72e48de29bfbb2112249981b672:

package/freerdp: do not use SSE2 extensions when not available (2014-12-27 19:13:43 +0100)

----------------------------------------------------------------
Yann E. MORIN (2):
package/freerdp: do not use Neon extensions when not available package/freerdp: do not use SSE2 extensions when not available

 package/freerdp/freerdp.mk | 12 ++++++++++++
 1 file changed, 12 insertions(+)
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#1 lore raw

PATCH 1/2 package/freerdp: do not use Neon extensions when not available

FreeRDP mis-detects the CPU, and may enable Neon extensions when it should not. Not all ARM processors have Neon extensions.

Heck, what's more, none non-ARM processor has Neon extensions! The regexp to detect the CPU is borked: 'arm*' will also match 'arc' as well as 'arm'.

Do not let FreeRDP try to decide if it can use Neon extensions, we have a Kconfig option for that, that we can use to force FreeRDP to use it or not.

Should fix:

    http://autobuild.buildroot.org/results/d4a/d4a61e686cf11d993d02ece0c4e2835a926603c2/
    http://autobuild.buildroot.org/results/234/2349d40ef8d658ab1cd7332eb1b42a75afcd423f/

...

Cc Thomas Petazzoni <[email protected]>

---
Note: fixing the regexp would be nice, and can be sent upstream, but now we force use or not of Neon, we can do without further patching FreeRDP.

---
 package/freerdp/freerdp.mk | 6 ++++++
 1 file changed, 6 insertions(+)
package/freerdp/freerdp.mk +6 -0
index d2e51f8..c9396b5 100644
@@ -63,4 +63,10 @@ else
 FREERDP_CONF_OPTS += -DWITH_XV=OFF
 endif
 
+ifeq ($(BR2_ARM_CPU_HAS_NEON),y)
+FREERDP_CONF_OPTS += -DWITH_NEON=ON
+else
+FREERDP_CONF_OPTS += -DWITH_NEON=OFF
+endif
+
 $(eval $(cmake-package))
Signature · 1 line
1.9.1
#2 lore raw

PATCH 1/2 package/freerdp: do not use Neon extensions when not available

Quoted 8 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Yann" == Yann E MORIN <[email protected]> writes:

FreeRDP mis-detects the CPU, and may enable Neon extensions when it should not. Not all ARM processors have Neon extensions.

Heck, what's more, none non-ARM processor has Neon extensions! The regexp to detect the CPU is borked: 'arm*' will also match 'arc' as well as 'arm'.

Huh, how does arm* march arc?

Signature · 1 line
Bye, Peter Korsgaard
#3 lore raw

PATCH 1/2 package/freerdp: do not use Neon extensions when not available

Peter, All,

On 2014-12-28 12:31 +0100, Peter Korsgaard spake thusly:

Quoted 10 lines
Quoted 8 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Yann" == Yann E MORIN <[email protected]> writes:

FreeRDP mis-detects the CPU, and may enable Neon extensions when it should not. Not all ARM processors have Neon extensions.

Heck, what's more, none non-ARM processor has Neon extensions! The regexp to detect the CPU is borked: 'arm*' will also match 'arc' as well as 'arm'.

Huh, how does arm* march arc?

Already answered on IRC, but for the records: this is not a glob, this is a regexp.

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#4 lore raw

PATCH 1/2 package/freerdp: do not use Neon extensions when not available

Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Yann" == Yann E MORIN <[email protected]> writes:

Hi,

Quoted 8 lines
Quoted 5 lines
Quoted 3 lines

Heck, what's more, none non-ARM processor has Neon extensions! The regexp to detect the CPU is borked: 'arm*' will also match 'arc' as well as 'arm'.

Huh, how does arm* march arc?

Already answered on IRC, but for the records: this is not a glob, this is a regexp.

Yes, thanks.

Signature · 1 line
Bye, Peter Korsgaard 
#5 lore raw

PATCH 2/2 package/freerdp: do not use SSE2 extensions when not available

In reply to Yann E. MORIN

Do not let FreeRDP decide whether it can use SE2 opcodes, it may well fail to do so, because the heuristic is not working for cross-compilation.

Also, we do have a Kconfig option stating whether we have SSE2 or not, so reuse that.

Similar to the recent ARM+Neon fix.

Cc Thomas Petazzoni <[email protected]>
---
 package/freerdp/freerdp.mk | 6 ++++++
 1 file changed, 6 insertions(+)
package/freerdp/freerdp.mk +6 -0
index c9396b5..a703500 100644
@@ -69,4 +69,10 @@ else
 FREERDP_CONF_OPTS += -DWITH_NEON=OFF
 endif
 
+ifeq ($(BR2_X86_CPU_HAS_SSE2),y)
+FREERDP_CONF_OPTS += -DWITH_SSE2=ON
+else
+FREERDP_CONF_OPTS += -DWITH_SSE2=OFF
+endif
+
 $(eval $(cmake-package))
Signature · 1 line
1.9.1
#6 lore raw

cover FreeRDP: misc arch-related fixes (branch yem/fixes)

In reply to Yann E. MORIN

Dear Yann E. MORIN,

Quoted 3 lines · Yann E. MORIN

Yann E. MORIN (2):
package/freerdp: do not use Neon extensions when not available package/freerdp: do not use SSE2 extensions when not available

Applied, thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com