[PATCH] Add platform tests for Dtrace linker magic
Jeremy Huddleston
jeremyhu at apple.com
Mon Oct 5 18:30:38 PDT 2009
Yeah, that looks cleaner.
Reviewed-by: Jeremy Huddleston <jeremyhu at apple.com>
On Oct 5, 2009, at 17:18, Alan Coopersmith wrote:
> Replaces special handling for Xquartz DDX and scales better to
> handling
> the multiple platforms that now have some level of Dtrace support
> available.
>
> Signed-off-by: Alan Coopersmith <alan.coopersmith at sun.com>
> ---
> configure.ac | 14 +++++++++++++-
> dix/Makefile.am | 2 +-
> hw/xfree86/Makefile.am | 2 +-
> os/Makefile.am | 4 +---
> test/Makefile.am | 2 +-
> test/xi2/Makefile.am | 2 +-
> 6 files changed, 18 insertions(+), 8 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index ba52329..eab315d 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -102,8 +102,20 @@ fi
> if test "x$WDTRACE" != "xno" ; then
> AC_DEFINE(XSERVER_DTRACE, 1,
> [Define to 1 if the DTrace Xserver provider probes should be
> built in.])
> +
> +# Solaris/OpenSolaris require dtrace -G to build dtrace probe
> information into
> +# object files, and require linking with those as relocatable
> objects, not .a
> +# archives. MacOS X handles all this in the normal compiler
> toolchain, and on
> +# some releases (like Tiger), will error out on dtrace -G. For
> now, other
> +# platforms with Dtrace ports are assumed to support -G (the
> FreeBSD and Linux
> +# ports appear to, based on my web searches, but have not yet been
> tested).
> + case $host_os in
> + darwin*) SPECIAL_DTRACE_OBJECTS=no ;;
> + *) SPECIAL_DTRACE_OBJECTS=yes ;;
> + esac
> fi
> AM_CONDITIONAL(XSERVER_DTRACE, [test "x$WDTRACE" != "xno"])
> +AM_CONDITIONAL(SPECIAL_DTRACE_OBJECTS, [test "x
> $SPECIAL_DTRACE_OBJECTS" = "xyes"])
>
> AC_HEADER_DIRENT
> AC_HEADER_STDC
> @@ -1245,7 +1257,7 @@ AC_DEFINE(XSYNC, 1, [Support XSync extension])
> AC_DEFINE(XCMISC, 1, [Support XCMisc extension])
> AC_DEFINE(BIGREQS, 1, [Support BigRequests extension])
>
> -if test "x$WDTRACE" != "xno" && test "x$XQUARTZ" = "xno"; then
> +if test "x$SPECIAL_DTRACE_OBJECTS" = "xyes" ; then
> DIX_LIB='$(top_builddir)/dix/dix.O'
> OS_LIB='$(top_builddir)/os/os.O'
> else
> diff --git a/dix/Makefile.am b/dix/Makefile.am
> index 85a8767..0996cff 100644
> --- a/dix/Makefile.am
> +++ b/dix/Makefile.am
> @@ -54,7 +54,7 @@ Xserver-dtrace.h: $(srcdir)/Xserver.d
> $(DTRACE) -C -h -o $@ -s $(srcdir)/Xserver.d \
> || cp Xserver-dtrace.h.in $@
>
> -if !XQUARTZ
> +if SPECIAL_DTRACE_OBJECTS
> # Generate dtrace object code for probes in libdix
> dtrace-dix.o: $(top_srcdir)/dix/Xserver.d $(am_libdix_la_OBJECTS)
> $(DTRACE) -G -C -o $@ -s $(top_srcdir)/dix/Xserver.d $
> (am_libdix_la_OBJECTS:%.lo=.libs/%.o)
> diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am
> index 48db5a1..159b935 100644
> --- a/hw/xfree86/Makefile.am
> +++ b/hw/xfree86/Makefile.am
> @@ -80,7 +80,7 @@ BUILT_SOURCES = xorg.conf.example
> DISTCLEANFILES += xorg.conf.example xorg.conf.example.pre
> EXTRA_DIST = xorgconf.cpp
>
> -if XSERVER_DTRACE
> +if SPECIAL_DTRACE_OBJECTS
> # Re-add dtrace object code that gets lost when building static
> libraries
> Xorg_LDADD += $(XSERVER_LIBS)
> endif
> diff --git a/os/Makefile.am b/os/Makefile.am
> index 9ce8ff2..22ed194 100644
> --- a/os/Makefile.am
> +++ b/os/Makefile.am
> @@ -41,8 +41,7 @@ endif
> EXTRA_DIST = $(SECURERPC_SRCS) $(INTERNALMALLOC_SRCS) \
> $(XDMCP_SRCS) $(STRLCAT_SRCS)
>
> -if !XQUARTZ
> -if XSERVER_DTRACE
> +if SPECIAL_DTRACE_OBJECTS
> # Generate dtrace object code for probes in libos & libdix
> dtrace.o: $(top_srcdir)/dix/Xserver.d $(am_libos_la_OBJECTS)
> $(DTRACE) -G -C -o $@ -s $(top_srcdir)/dix/Xserver.d .libs/*.o ../
> dix/.libs/*.o
> @@ -52,7 +51,6 @@ noinst_PROGRAMS = os.O
> os.O: dtrace.o $(am_libos_la_OBJECTS)
> ld -r -o $@ dtrace.o .libs/*.o
> endif
> -endif
>
> os.c:
> touch $@
> diff --git a/test/Makefile.am b/test/Makefile.am
> index 1bd76f5..7c44671 100644
> --- a/test/Makefile.am
> +++ b/test/Makefile.am
> @@ -9,7 +9,7 @@ AM_CFLAGS = $(DIX_CFLAGS) $(GLIB_CFLAGS) @XORG_CFLAGS@
> INCLUDES = @XORG_INCS@
> TEST_LDADD=libxservertest.la $(XORG_SYS_LIBS) $(XSERVER_SYS_LIBS) $
> (GLIB_LIBS)
>
> -if XSERVER_DTRACE
> +if SPECIAL_DTRACE_OBJECTS
> TEST_LDADD += $(OS_LIB) $(DIX_LIB)
> endif
>
> diff --git a/test/xi2/Makefile.am b/test/xi2/Makefile.am
> index ef6d0f0..0e2de6b 100644
> --- a/test/xi2/Makefile.am
> +++ b/test/xi2/Makefile.am
> @@ -17,7 +17,7 @@ INCLUDES = @XORG_INCS@
> TEST_LDADD=../libxservertest.la $(XORG_SYS_LIBS) $(XSERVER_SYS_LIBS)
> $(GLIB_LIBS)
> COMMON_SOURCES=protocol-common.h protocol-common.c
>
> -if XSERVER_DTRACE
> +if SPECIAL_DTRACE_OBJECTS
> TEST_LDADD += $(OS_LIB) $(DIX_LIB)
> endif
>
> --
> 1.5.6.5
>
> _______________________________________________
> xorg-devel mailing list
> xorg-devel at lists.x.org
> http://lists.x.org/mailman/listinfo/xorg-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3333 bytes
Desc: not available
Url : http://lists.x.org/archives/xorg-devel/attachments/20091005/253576ff/attachment-0001.bin
More information about the xorg-devel
mailing list