From: Emil Velikov <emil.l.velikov@gmail.com>
To: Rob Clark <robdclark@gmail.com>, dri-devel@lists.freedesktop.org
Cc: emil.l.velikov@gmail.com, Rob Clark <robclark@freedesktop.org>
Subject: Re: [PATCHv2 1/4] pipe-loader: split out "client" version
Date: Tue, 11 Feb 2014 19:12:51 +0000 [thread overview]
Message-ID: <52FA7633.8000000@gmail.com> (raw)
In-Reply-To: <1392057261-25942-2-git-send-email-robdclark@gmail.com>
On 10/02/14 18:34, Rob Clark wrote:
> From: Rob Clark <robclark@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.
>
Seems like you got me confused here - you're trying to get away from the
null_sw_create which is a dummy stub, on the argument of x11 dependencies.
AFAICS both are completely unrelated, and the former should be fixed by
adding the following during link stage.
$(top_builddir)/src/gallium/winsys/sw/null/libws_null.la
x11 dependencies should not affect you and are properly resolved by the
first 5 (or so) patches in my series.
-Emil
> Signed-off-by: Rob Clark <robclark@freedesktop.org>
> ---
> configure.ac | 14 +++++++++++--
> src/gallium/auxiliary/pipe-loader/Makefile.am | 24 ++++++++++++++++++----
> 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, 40 insertions(+), 12 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index ba158e8..cba6301 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,18 @@ 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"
> fi
> fi
>
> + GALLIUM_PIPE_LOADER_CLIENT_DEFINES="$GALLIUM_PIPE_LOADER_CLIENT_DEFINES $GALLIUM_PIPE_LOADER_DEFINES"
> + GALLIUM_PIPE_LOADER_CLIENT_LIBS="$GALLIUM_PIPE_LOADER_CLIENT_LIBS $GALLIUM_PIPE_LOADER_LIBS"
> +
> 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..72b4798 100644
> --- a/src/gallium/auxiliary/pipe-loader/Makefile.am
> +++ b/src/gallium/auxiliary/pipe-loader/Makefile.am
> @@ -1,7 +1,6 @@
> AUTOMAKE_OPTIONS = subdir-objects
>
> AM_CPPFLAGS = $(DEFINES) \
> - $(GALLIUM_PIPE_LOADER_DEFINES) \
> -I$(top_srcdir)/include \
> -I$(top_srcdir)/src/loader \
> -I$(top_srcdir)/src/gallium/include \
> @@ -12,8 +11,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 +22,26 @@ 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 \
> + $(GALLIUM_PIPE_LOADER_DEFINES) \
> + $(AM_CFLAGS) $(AM_CPPFLAGS)
> +libpipe_loader_la_SOURCES = $(COMMON_SOURCES)
> +libpipe_loader_la_LIBADD = $(COMMON_LIBADD) \
> + $(GALLIUM_PIPE_LOADER_LIBS)
> +
> +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@OPENCL_LIBNAME@_la_LDFLAGS = \
> -version-number 1:0
>
> lib@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) \
>
next prev parent reply other threads:[~2014-02-11 19:10 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-10 18:34 [PATCHv2 0/4] enable XA for freedreno Rob Clark
2014-02-10 18:34 ` [PATCHv2 1/4] pipe-loader: split out "client" version Rob Clark
2014-02-11 19:12 ` Emil Velikov [this message]
2014-02-10 18:34 ` [PATCHv2 2/4] st/xa: use pipe-loader to get screen Rob Clark
2014-02-11 4:36 ` Emil Velikov
2014-02-11 12:08 ` Rob Clark
2014-02-11 12:38 ` Emil Velikov
2014-02-11 13:19 ` Rob Clark
2014-02-10 18:34 ` [PATCHv2 3/4] st/xa: missing handle type Rob Clark
2014-02-10 18:34 ` [PATCHv2 4/4] pipe-loader: add pipe loader for freedreno/msm Rob Clark
2014-02-11 4:30 ` Emil Velikov
2014-02-11 12:09 ` Rob Clark
2014-02-11 12:30 ` Emil Velikov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=52FA7633.8000000@gmail.com \
--to=emil.l.velikov@gmail.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=robclark@freedesktop.org \
--cc=robdclark@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.