Mesa (master): st/xa, xa/vmwgfx: Generate exported symbol list from the st/ xa symbols.

Thomas Hellstrom thomash at kemper.freedesktop.org
Fri Nov 25 15:49:59 UTC 2011


Module: Mesa
Branch: master
Commit: 32b1641a59610d94c0b56bf0494b2fc1cf400e3e
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=32b1641a59610d94c0b56bf0494b2fc1cf400e3e

Author: Thomas Hellstrom <thellstrom at vmware.com>
Date:   Thu Nov 24 21:54:54 2011 +0100

st/xa, xa/vmwgfx: Generate exported symbol list from the st/xa symbols.

Signed-off-by: Thomas Hellstrom <thellstrom at vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob at vmware.com>

---

 configs/autoconf.in                      |    3 +++
 configure.ac                             |   12 ++++++++++++
 src/gallium/state_trackers/xa/xa_symbols |   30 ------------------------------
 src/gallium/targets/xa-vmwgfx/Makefile   |   10 +++++++---
 4 files changed, 22 insertions(+), 33 deletions(-)

diff --git a/configs/autoconf.in b/configs/autoconf.in
index 3d4c749..9ea7588 100644
--- a/configs/autoconf.in
+++ b/configs/autoconf.in
@@ -54,6 +54,9 @@ MKLIB_OPTIONS = @MKLIB_OPTIONS@
 MKDEP = @MKDEP@
 MKDEP_OPTIONS = @MKDEP_OPTIONS@
 INSTALL = @INSTALL@
+AWK = @AWK@
+GREP = @GREP@
+NM = @NM@
 
 # Python and flags (generally only needed by the developers)
 PYTHON2 = @PYTHON2@
diff --git a/configure.ac b/configure.ac
index 8885a6d..febb9f6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1469,8 +1469,20 @@ dnl
 dnl XA configuration
 dnl
 if test "x$enable_xa" = xyes; then
+AC_PROG_AWK
+AC_PROG_GREP
+AC_CHECK_PROG(NM, nm, "nm")
+if test "x$AWK" = x || test "x$GREP" = x || test "x$NM" = x; then
+AC_MSG_WARN([Missing one of nm, grep or awk. Disabling xa.])
+enable_xa=no
+fi
+fi
+if test "x$enable_xa" = xyes; then
     GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
     HAVE_ST_XA=yes
+    AC_SUBST(AWK)
+    AC_SUBST(GREP)
+    AC_SUBST(NM)
 fi
 
 dnl
diff --git a/src/gallium/state_trackers/xa/xa_symbols b/src/gallium/state_trackers/xa/xa_symbols
deleted file mode 100644
index 6da701f..0000000
--- a/src/gallium/state_trackers/xa/xa_symbols
+++ /dev/null
@@ -1,30 +0,0 @@
-xa_tracker_version
-xa_tracker_create
-xa_tracker_destroy
-xa_surface_create
-xa_surface_destroy
-xa_surface_redefine
-xa_surface_dma
-xa_surface_map
-xa_surface_unmap
-xa_surface_format
-xa_surface_handle
-xa_format_check_supported
-xa_context_default
-xa_context_create
-xa_context_destroy
-xa_fence_get
-xa_fence_wait
-xa_fence_destroy
-xa_copy_prepare
-xa_copy
-xa_copy_done
-xa_solid_prepare
-xa_solid
-xa_solid_done
-xa_composite_allocation
-xa_composite_check_accelerated
-xa_composite_prepare
-xa_composite_rect
-xa_composite_done
-xa_yuv_planar_blit
diff --git a/src/gallium/targets/xa-vmwgfx/Makefile b/src/gallium/targets/xa-vmwgfx/Makefile
index a4c02d1..6ca446a 100644
--- a/src/gallium/targets/xa-vmwgfx/Makefile
+++ b/src/gallium/targets/xa-vmwgfx/Makefile
@@ -52,13 +52,17 @@ endif
 
 default: $(TOP)/$(LIB_DIR)/gallium/$(XA_LIB_NAME)
 
+# Generate list of library visible symbols
+xa_symbols: $(TOP)/src/gallium/state_trackers/xa/libxatracker.o
+	$(NM) $< | $(GREP) ' T ' | $(AWK) '{print $$3}' > $@
 
 # Make the library
-$(TOP)/$(LIB_DIR)/gallium/$(XA_LIB_NAME): depend $(OBJECTS) $(XA_LIB_DEPS)
+$(TOP)/$(LIB_DIR)/gallium/$(XA_LIB_NAME): depend $(OBJECTS) $(XA_LIB_DEPS) \
+	xa_symbols
 	$(MKLIB) -o $(XA_LIB) -linker $(LD) -ldflags '$(LDFLAGS)' \
 		-major $(XA_MAJOR) -minor $(XA_MINOR) -patch $(XA_TINY) \
 		$(MKLIB_OPTIONS) \
-		-exports $(TOP)/src/gallium/state_trackers/xa/xa_symbols\
+		-exports xa_symbols \
 		 -install $(TOP)/$(LIB_DIR)/gallium \
 		$(OBJECTS) $(XA_LIB_DEPS) $(GALLIUM_AUXILIARIES)
 
@@ -91,7 +95,7 @@ clean:
 	-rm -f *.la
 	-rm -f *.pc
 	-rm -rf .libs
-	-rm -f depend depend.bak exptmp
+	-rm -f depend depend.bak exptmp xa_symbols
 
 
 depend: $(SOURCES)




More information about the mesa-commit mailing list