Bug 4970 - udev 181 fails to build if kernel version 3.3 is selected
Summary: udev 181 fails to build if kernel version 3.3 is selected
Status: RESOLVED FIXED
Alias: None
Product: buildroot
Classification: Unclassified
Component: Other (show other bugs)
Version: unspecified
Hardware: PC Linux
: P5 normal
Target Milestone: ---
Assignee: unassigned
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-03-22 12:15 UTC by Graeme Russ
Modified: 2012-05-03 20:26 UTC (History)
2 users (show)

See Also:
Host:
Target:
Build:


Attachments
buildroot config (21.73 KB, text/plain)
2012-03-22 12:16 UTC, Graeme Russ
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Graeme Russ 2012-03-22 12:15:54 UTC
Currently at git commit b5fd0f2709cab72f48da12a5804dd8670fffbf6e

.config attached

Error is:

src/src_udevd-sd-daemon.o: In function `sd_is_mq':
sd-daemon.c:(.text+0x6a5): undefined reference to `mq_getattr'
collect2: ld returned 1 exit status
make[3]: *** [src/udevd] Error 1
make[3]: *** Waiting for unfinished jobs....
  CCLD   src/extras/ata_id/ata_id
make[2]: *** [all-recursive] Error 1
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/graeme/Source/buildroot/output/build/udev-181'
make: *** [/home/graeme/Source/buildroot/output/build/udev-181/.stamp_built] Error 2
Comment 1 Graeme Russ 2012-03-22 12:16:41 UTC
Created attachment 4184 [details]
buildroot config
Comment 2 Thomas Petazzoni 2012-04-24 08:41:31 UTC
I have taken your exact configuration, and didn't manage to reproduce the bug. By any chance, did you make manual modifications to the uClibc configuration by running make uclibc-menuconfig? If you've done so and disabled UCLIBC_HAS_REALTIME, then mq_getattr would not be available in the C library, leading to the error you got.

Can you get back to us and confirm which uClibc you had? Thanks!
Comment 3 James Le Cuirot 2012-04-27 21:12:02 UTC
Actually I've encountered this too but building on Gentoo using Portage rather than Buildroot. My target is i586-pc-linux-uclibc and I have definitely enabled UCLIBC_HAS_REALTIME. I've checked and mq_getsetattr.c, where this function is defined, definitely gets built but for some reason, the symbol is missing from librt. I haven't yet managed to work out why.
Comment 4 James Le Cuirot 2012-04-27 21:49:13 UTC
Aha! Found the cause and it turns out this is a Linux bug that has already been fixed.

http://kernel.opensuse.org/cgit/kernel/commit/?id=4141a94694efc7d6c58e81bc55717161438d7816
Comment 5 Gustavo Zacarias 2012-05-03 20:26:27 UTC
Fixed by commit e1443db85bc7dc2a863c4bbfdf6fe777f390ad70