[PATCH weston] build: add check for clock_gettime() in librt

Bryce Harrington bryce at osg.samsung.com
Thu Apr 21 19:08:55 UTC 2016


On Thu, Apr 21, 2016 at 11:18:48AM -0300, Gustavo Zacarias wrote:
> 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 at zacarias.com.ar>

Reviewed-by: Bryce Harrington <bryce at osg.samsung.com>
> ---
>  Makefile.am  | 15 ++++++++-------
>  configure.ac |  5 +++++
>  2 files changed, 13 insertions(+), 7 deletions(-)
> 
> diff --git a/Makefile.am b/Makefile.am
> index d3c3f71..c042c68 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -65,7 +65,7 @@ weston_LDFLAGS = -export-dynamic
>  weston_CPPFLAGS = $(AM_CPPFLAGS) -DIN_WESTON
>  weston_CFLAGS = $(AM_CFLAGS) $(COMPOSITOR_CFLAGS) $(LIBUNWIND_CFLAGS)
>  weston_LDADD = $(COMPOSITOR_LIBS) $(LIBUNWIND_LIBS) \
> -	$(DLOPEN_LIBS) -lm -lrt libshared.la
> +	$(DLOPEN_LIBS) -lm $(CLOCK_GETTIME_LIBS) libshared.la
>  
>  weston_SOURCES =					\
>  	src/git-version.h				\
> @@ -270,7 +270,8 @@ drm_backend_la_LIBADD =				\
>  	$(COMPOSITOR_LIBS)			\
>  	$(DRM_COMPOSITOR_LIBS)			\
>  	$(INPUT_BACKEND_LIBS)			\
> -	libshared.la -lrt			\
> +	libshared.la				\
> +	$(CLOCK_GETTIME_LIBS)			\
>  	libsession-helper.la
>  drm_backend_la_CFLAGS =				\
>  	$(COMPOSITOR_CFLAGS)			\
> @@ -508,11 +509,11 @@ nodist_weston_presentation_shm_SOURCES =		\
>  	protocol/presentation-time-protocol.c		\
>  	protocol/presentation-time-client-protocol.h
>  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_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
>  
>  if BUILD_SIMPLE_EGL_CLIENTS
> @@ -580,7 +581,7 @@ BUILT_SOURCES += $(nodist_libtoytoolkit_la_SOURCES)
>  libtoytoolkit_la_LIBADD =			\
>  	$(CLIENT_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)
>  
>  weston_flower_SOURCES = clients/flower.c
> @@ -1181,7 +1182,7 @@ vertex_clip_test_SOURCES =			\
>  	shared/helpers.h			\
>  	src/vertex-clipping.c			\
>  	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 =			\
>  	tests/weston-test-client-helper.c	\
> @@ -1269,7 +1270,7 @@ matrix_test_SOURCES =				\
>  	shared/matrix.c				\
>  	shared/matrix.h
>  matrix_test_CPPFLAGS = -DUNIT_TEST
> -matrix_test_LDADD = -lm -lrt
> +matrix_test_LDADD = -lm $(CLOCK_GETTIME_LIBS)
>  
>  if ENABLE_IVI_SHELL
>  module_tests += 				\
> diff --git a/configure.ac b/configure.ac
> index 447cf6b..670200c 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -46,6 +46,11 @@ AC_CHECK_FUNC([dlopen], [],
>                AC_CHECK_LIB([dl], [dlopen], DLOPEN_LIBS="-ldl"))
>  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_MSG_ERROR("SFD_CLOEXEC is needed to compile weston")],
>  	      [[#include <sys/signalfd.h>]])
> -- 
> 2.7.3
> 
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/wayland-devel


More information about the wayland-devel mailing list