From mboxrd@z Thu Jan 1 00:00:00 1970 From: Natanael Copa Date: Tue, 14 Feb 2012 08:45:44 +0000 Subject: Re: [PATCH] make: link udevd with -lrt Message-Id: <20120214094544.2d8afde7@ncopa-desktop.nor.wtbts.net> List-Id: References: <1328127721-18825-1-git-send-email-ncopa@alpinelinux.org> In-Reply-To: <1328127721-18825-1-git-send-email-ncopa@alpinelinux.org> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-hotplug@vger.kernel.org On Sun, 12 Feb 2012 22:10:34 +0100 Kay Sievers wrote: > On Wed, Feb 1, 2012 at 21:22, Natanael Copa > wrote: > > sd-daemon.c uses mq_getattr() and should link with -lrt as the > > man mq_getattr(3) states. > > Something seems wrong on your system. The: > AC_SEARCH_LIBS([clock_gettime], [rt], ... > in configure.ac should take care of that, and puts this in Makefile: > LIBS = -lrt > ... > $(AM_V_CCLD)$(src_udevd_LINK) $(src_udevd_OBJECTS) > $(src_udevd_LDADD) $(LIBS) > > Kay configure:12437: checking for library containing clock_gettime configure:12468: ccache gcc -o conftest -march=i486 -Os -fomit-frame-pointer -pipe -march=i486 -Os -fomit-frame-pointer -pipe -Wl,--as-needed conftest.c >&5 configure:12468: $? = 0 configure:12485: result: none required $ nm -D /lib/libc.so.0.9.32 | grep clock_gettime 0000000000010b08 T clock_gettime $ nm -D /lib/librt.so.0.9.32 | grep clock_gettime 00000000000023c0 T clock_gettime So what is "wrong" on my system is that uClibc provides 2 different versions of clock_gettime. One is with the threading additions and one is without. This makes it possible to use clock_gettime() without linking in the entire libpthread unless you actually use those additions. The configure script will test if -lrt is needed by checking clock_gettime() and bumps into this "feature" and thinks it does not need to add the -lrt flag. However, it also uses mq_getattr() which does require -lrt. We should probably check for mq_getattr() instead of clock_gettime(). Thanks! -nc