build: add check for clock_gettime() in librt

zuctest is another clock_gettime() user that fails to link against librt when
necessary.

Instead of adding another -lrt LDADD entry i've opted for the saner way and
converted the check to a configure test that will set CLOCK_GETTIME_LIBS
appropiately and replaced all instances of -lrt with it.
Built-tested against old and new glibc.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
dev
Gustavo Zacarias 9 years ago committed by Pekka Paalanen
parent fd01ba055d
commit 34d5985947
  1. 15
      Makefile.am
  2. 5
      configure.ac

@ -65,7 +65,7 @@ weston_LDFLAGS = -export-dynamic
weston_CPPFLAGS = $(AM_CPPFLAGS) -DIN_WESTON weston_CPPFLAGS = $(AM_CPPFLAGS) -DIN_WESTON
weston_CFLAGS = $(AM_CFLAGS) $(COMPOSITOR_CFLAGS) $(LIBUNWIND_CFLAGS) weston_CFLAGS = $(AM_CFLAGS) $(COMPOSITOR_CFLAGS) $(LIBUNWIND_CFLAGS)
weston_LDADD = $(COMPOSITOR_LIBS) $(LIBUNWIND_LIBS) \ weston_LDADD = $(COMPOSITOR_LIBS) $(LIBUNWIND_LIBS) \
$(DLOPEN_LIBS) -lm -lrt libshared.la $(DLOPEN_LIBS) -lm $(CLOCK_GETTIME_LIBS) libshared.la
weston_SOURCES = \ weston_SOURCES = \
src/git-version.h \ src/git-version.h \
@ -270,7 +270,8 @@ drm_backend_la_LIBADD = \
$(COMPOSITOR_LIBS) \ $(COMPOSITOR_LIBS) \
$(DRM_COMPOSITOR_LIBS) \ $(DRM_COMPOSITOR_LIBS) \
$(INPUT_BACKEND_LIBS) \ $(INPUT_BACKEND_LIBS) \
libshared.la -lrt \ libshared.la \
$(CLOCK_GETTIME_LIBS) \
libsession-helper.la libsession-helper.la
drm_backend_la_CFLAGS = \ drm_backend_la_CFLAGS = \
$(COMPOSITOR_CFLAGS) \ $(COMPOSITOR_CFLAGS) \
@ -508,11 +509,11 @@ nodist_weston_presentation_shm_SOURCES = \
protocol/presentation-time-protocol.c \ protocol/presentation-time-protocol.c \
protocol/presentation-time-client-protocol.h protocol/presentation-time-client-protocol.h
weston_presentation_shm_CFLAGS = $(AM_CFLAGS) $(SIMPLE_CLIENT_CFLAGS) weston_presentation_shm_CFLAGS = $(AM_CFLAGS) $(SIMPLE_CLIENT_CFLAGS)
weston_presentation_shm_LDADD = $(SIMPLE_CLIENT_LIBS) libshared.la -lm -lrt weston_presentation_shm_LDADD = $(SIMPLE_CLIENT_LIBS) libshared.la -lm $(CLOCK_GETTIME_LIBS)
weston_multi_resource_SOURCES = clients/multi-resource.c weston_multi_resource_SOURCES = clients/multi-resource.c
weston_multi_resource_CFLAGS = $(AM_CFLAGS) $(SIMPLE_CLIENT_CFLAGS) weston_multi_resource_CFLAGS = $(AM_CFLAGS) $(SIMPLE_CLIENT_CFLAGS)
weston_multi_resource_LDADD = $(SIMPLE_CLIENT_LIBS) libshared.la -lrt -lm weston_multi_resource_LDADD = $(SIMPLE_CLIENT_LIBS) libshared.la $(CLOCK_GETTIME_LIBS) -lm
endif endif
if BUILD_SIMPLE_EGL_CLIENTS if BUILD_SIMPLE_EGL_CLIENTS
@ -580,7 +581,7 @@ BUILT_SOURCES += $(nodist_libtoytoolkit_la_SOURCES)
libtoytoolkit_la_LIBADD = \ libtoytoolkit_la_LIBADD = \
$(CLIENT_LIBS) \ $(CLIENT_LIBS) \
$(CAIRO_EGL_LIBS) \ $(CAIRO_EGL_LIBS) \
libshared-cairo.la -lrt -lm libshared-cairo.la $(CLOCK_GETTIME_LIBS) -lm
libtoytoolkit_la_CFLAGS = $(AM_CFLAGS) $(CLIENT_CFLAGS) $(CAIRO_EGL_CFLAGS) libtoytoolkit_la_CFLAGS = $(AM_CFLAGS) $(CLIENT_CFLAGS) $(CAIRO_EGL_CFLAGS)
weston_flower_SOURCES = clients/flower.c weston_flower_SOURCES = clients/flower.c
@ -1181,7 +1182,7 @@ vertex_clip_test_SOURCES = \
shared/helpers.h \ shared/helpers.h \
src/vertex-clipping.c \ src/vertex-clipping.c \
src/vertex-clipping.h src/vertex-clipping.h
vertex_clip_test_LDADD = libtest-runner.la -lm -lrt vertex_clip_test_LDADD = libtest-runner.la -lm $(CLOCK_GETTIME_LIBS)
libtest_client_la_SOURCES = \ libtest_client_la_SOURCES = \
tests/weston-test-client-helper.c \ tests/weston-test-client-helper.c \
@ -1269,7 +1270,7 @@ matrix_test_SOURCES = \
shared/matrix.c \ shared/matrix.c \
shared/matrix.h shared/matrix.h
matrix_test_CPPFLAGS = -DUNIT_TEST matrix_test_CPPFLAGS = -DUNIT_TEST
matrix_test_LDADD = -lm -lrt matrix_test_LDADD = -lm $(CLOCK_GETTIME_LIBS)
if ENABLE_IVI_SHELL if ENABLE_IVI_SHELL
module_tests += \ module_tests += \

@ -46,6 +46,11 @@ AC_CHECK_FUNC([dlopen], [],
AC_CHECK_LIB([dl], [dlopen], DLOPEN_LIBS="-ldl")) AC_CHECK_LIB([dl], [dlopen], DLOPEN_LIBS="-ldl"))
AC_SUBST(DLOPEN_LIBS) AC_SUBST(DLOPEN_LIBS)
# In old glibc versions (< 2.17) clock_gettime() is in librt
AC_SEARCH_LIBS([clock_gettime], [rt],
[CLOCK_GETTIME_LIBS="-lrt"])
AC_SUBST([CLOCK_GETTIME_LIBS])
AC_CHECK_DECL(SFD_CLOEXEC,[], AC_CHECK_DECL(SFD_CLOEXEC,[],
[AC_MSG_ERROR("SFD_CLOEXEC is needed to compile weston")], [AC_MSG_ERROR("SFD_CLOEXEC is needed to compile weston")],
[[#include <sys/signalfd.h>]]) [[#include <sys/signalfd.h>]])

Loading…
Cancel
Save