[Mesa-dev] [PATCH 1/3] pipe-loader: split out "client" version
Emil Velikov
emil.l.velikov at gmail.com
Mon Feb 10 05:42:14 PST 2014
On 08/02/14 22:41, Rob Clark wrote:
> From: Rob Clark <robclark at freedesktop.org>
>
> Build two versions of pipe-loader, with only the client version linking
> in x11 client side dependencies. This will allow the XA state tracker
> to use pipe-loader.
>
> Signed-off-by: Rob Clark <robclark at freedesktop.org>
> ---
> configure.ac | 11 +++++++++--
> src/gallium/auxiliary/pipe-loader/Makefile.am | 19 ++++++++++++++++---
> src/gallium/auxiliary/pipe-loader/pipe_loader_sw.c | 2 ++
> src/gallium/targets/gbm/Makefile.am | 4 ++--
> src/gallium/targets/opencl/Makefile.am | 4 ++--
> src/gallium/tests/trivial/Makefile.am | 4 ++--
> 6 files changed, 33 insertions(+), 11 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index ba158e8..2424dde 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -1895,6 +1895,11 @@ AM_CONDITIONAL(NEED_GALLIUM_LLVMPIPE_DRIVER, test "x$HAVE_GALLIUM_I915" = xyes -
> "x$HAVE_GALLIUM_SOFTPIPE" = xyes \
> && test "x$MESA_LLVM" = x1)
>
> +# NOTE: anything using xcb or other client side libs ends up in separate
> +# _CLIENT variables. The pipe loader is built in two variants,
> +# one that is standalone and does not link any x client libs (for
> +# use by XA tracker in particular, but could be used in any case
> +# where communication with xserver is not desired).
> if test "x$enable_gallium_loader" = xyes; then
> GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/null"
>
> @@ -1903,13 +1908,15 @@ if test "x$enable_gallium_loader" = xyes; then
> PKG_CHECK_MODULES([GALLIUM_PIPE_LOADER_XCB], [xcb xcb-dri2],
> pipe_loader_have_xcb=yes, pipe_loader_have_xcb=no)
> if test "x$pipe_loader_have_xcb" = xyes; then
> - GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DHAVE_PIPE_LOADER_XCB"
> - GALLIUM_PIPE_LOADER_LIBS="$GALLIUM_PIPE_LOADER_LIBS $GALLIUM_PIPE_LOADER_XCB_LIBS $LIBDRM_LIBS"
> + GALLIUM_PIPE_LOADER_CLIENT_DEFINES="$GALLIUM_PIPE_LOADER_CLIENT_DEFINES -DHAVE_PIPE_LOADER_XCB"
> + GALLIUM_PIPE_LOADER_CLIENT_LIBS="$GALLIUM_PIPE_LOADER_CLIENT_LIBS $GALLIUM_PIPE_LOADER_XCB_LIBS $LIBDRM_LIBS"
The previous comments on this patch were more of a general (follow on)
cleanup to get the sw thing working than anything else.
I'm assuming that you need to drop the CLIENT_ from the rhs for both
defines and libs. Like the following
GALLIUM_PIPE_LOADER_CLIENT_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES
-DHAVE_PIPE_LOADER_XCB"
GALLIUM_PIPE_LOADER_CLIENT_LIBS="$GALLIUM_PIPE_LOADER_LIBS
$GALLIUM_PIPE_LOADER_XCB_LIBS $LIBDRM_LIBS"
With these addressed the series is
Reviewed-by: Emil Velikov <emil.l.velikov at gmail.com>
> fi
> fi
>
> AC_SUBST([GALLIUM_PIPE_LOADER_DEFINES])
> AC_SUBST([GALLIUM_PIPE_LOADER_LIBS])
> + AC_SUBST([GALLIUM_PIPE_LOADER_CLIENT_DEFINES])
> + AC_SUBST([GALLIUM_PIPE_LOADER_CLIENT_LIBS])
> fi
>
> AM_CONDITIONAL(HAVE_I915_DRI, test x$HAVE_I915_DRI = xyes)
> diff --git a/src/gallium/auxiliary/pipe-loader/Makefile.am b/src/gallium/auxiliary/pipe-loader/Makefile.am
> index 8e4d034..4d8e264 100644
> --- a/src/gallium/auxiliary/pipe-loader/Makefile.am
> +++ b/src/gallium/auxiliary/pipe-loader/Makefile.am
> @@ -12,8 +12,9 @@ noinst_LTLIBRARIES =
>
> if HAVE_LOADER_GALLIUM
> noinst_LTLIBRARIES += libpipe_loader.la
> +noinst_LTLIBRARIES += libpipe_loader_client.la
>
> -libpipe_loader_la_SOURCES = \
> +COMMON_SOURCES = \
> pipe_loader.h \
> pipe_loader_priv.h \
> pipe_loader.c \
> @@ -22,10 +23,22 @@ libpipe_loader_la_SOURCES = \
> if HAVE_DRM_LOADER_GALLIUM
> AM_CFLAGS = $(LIBDRM_CFLAGS)
>
> -libpipe_loader_la_SOURCES += pipe_loader_drm.c
> +COMMON_SOURCES += pipe_loader_drm.c
>
> -libpipe_loader_la_LIBADD = \
> +COMMON_LIBADD = \
> $(top_builddir)/src/loader/libloader.la
>
> endif
> +
> +libpipe_loader_la_CFLAGS = -DSTANDALONE_LOADER \
> + $(AM_CFLAGS) $(AM_CPPFLAGS)
> +libpipe_loader_la_SOURCES = $(COMMON_SOURCES)
> +libpipe_loader_la_LIBADD = $(COMMON_LIBADD)
> +
> +libpipe_loader_client_la_CFLAGS = $(GALLIUM_PIPE_LOADER_CLIENT_DEFINES) \
> + $(AM_CFLAGS) $(AM_CPPFLAGS)
> +libpipe_loader_client_la_SOURCES = $(COMMON_SOURCES)
> +libpipe_loader_client_la_LIBADD = $(COMMON_LIBADD) \
> + $(GALLIUM_PIPE_LOADER_CLIENT_LIBS)
> +
> endif
> diff --git a/src/gallium/auxiliary/pipe-loader/pipe_loader_sw.c b/src/gallium/auxiliary/pipe-loader/pipe_loader_sw.c
> index 95a4f84..e53e8af 100644
> --- a/src/gallium/auxiliary/pipe-loader/pipe_loader_sw.c
> +++ b/src/gallium/auxiliary/pipe-loader/pipe_loader_sw.c
> @@ -47,7 +47,9 @@ static struct sw_winsys *(*backends[])() = {
> #ifdef HAVE_WINSYS_XLIB
> x11_sw_create,
> #endif
> +#ifndef STANDALONE_LOADER
> null_sw_create
> +#endif
> };
>
> int
> diff --git a/src/gallium/targets/gbm/Makefile.am b/src/gallium/targets/gbm/Makefile.am
> index 4299d07..30a3427 100644
> --- a/src/gallium/targets/gbm/Makefile.am
> +++ b/src/gallium/targets/gbm/Makefile.am
> @@ -42,8 +42,8 @@ gbm_LTLIBRARIES = gbm_gallium_drm.la
> gbm_gallium_drm_la_SOURCES = gbm.c
>
> gbm_gallium_drm_la_LIBADD = \
> - $(GALLIUM_PIPE_LOADER_LIBS) \
> - $(top_builddir)/src/gallium/auxiliary/pipe-loader/libpipe_loader.la \
> + $(GALLIUM_PIPE_LOADER_CLIENT_LIBS) \
> + $(top_builddir)/src/gallium/auxiliary/pipe-loader/libpipe_loader_client.la \
> $(top_builddir)/src/gallium/winsys/sw/null/libws_null.la \
> $(top_builddir)/src/gallium/state_trackers/gbm/libgbm.la \
> $(top_builddir)/src/gallium/auxiliary/libgallium.la \
> diff --git a/src/gallium/targets/opencl/Makefile.am b/src/gallium/targets/opencl/Makefile.am
> index 653302c..a75b49c 100644
> --- a/src/gallium/targets/opencl/Makefile.am
> +++ b/src/gallium/targets/opencl/Makefile.am
> @@ -7,11 +7,11 @@ lib at OPENCL_LIBNAME@_la_LDFLAGS = \
> -version-number 1:0
>
> lib at OPENCL_LIBNAME@_la_LIBADD = \
> - $(top_builddir)/src/gallium/auxiliary/pipe-loader/libpipe_loader.la \
> + $(top_builddir)/src/gallium/auxiliary/pipe-loader/libpipe_loader_client.la \
> $(top_builddir)/src/gallium/winsys/sw/null/libws_null.la \
> $(top_builddir)/src/gallium/state_trackers/clover/libclover.la \
> $(top_builddir)/src/gallium/auxiliary/libgallium.la \
> - $(GALLIUM_PIPE_LOADER_LIBS) $(LIBUDEV_LIBS) \
> + $(GALLIUM_PIPE_LOADER_CLIENT_LIBS) $(LIBUDEV_LIBS) \
> -ldl \
> -lclangCodeGen \
> -lclangFrontendTool \
> diff --git a/src/gallium/tests/trivial/Makefile.am b/src/gallium/tests/trivial/Makefile.am
> index d65eb86..65fa90d 100644
> --- a/src/gallium/tests/trivial/Makefile.am
> +++ b/src/gallium/tests/trivial/Makefile.am
> @@ -11,8 +11,8 @@ AM_CPPFLAGS = \
> -DPIPE_SEARCH_DIR=\"$(PIPE_SRC_DIR)/.libs\" \
> $(GALLIUM_PIPE_LOADER_DEFINES)
>
> -LDADD = $(GALLIUM_PIPE_LOADER_LIBS) \
> - $(top_builddir)/src/gallium/auxiliary/pipe-loader/libpipe_loader.la \
> +LDADD = $(GALLIUM_PIPE_LOADER_CLIENT_LIBS) \
> + $(top_builddir)/src/gallium/auxiliary/pipe-loader/libpipe_loader_client.la \
> $(top_builddir)/src/gallium/winsys/sw/null/libws_null.la \
> $(top_builddir)/src/gallium/auxiliary/libgallium.la \
> $(LIBUDEV_LIBS) \
>
More information about the mesa-dev
mailing list