New: Qt 4.7.4 build crashes with Linux 2.6.29
https://bugs.busybox.net/show_bug.cgi?id=4958
Host: x86_64
Target: arm
Summary: Qt 4.7.4 build crashes with Linux 2.6.29
Product: buildroot
Version: 2012.02
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P5
Component: Other
AssignedTo: unassigned at buildroot.uclibc.org
ReportedBy: jeremie.scheer at armadeus.com
CC: buildroot at uclibc.org
Estimated Hours: 0.0
I'm using Linux 2.6.29.6 kernel and headers and I compile rootfs for ARM.
When Qt is being compiled, it crashed on this error:
linking ../../lib/libQtNetwork.so.4.7.4.obj/debug-shared-emb-arm/qnativesocketengine_unix.o: In function
`qt_safe_accept':/srv/developpements/armadeus_4-1/buildroot/output/build/qt-4.7.4/src/network/../../include/QtNetwork/private/../../../src/network/socket/qnet_unix_p.h:121:
undefined reference to `accept4'.obj/debug-shared-emb-arm/qlocalserver_unix.o: In function `qt_safe_accept':/srv/developpements/armadeus_4-1/buildroot/output/build/qt-4.7.4/src/network/socket/qnet_unix_p.h:121:
undefined reference to `accept4'
collect2: ld returned 1 exit status
make[3]: *** [../../lib/libQtNetwork.so.4.7.4] Error 1
make[3]: Leaving directory
`/srv/developpements/armadeus_4-1/buildroot/output/build/qt-4.7.4/src/network'
make[2]: *** [sub-network-make_default-ordered] Error 2
make[2]: Leaving directory
`/srv/developpements/armadeus_4-1/buildroot/output/build/qt-4.7.4'
make[1]: ***
[/srv/developpements/armadeus_4-1/buildroot/output/build/qt-4.7.4/.stamp_built]
Error 2
make[1]: Leaving directory `/srv/developpements/armadeus_4-1/buildroot'
make: *** [all] Error 2
The problem is that the function 'accept4' doesn't exist in Linux 2.6.29. It is only defined in Linux 2.6.36 or more.
So when I rebuild all rootfs and Qt against Linux 2.6.38.8, it finished successfully.
Signature · 3 lines
Configure bugmail: https://bugs.busybox.net/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
[Buildroot] [Bug 4958] Qt 4.7.4 build crashes with Linux 2.6.29
https://bugs.busybox.net/show_bug.cgi?id=4958
--- Comment #1 from Thomas Petazzoni <[email protected]> 2012-03-21 12:27:37 UTC --- There's not much we can do about this. Qt requires this accept4 system call,
which isn't available in 2.6.29, so it doesn't build if the kernel headers of
such kernel version are used.
What would like us to do here?
Signature · 3 lines
Configure bugmail: https://bugs.busybox.net/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
[Buildroot] [Bug 4958] Qt 4.7.4 build crashes with Linux 2.6.29
In reply to bugzilla at busybox.nethttps://bugs.busybox.net/show_bug.cgi?id=4958
--- Comment #2 from J?r?mie Scheer <[email protected]> 2012-03-21 14:40:11 UTC --- Created attachment 4178
--> https://bugs.busybox.net/attachment.cgi?id=4178
Omit accept4 when not supported by the kernel.
Signature · 3 lines
Configure bugmail: https://bugs.busybox.net/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
[Buildroot] [Bug 4958] Qt 4.7.4 build crashes with Linux 2.6.29
In reply to bugzilla at busybox.nethttps://bugs.busybox.net/show_bug.cgi?id=4958
--- Comment #3 from J?r?mie Scheer <[email protected]> 2012-03-21 14:43:52 UTC --- Thank you for your answer. In fact, that's not really a Buildroot problem. But I found a patch for uClibc that omits accept4 when the kernel version is too old to support it.
If that can be of any help, I attached this patch to the bug.
Signature · 3 lines
Configure bugmail: https://bugs.busybox.net/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
[Buildroot] [Bug 4958] Qt 4.7.4 build crashes with Linux 2.6.29
In reply to bugzilla at busybox.nethttps://bugs.busybox.net/show_bug.cgi?id=4958
--- Comment #4 from Peter Korsgaard <[email protected]> 2012-03-21 22:16:17 UTC --- (In reply to comment #3)
Do notice that just using new kernel headers is not enough if your kernel doesn't handle sys_accept4. Qt is also not the only program using accep4, udev is a another well known one.
Signature · 3 lines
Configure bugmail: https://bugs.busybox.net/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
[Buildroot] [Bug 4958] Qt 4.7.4 build crashes with Linux 2.6.29
In reply to bugzilla at busybox.nethttps://bugs.busybox.net/show_bug.cgi?id=4958
Thomas Petazzoni <[email protected]> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |WONTFIX--- Comment #5 from Thomas Petazzoni <[email protected]> 2012-04-23 21:54:59 UTC --- Not a Buildroot bug per se: 2.6.29 is old now, and many userspace components
depend on system calls that have been added since then, and therefore recent
enough kernel headers are needed to build several userspace packages (qt, udev,
etc.)
Signature · 3 lines
Configure bugmail: https://bugs.busybox.net/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.