Skip to contentSkip to conversation

package/qt: disable Qt GUI module for CS NiosII toolchain

PATCH New Romain Naour 2 participants 8 messages Dec 23, 2015 – Dec 28, 2015

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 package/qt: disable Qt GUI module for CS NiosII toolchain

The libQtGui.so build triggers an ld error with Binutils 2.25.1

Avoid (GCC 5.2 and Binutils 2.25.51):
http://autobuild.buildroot.net/results/c94/c945bce96966e5e39d093c4265058a66f749eea6

Similar (GCC 4.9.3 and Binutils 2.25.1):
http://autobuild.buildroot.net/results/ca9/ca981c419bfedb38c591f6e75151a943bc9535ef

---
 package/grantlee/Config.in | 1 +
 package/opencv/Config.in   | 1 +
 package/opencv3/Config.in  | 1 +
 package/pinentry/Config.in | 1 +
 package/poppler/Config.in  | 1 +
 package/qt/Config.in       | 4 ++++
 6 files changed, 9 insertions(+)
package/grantlee/Config.in +1 -0
index 01ddacd..2b27ead 100644
@@ -3,6 +3,7 @@ config BR2_PACKAGE_GRANTLEE
 	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # Qt Script
 	depends on (BR2_PACKAGE_QT_ARCH_SUPPORTS_SCRIPT && BR2_PACKAGE_QT) || \
 		(BR2_PACKAGE_QT5_JSCORE_AVAILABLE && BR2_PACKAGE_QT5)
+	depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII if BR2_PACKAGE_QT # Qt GUI module
 	select BR2_PACKAGE_QT_STL if BR2_PACKAGE_QT
 	select BR2_PACKAGE_QT_SCRIPT if BR2_PACKAGE_QT
 	select BR2_PACKAGE_QT_GUI_MODULE if BR2_PACKAGE_QT
package/opencv/Config.in +1 -0
index 679ce6f..8c42dd8 100644
@@ -210,6 +210,7 @@ config BR2_PACKAGE_OPENCV_WITH_QT
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_USE_MMU # qt
 	depends on BR2_PACKAGE_OPENCV_LIB_HIGHGUI
+	depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII # Qt GUI module
 	select BR2_PACKAGE_QT
 	select BR2_PACKAGE_QT_STL
 	select BR2_PACKAGE_QT_GUI_MODULE
package/opencv3/Config.in +1 -0
index 8736805..33e8c8b 100644
@@ -84,6 +84,7 @@ comment "gtk3 support needs libgtk3"
 config BR2_PACKAGE_OPENCV3_WITH_QT
 	bool "qt4"
 	depends on BR2_PACKAGE_QT
+	depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII # Qt GUI module
 	select BR2_PACKAGE_QT_STL
 	select BR2_PACKAGE_QT_GUI_MODULE
 	select BR2_PACKAGE_QT_TEST
package/pinentry/Config.in +1 -0
index edf3316..4d7bdea 100644
@@ -40,6 +40,7 @@ config BR2_PACKAGE_PINENTRY_QT4
 	depends on BR2_USE_MMU # fork
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_TOOLCHAIN_HAS_THREADS
+	depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII # Qt GUI module
 	select BR2_PACKAGE_QT
 	select BR2_PACKAGE_QT_GUI_MODULE
 	help
package/poppler/Config.in +1 -0
index fa4ce22..c749790 100644
@@ -15,6 +15,7 @@ if BR2_PACKAGE_POPPLER
 config BR2_PACKAGE_POPPLER_QT
 	bool "Qt support"
 	depends on BR2_PACKAGE_QT
+	depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII # Qt GUI module
 	select BR2_PACKAGE_QT_GUI_MODULE
 	select BR2_PACKAGE_QT_XML
 	help
package/qt/Config.in +4 -0
index bf14724..fda3826 100644
@@ -33,6 +33,7 @@ comment "Qt standard (X11) not available (need X.org)"
 config BR2_PACKAGE_QT_X11
 	bool "Qt standard (X11)"
 	depends on BR2_PACKAGE_XORG7
+	depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII # Qt GUI module
 	select BR2_PACKAGE_FONTCONFIG
 	select BR2_PACKAGE_XLIB_LIBXI
 	select BR2_PACKAGE_XLIB_LIBX11
@@ -56,6 +57,7 @@ config BR2_PACKAGE_QT_DEBUG
 
 config BR2_PACKAGE_QT_DEMOS
 	bool "Compile and install Qt demos (with code)"
+	depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII # Qt GUI module
 	select BR2_PACKAGE_QT_GUI_MODULE
 	help
 	  If unsure, say N.
@@ -69,6 +71,7 @@ config BR2_PACKAGE_QT_TRANSLATION_FILES
 
 config BR2_PACKAGE_QT_EXAMPLES
 	bool "Compile and install Qt examples (with code)"
+	depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII # Qt GUI module
 	select BR2_PACKAGE_QT_GUI_MODULE
 	help
 	  If unsure, say N.
@@ -130,6 +133,7 @@ config BR2_PACKAGE_QT_QT3SUPPORT
 
 config BR2_PACKAGE_QT_GUI_MODULE
 	bool "Gui Module"
+	depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII # triggers compiler bug with binutils 2.25
 	select BR2_PACKAGE_QT_NETWORK
 	default y
 	help
Signature · 1 line
2.4.3
#1 lore raw

PATCH 1/1 package/qt: disable Qt GUI module for CS NiosII toolchain

Dear Romain Naour,

Quoted 9 lines · Romain Naour

The libQtGui.so build triggers an ld error with Binutils 2.25.1

Avoid (GCC 5.2 and Binutils 2.25.51):
http://autobuild.buildroot.net/results/c94/c945bce96966e5e39d093c4265058a66f749eea6

Similar (GCC 4.9.3 and Binutils 2.25.1):
http://autobuild.buildroot.net/results/ca9/ca981c419bfedb38c591f6e75151a943bc9535ef

Can you check if the internal NIOSII toolchain also has this problem or not?

Thanks!

Thomas

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

PATCH 1/1 package/qt: disable Qt GUI module for CS NiosII toolchain

Hi Thomas

Le 24 d?c. 2015 08:39, "Thomas Petazzoni" <
[email protected]> a ?crit :

Quoted 8 lines

Dear Romain Naour,

Quoted 4 lines · Romain Naour

The libQtGui.so build triggers an ld error with Binutils 2.25.1

Avoid (GCC 5.2 and Binutils 2.25.51):

http://autobuild.buildroot.net/results/c94/c945bce96966e5e39d093c4265058a66f749eea6

Quoted 3 lines
Quoted 3 lines

Similar (GCC 4.9.3 and Binutils 2.25.1):

http://autobuild.buildroot.net/results/ca9/ca981c419bfedb38c591f6e75151a943bc9535ef

Quoted 5 lines
Quoted 2 lines

Can you check if the internal NIOSII toolchain also has this problem or not?

Actualy, the second build failure was with the internal NIOSII toolchain.

This patch doesn't avoid to select Qt GUI with the internal NIOSII toolchain :-/

Best regards,
Romain

Quoted 8 lines

Thanks!

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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20151224/5d7cf4d5/attachment.html>

#3 lore raw

PATCH 1/1 package/qt: disable Qt GUI module for CS NiosII toolchain

Romain,

Quoted 4 lines · Romain Naour
Quoted 2 lines

Can you check if the internal NIOSII toolchain also has this problem or not?

Actualy, the second build failure was with the internal NIOSII toolchain.

Then it would be good to report the bug to upstream binutils. And indeed, your patch needs to be adjusted then :)

Thomas

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

PATCH 1/1 package/qt: disable Qt GUI module for CS NiosII toolchain

Thomas,

Le 24 d?c. 2015 09:19, "Thomas Petazzoni" <
[email protected]> a ?crit :

Quoted 6 lines

Romain,

Quoted 1 line · Romain Naour
Quoted 1 line

Can you check if the internal NIOSII toolchain also has this problem

or

Quoted 3 lines
Quoted 3 lines
Quoted 1 line

not?

Actualy, the second build failure was with the internal NIOSII

toolchain.

Quoted 3 lines

Then it would be good to report the bug to upstream binutils. And indeed, your patch needs to be adjusted then :)

I think this patch is ok as is because we black list Qt GUI only with the CS toolchain and there is nothing we can do to fix the issue. I will see latter if I found a Binutils patch for it, if not report the issue.

Quoted 6 lines

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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20151224/b355fd4b/attachment.html>

#5 lore raw

PATCH 1/1 package/qt: disable Qt GUI module for CS NiosII toolchain

Dear Romain Naour,

Quoted 4 lines · Romain Naour

I think this patch is ok as is because we black list Qt GUI only with the CS toolchain and there is nothing we can do to fix the issue. I will see latter if I found a Binutils patch for it, if not report the issue.

Well, since the problem also affects nios2 internal toolchains, I believe the dependencies should be !BR2_nios2, of course unless you find an existing binutils patch to fix the problem. But if you don't, then we will have to exclude nios2 entirely.

To be honest, the likeliness of having people using Qt GUI on nios2 is very small, if not zero. So we shouldn't care too much about this IMO.

Thanks,

Thomas

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

PATCH 1/1 package/qt: disable Qt GUI module for CS NiosII toolchain

Hi Thomas,

Le 24/12/2015 11:12, Thomas Petazzoni a ?crit :

Quoted 9 lines

Dear Romain Naour,

Quoted 4 lines · Romain Naour

I think this patch is ok as is because we black list Qt GUI only with the CS toolchain and there is nothing we can do to fix the issue. I will see latter if I found a Binutils patch for it, if not report the issue.

Quoted 4 lines

Well, since the problem also affects nios2 internal toolchains, I believe the dependencies should be !BR2_nios2, of course unless you find an existing binutils patch to fix the problem. But if you don't, then we will have to exclude nios2 entirely.

I greped in the Binutils git tree but I didn't see anything easy to backport to fixes the issue. I tried to build a nios2 toolchain with gcc 5.2.3 and the latest commit of the upcoming Binutils 2.26 release, and Qt GUI build fine.

I think we'll need to rebuild a new nios2 toolchain (with gcc 5.2.3 and binutils 2.26) to fix most of the build issues related to ld assertion fail or Assembler messages (libcap-ng).

Also Qt GUI is not the only one affected by this issue (gtkmm3):
http://autobuild.buildroot.net/results/3e2/3e2ad2de03b5e9f181332d06dcf860e51fcd47f8/build-end.log

(Ok, likely not very used on nios2 ether)

Quoted 3 lines

To be honest, the likeliness of having people using Qt GUI on nios2 is very small, if not zero. So we shouldn't care too much about this IMO.

Ok, let exclude Qt GUI on nios2 but other packages may have the same issue.

Best regards,
Romain

Quoted 5 lines

Thanks,

Thomas

#7 lore raw

PATCH 1/1 package/qt: disable Qt GUI module for CS NiosII toolchain

Hello,

Quoted 8 lines · Romain Naour
Quoted 4 lines

Well, since the problem also affects nios2 internal toolchains, I believe the dependencies should be !BR2_nios2, of course unless you find an existing binutils patch to fix the problem. But if you don't, then we will have to exclude nios2 entirely.

I greped in the Binutils git tree but I didn't see anything easy to backport to fixes the issue. I tried to build a nios2 toolchain with gcc 5.2.3 and the latest commit of the upcoming Binutils 2.26 release, and Qt GUI build fine.

Ah! This is interesting! I tested with binutils 2.25 and the gtkmm3 use case, and it was still failing, so I reported the bug upstream at
https://sourceware.org/bugzilla/show_bug.cgi?id=19405.

Quoted 3 lines

I think we'll need to rebuild a new nios2 toolchain (with gcc 5.2.3 and binutils 2.26) to fix most of the build issues related to ld assertion fail or Assembler messages (libcap-ng).

Interesting! I quickly tried to backport a few patches from binutils git on top of 2.25, but I still get the assertion fail when building gtkmm3.

Quoted 2 lines

Also Qt GUI is not the only one affected by this issue (gtkmm3):
http://autobuild.buildroot.net/results/3e2/3e2ad2de03b5e9f181332d06dcf860e51fcd47f8/build-end.log

Indeed.

Quoted 4 lines
Quoted 2 lines

To be honest, the likeliness of having people using Qt GUI on nios2 is very small, if not zero. So we shouldn't care too much about this IMO.

Ok, let exclude Qt GUI on nios2 but other packages may have the same issue.

I suggest to simply exclude all those packages on BR2_nios2, with maybe a comment "broken on existing external/internal toolchains, revisit when they are upgraded". In any case, such "big" packages are highly unlikely to ever be used on nios2.

Can you resend a patch adding a !BR2_nios2 dependency everywhere?

Thanks!

Thomas

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