FreeRDP: misc arch-related fixes (branch yem/fixes)
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. | '------------------------------^-------^------------------^--------------------'
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/
...
---
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
@@ -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
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
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. | '------------------------------^-------^------------------^--------------------'
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
PATCH 2/2 package/freerdp: do not use SSE2 extensions when not available
In reply to Yann E. MORINDo 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.
--- package/freerdp/freerdp.mk | 6 ++++++ 1 file changed, 6 insertions(+)
package/freerdp/freerdp.mk +6 -0
@@ -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
Thomas Petazzoni
Appliedcover FreeRDP: misc arch-related fixes (branch yem/fixes)
In reply to Yann E. MORINDear 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