Summary: | [PATCH] Qt4 build wrongly detects NEON support on Tegra2 | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Alexey Charkov <alchark> |
Component: | Eclasses | Assignee: | Qt Bug Alias <qt> |
Status: | RESOLVED INVALID | ||
Severity: | normal | Keywords: | PATCH |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | ARM | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
Trivial addition to qt4-build.eclass to pass -no-neon when USE=-neon
Trivial addition to qt4-build.eclass to pass -no-neon when USE=-neon |
Description
Alexey Charkov
2012-02-22 17:59:42 UTC
Created attachment 302881 [details, diff]
Trivial addition to qt4-build.eclass to pass -no-neon when USE=-neon
The patch looks good but the "myconf" line should be placed further down, right after the "case "$(tc-arch)"" statement Can you please elaborate a bit more? What problems does this cause? Build failure? Runtime crash? Note that qt checks at runtime if cpu-specific optimizations can be used, the configure results are used only to decide whether to compile neon code or not. (In reply to comment #3) > Can you please elaborate a bit more? What problems does this cause? Build > failure? Runtime crash? It's causing runtime crashes in certain Qt-based programs (not all). Unfortunately, it would be difficult for me to reproduce a crash now, as I compile stuff natively on a Toshiba AC100 (which is still not too fast). > Note that qt checks at runtime if cpu-specific optimizations can be used, the > configure results are used only to decide whether to compile neon code or not. NEON instructions require -mfpu=neon, which on armv7a-hardfloat* causes generated code to be calltime-incompatible with the rest of the system (built with -mfpu=vfpv3-d16) if it uses any floating-point functions. So it's not only about optimizations in this case. Created attachment 302945 [details, diff]
Trivial addition to qt4-build.eclass to pass -no-neon when USE=-neon
Moved the myconf line further down as Markos suggested, also included a descriptive comment.
Seems like this could be reported upstream too. Anyway, you said you compiled the rest of the system with -mfpu=vfpv3-d16, which should cause the configure check to fail... Could you provide the relevant portion of build.log for qt-gui? Sorry for the fuss. Just checked compilation with and without my patch, and both work as expected. In fact, revision 1.113 on 2011-12-31 made the configure tests behave correctly by passing correct C{,XX}FLAGS, which now results in the NEON check failing with -mfloat-abi=hard -mfpu=vfpv3-d16. So, my local overrides are no longer necessary, which I haven't noticed :-) Thanks for your work, guys! |