configure.ac: fix linking when using compiler sanitizers
The GCC address sanitizer overrides dlopen and dlclose, so the configure test does not detect libdl as a needed dependency for linking. It is still needed though, as dlsym is not exported by the sanitizer. The result is that linking fails in the end. Fix this by checking for dlsym instead of dlopen. This can be reproduced by configuring the build with: CFLAGS="-fsanitize=address -fsanitize=undefined" LDFLAGS="-fsanitize=address -fsanitize=undefined" Signed-off-by: Arnaud Vrac <rawoul@gmail.com> Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
This commit is contained in:
parent
7b5fe9b076
commit
d6d97dad03
@ -74,7 +74,7 @@ libweston_@LIBWESTON_MAJOR@_la_CPPFLAGS = $(AM_CPPFLAGS) -DIN_WESTON
|
||||
libweston_@LIBWESTON_MAJOR@_la_CFLAGS = $(AM_CFLAGS) \
|
||||
$(COMPOSITOR_CFLAGS) $(EGL_CFLAGS) $(LIBUNWIND_CFLAGS) $(LIBDRM_CFLAGS)
|
||||
libweston_@LIBWESTON_MAJOR@_la_LIBADD = $(COMPOSITOR_LIBS) $(LIBUNWIND_LIBS) \
|
||||
$(DLOPEN_LIBS) -lm $(CLOCK_GETTIME_LIBS) \
|
||||
$(DL_LIBS) -lm $(CLOCK_GETTIME_LIBS) \
|
||||
$(LIBINPUT_BACKEND_LIBS) libshared.la
|
||||
libweston_@LIBWESTON_MAJOR@_la_LDFLAGS = -version-info $(LT_VERSION_INFO)
|
||||
|
||||
@ -194,7 +194,7 @@ weston_CPPFLAGS = $(AM_CPPFLAGS) -DIN_WESTON \
|
||||
weston_CFLAGS = $(AM_CFLAGS) $(COMPOSITOR_CFLAGS) $(LIBUNWIND_CFLAGS)
|
||||
weston_LDADD = libshared.la libweston-@LIBWESTON_MAJOR@.la \
|
||||
$(COMPOSITOR_LIBS) $(LIBUNWIND_LIBS) \
|
||||
$(DLOPEN_LIBS) $(LIBINPUT_BACKEND_LIBS) \
|
||||
$(DL_LIBS) $(LIBINPUT_BACKEND_LIBS) \
|
||||
$(CLOCK_GETRES_LIBS) \
|
||||
-lm
|
||||
|
||||
|
@ -86,7 +86,8 @@ AC_ARG_VAR([WESTON_SHELL_CLIENT],
|
||||
|
||||
PKG_PROG_PKG_CONFIG()
|
||||
|
||||
WESTON_SEARCH_LIBS([DLOPEN], [dl], [dlopen])
|
||||
# Check for dlsym instead of dlopen because ASAN hijacks the latter
|
||||
WESTON_SEARCH_LIBS([DL], [dl], [dlsym])
|
||||
|
||||
# In old glibc versions (< 2.17) clock_gettime() and clock_getres() are in librt
|
||||
WESTON_SEARCH_LIBS([CLOCK_GETTIME], [rt], [clock_gettime])
|
||||
|
Loading…
Reference in New Issue
Block a user