From mboxrd@z Thu Jan 1 00:00:00 1970 From: Emil Velikov Subject: Re: [PATCHv2 1/4] pipe-loader: split out "client" version Date: Tue, 11 Feb 2014 19:12:51 +0000 Message-ID: <52FA7633.8000000@gmail.com> References: <1392057261-25942-1-git-send-email-robdclark@gmail.com> <1392057261-25942-2-git-send-email-robdclark@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail-wi0-f182.google.com (mail-wi0-f182.google.com [209.85.212.182]) by gabe.freedesktop.org (Postfix) with ESMTP id 23411FAA88 for ; Tue, 11 Feb 2014 11:10:44 -0800 (PST) Received: by mail-wi0-f182.google.com with SMTP id f8so5096428wiw.15 for ; Tue, 11 Feb 2014 11:10:43 -0800 (PST) In-Reply-To: <1392057261-25942-2-git-send-email-robdclark@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces@lists.freedesktop.org Errors-To: dri-devel-bounces@lists.freedesktop.org To: Rob Clark , dri-devel@lists.freedesktop.org Cc: emil.l.velikov@gmail.com, Rob Clark List-Id: dri-devel@lists.freedesktop.org On 10/02/14 18:34, Rob Clark wrote: > From: Rob Clark > > 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 > --- > 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) \ >