[git commit master] librt additions that are now possible with nptl
Bernhard Reutner-Fischer
rep.dot.nop at gmail.com
Thu Jun 17 17:26:38 UTC 2010
Hi,
Just some rant below.
On Fri, Apr 23, 2010 at 07:31:55AM -0700, Austin Foxley wrote:
>
>commit: http://git.uclibc.org/uClibc/commit/?id=a202cf6f119f41532b60ad28bc48746b535fd34c
>branch: http://git.uclibc.org/uClibc/commit/?id=refs/heads/master
>
> * clock_getcpuclockid, clock_gettime, clock_nanosleep, mq_receive,
> mq_send, mq_timedreceive, mq_timedsend, _SC_MONOTONIC_CLOCK
>
>Signed-off-by: Austin Foxley <austinf at cetoncorp.com>
>---
> librt/Makefile.in | 31 ++++-
>diff --git a/librt/Makefile.in b/librt/Makefile.in
>index aaa1918..ea1d03e 100644
>--- a/librt/Makefile.in
>+++ b/librt/Makefile.in
>@@ -9,7 +9,12 @@ subdirs += librt
>
> CFLAGS-librt := -DNOT_IN_libc -DIS_IN_librt $(SSP_ALL_CFLAGS)
>
>-LDFLAGS-librt.so := $(LDFLAGS) $(call link.asneeded,-lc)
removing this was a bad idea.
>+ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
>+LDFLAGS-librt.so := $(LDFLAGS) $(top_builddir)lib/libdl.so \
>+ $(top_builddir)lib/libpthread.so
>+else
>+LDFLAGS-librt.so := $(LDFLAGS)
>+endif
>
> LIBS-librt.so := $(LIBS)
wrong. libs are to be placed in LIBS.
If you do that properly, you suddently don't have to put
pthread symbols (prominent example being pthread_atfork()) into
librt.
>
>@@ -19,22 +24,36 @@ librt_DIR := $(top_srcdir)librt
> librt_OUT := $(top_builddir)librt
>
> ifeq ($(UCLIBC_HAS_REALTIME),y)
>-librt_SRC := $(wildcard $(librt_DIR)/*.c)
>-librt_OBJ := $(patsubst $(librt_DIR)/%.c,$(librt_OUT)/%.o,$(librt_SRC))
>+ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
>+librt_CSRC := $(filter-out mq_notify.c timer_create.c timer_delete.c \
>+ timer_getoverr.c timer_gettime.c timer_settime.c, \
>+ $(notdir $(wildcard $(librt_DIR)/*.c)))
This is inadequate in several ways:
1) librt_CSRC-$(CONFIG_KNOB) is shorter, easier to read and overall
better.
2) make(1) has $(filter-out) that you should have used to filter out the
objects that may have come from another source, impl agnostic.
>+librt_SSRC := $(wildcard $(librt_DIR)/*.S)
>+librt_OBJ := $(patsubst %.c,$(librt_OUT)/%.o,$(librt_CSRC))
>+librt_OBJ += $(patsubst $(librt_DIR)/%.S,$(librt_OUT)/%.o,$(librt_SSRC))
>+else
>+librt_SRC := $(filter-out clock_nanosleep.c clock_getcpuclockid.c clock_gettime.c, \
>+ $(notdir $(wildcard $(librt_DIR)/*.c)))
>+librt_OBJ := $(patsubst %.c,$(librt_OUT)/%.o,$(librt_SRC))
>+endif
ditto.
I'm taking care of these.
More information about the uClibc-cvs
mailing list