Skip to contentSkip to conversation

New: Qt 4.7.4 build crashes with Linux 2.6.29

Buildroot bugzilla at busybox.net 1 participant 6 messages Mar 21, 2012 – Apr 23, 2012

lore
Share & tools
lore
#0 lore raw

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.
#1 lore raw

[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.
#2 lore raw

[Buildroot] [Bug 4958] Qt 4.7.4 build crashes with Linux 2.6.29

In reply to bugzilla at busybox.net

https://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.
#3 lore raw

[Buildroot] [Bug 4958] Qt 4.7.4 build crashes with Linux 2.6.29

In reply to bugzilla at busybox.net

https://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.
#4 lore raw

[Buildroot] [Bug 4958] Qt 4.7.4 build crashes with Linux 2.6.29

In reply to bugzilla at busybox.net

https://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.
#5 lore raw

[Buildroot] [Bug 4958] Qt 4.7.4 build crashes with Linux 2.6.29

In reply to bugzilla at busybox.net

https://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.