summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorM Joonas Pihlaja <jpihlaja@cc.helsinki.fi>2009-09-13 17:35:29 -0600
committerM Joonas Pihlaja <jpihlaja@cc.helsinki.fi>2009-09-14 13:32:18 +0300
commitcf0fed2191c2b5ebce8855def1dd302ccf8e039a (patch)
tree9df818069ca795df41ec28c252b60e8e76811e2c
parent1c7ac6c47addd6825c4f49f514fe3ffb708e3813 (diff)
[build] Check for dlsym in both libdl and libc.
The BSDs have dlsym() in libc rather than libdl.
-rw-r--r--boilerplate/cairo-boilerplate.c4
-rw-r--r--configure.ac12
-rw-r--r--util/cairo-trace/Makefile.am6
3 files changed, 14 insertions, 8 deletions
diff --git a/boilerplate/cairo-boilerplate.c b/boilerplate/cairo-boilerplate.c
index 46bb0574..1414699c 100644
--- a/boilerplate/cairo-boilerplate.c
+++ b/boilerplate/cairo-boilerplate.c
@@ -45,7 +45,7 @@
#include <assert.h>
#include <errno.h>
-#if HAVE_DL
+#if HAVE_DLFCN_H
#include <dlfcn.h>
#endif
@@ -349,7 +349,7 @@ probe_target (const cairo_boilerplate_target_t *target)
if (target->probe == NULL)
return TRUE;
-#if HAVE_DL
+#if HAVE_DLSYM
return dlsym (NULL, target->probe) != NULL;
#else
return TRUE;
diff --git a/configure.ac b/configure.ac
index d2c1231a..c38d2c49 100644
--- a/configure.ac
+++ b/configure.ac
@@ -37,10 +37,12 @@ AC_CHECK_LIB(z, compress,
[have_libz="no (requires zlib http://www.gzip.org/zlib/)"])
AC_CHECK_LIB(dl, dlsym,
- [AC_CHECK_HEADER(dlfcn.h, [
- have_dl=yes
- AC_DEFINE(HAVE_DL, 1, [Define to 1 if you have dl available])
- ], [have_dl=no])], [have_dl=no])
+ [have_dlsym=yes; have_dl=yes],
+ [have_dlsym=no; have_dl=no])
+if test "x$have_dlsym" = "xno"; then
+ AC_CHECK_FUNC(dlsym, [have_dlsym=yes], [have_dlsym=no])
+fi
+AC_CHECK_HEADERS(dlfcn.h, [have_dlsym=yes], [have_dlsym=no])
AM_CONDITIONAL(CAIRO_HAS_DL, test "x$have_dl" = "xyes")
dnl ===========================================================================
@@ -659,7 +661,7 @@ esac
CAIRO_ENABLE(trace, cairo-trace, auto, [
if test "x$have_ld_preload" != "xyes" -o \
"x$have_libz" != "xyes" -o \
- "x$have_dl" != "xyes"; then
+ "x$have_dlsym" != "xyes"; then
use_trace="no (requires dynamic linker and zlib)"
fi
])
diff --git a/util/cairo-trace/Makefile.am b/util/cairo-trace/Makefile.am
index 7e2f66e6..814a0f00 100644
--- a/util/cairo-trace/Makefile.am
+++ b/util/cairo-trace/Makefile.am
@@ -12,7 +12,11 @@ cairo_trace_la_CPPFLAGS = -DCAIRO_TRACE_OUTDIR="\"$(cairooutdir)\"" \
$(AM_CPPFLAGS)
cairo_trace_la_CFLAGS = $(CAIRO_CFLAGS)
cairo_trace_la_LDFLAGS = -module -no-undefined
-cairo_trace_la_LIBADD = -ldl -lz
+
+cairo_trace_la_LIBADD = -lz
+if CAIRO_HAS_DL
+cairo_trace_la_LIBADD += -ldl
+endif
if CAIRO_HAS_SYMBOL_LOOKUP
cairo_trace_la_SOURCES += \