[vlc-devel] [PATCH] [contrib] Patch to fix liboil build when --disable-shared

David Flynn davidf+nntp at woaf.net
Mon Jul 7 15:01:28 CEST 2008


Without --enable-shared, libtool doesn't generate symbol lists.  Use
some autogenerated-libtool-internals to sort it out.

Tested with: gcc on linux-amd64, mingw crosscompile, apple-os10.5
---
 extras/contrib/src/Makefile                      |    1 +
 extras/contrib/src/Patches/liboil-noshared.patch |   41 ++++++++++++++++++++++
 2 files changed, 42 insertions(+), 0 deletions(-)
 create mode 100644 extras/contrib/src/Patches/liboil-noshared.patch

diff --git a/extras/contrib/src/Makefile b/extras/contrib/src/Makefile
index c2ee18f..eba9563 100644
--- a/extras/contrib/src/Makefile
+++ b/extras/contrib/src/Makefile
@@ -2424,6 +2424,7 @@ liboil-$(OIL_VERSION).tar.gz:
 
 liboil: liboil-$(OIL_VERSION).tar.gz
 	$(EXTRACT_GZ)
+	patch -d liboil -p1 < Patches/liboil-noshared.patch
 
 .liboil: liboil
 	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
diff --git a/extras/contrib/src/Patches/liboil-noshared.patch b/extras/contrib/src/Patches/liboil-noshared.patch
new file mode 100644
index 0000000..42985d0
--- /dev/null
+++ b/extras/contrib/src/Patches/liboil-noshared.patch
@@ -0,0 +1,41 @@
+--- liboil-0.3.15/liboil/Makefile.in	2008-07-01 04:46:08.000000000 +0000
++++ liboil/liboil/Makefile.in	2008-07-04 23:09:27.518585545 +0000
+@@ -1207,25 +1207,30 @@
+ 
+ 
+ liboilarray.c: liboiltmp1.la Makefile
++	../libtool --config > .libs/libtoolcfg
+ 	echo '/* This file is autogenerated.  Do not edit */' >liboilarray.c.tmp
+ 	echo >>liboilarray.c.tmp
+ 	echo '#include <liboil/liboilfunction.h>' >>liboilarray.c.tmp
+ 	echo >>liboilarray.c.tmp
+-	grep '^_oil_function_class_' .libs/liboiltmp1.exp | \
+-	  sed -e 's/ .*//' -e 's/.*/extern OilFunctionClass &;/' >>liboilarray.c.tmp
++	. .libs/libtoolcfg; eval "$$NM .libs/liboiltmp1.a | $$global_symbol_pipe " | \
++	sed -e /^[^D]/D -e 's/^. [^ ]* \([^ ]*\)/\1/' | grep ^_oil_function_class_ | \
++	  sed -e 's/.*/extern OilFunctionClass &;/' >>liboilarray.c.tmp
+ 	echo >>liboilarray.c.tmp
+ 	echo 'OilFunctionClass *_oil_function_class_array[] = {' >>liboilarray.c.tmp
+-	grep '^_oil_function_class_' .libs/liboiltmp1.exp | \
+-	  sed -e 's/ .*//' -e 's/.*/  \&&,/' >>liboilarray.c.tmp
++	. .libs/libtoolcfg; eval "$$NM .libs/liboiltmp1.a | $$global_symbol_pipe " | \
++	sed -e /^[^D]/D -e 's/^. [^ ]* \([^ ]*\)/\1/' | grep ^_oil_function_class_ | \
++	  sed -e 's/.*/  \&&,/' >>liboilarray.c.tmp
+ 	echo '  NULL' >>liboilarray.c.tmp
+ 	echo '};' >>liboilarray.c.tmp
+ 	echo >>liboilarray.c.tmp
+-	grep '^_oil_function_impl_' .libs/liboiltmp1.exp | \
+-	  sed -e 's/ .*//' -e 's/.*/extern OilFunctionImpl &;/' >>liboilarray.c.tmp
++	. .libs/libtoolcfg; eval "$$NM .libs/liboiltmp1.a | $$global_symbol_pipe " | \
++	sed -e /^[^D]/D -e 's/^. [^ ]* \([^ ]*\)/\1/' | grep ^_oil_function_impl_ | \
++	  sed -e 's/.*/extern OilFunctionImpl &;/' >>liboilarray.c.tmp
+ 	echo >>liboilarray.c.tmp
+ 	echo 'OilFunctionImpl *_oil_function_impl_array[] = {' >>liboilarray.c.tmp
+-	grep '^_oil_function_impl_' .libs/liboiltmp1.exp | \
+-	  sed -e 's/ .*//' -e 's/.*/  \&&,/' >>liboilarray.c.tmp
++	. .libs/libtoolcfg; eval "$$NM .libs/liboiltmp1.a | $$global_symbol_pipe " | \
++	sed -e /^[^D]/D -e 's/^. [^ ]* \([^ ]*\)/\1/' | grep ^_oil_function_impl_ | \
++	  sed -e 's/.*/  \&&,/' >>liboilarray.c.tmp
+ 	echo '  NULL' >>liboilarray.c.tmp
+ 	echo '};' >>liboilarray.c.tmp
+ 	echo >>liboilarray.c.tmp
-- 
1.5.5





More information about the vlc-devel mailing list