pcre: fix C++ static build problem
authorGustavo Zacarias <gustavo@zacarias.com.ar>
Tue, 3 Sep 2013 14:33:15 +0000 (11:33 -0300)
committerPeter Korsgaard <jacmet@sunsite.dk>
Tue, 3 Sep 2013 21:45:03 +0000 (23:45 +0200)
PCRE C++ unit tests fails to build properly for static scenarios since
it's not taken account for properly in the build system.
Just disable them, they're never installed to the target.
Fixes:
http://autobuild.buildroot.net/results/970/97027b981659502ff12c345c3caef4933cddb354/

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
package/pcre/pcre-01-no-compat.patch [new file with mode: 0644]
package/pcre/pcre-02-no-cpp-tests.patch [new file with mode: 0644]
package/pcre/pcre-no-compat.patch [deleted file]

diff --git a/package/pcre/pcre-01-no-compat.patch b/package/pcre/pcre-01-no-compat.patch
new file mode 100644 (file)
index 0000000..7099727
--- /dev/null
@@ -0,0 +1,31 @@
+Kill ABI compatibility bits, we don't need them.
+Fixes build failures on non-ELF (blackfin) targets.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura pcre-8.32.orig/pcrecpp.cc pcre-8.32/pcrecpp.cc
+--- pcre-8.32.orig/pcrecpp.cc  2012-12-28 08:32:10.193847937 -0300
++++ pcre-8.32/pcrecpp.cc       2012-12-28 08:32:26.924376180 -0300
+@@ -58,22 +58,6 @@
+ // Special object that stands-in for no argument
+ Arg RE::no_arg((void*)NULL);
+-// This is for ABI compatibility with old versions of pcre (pre-7.6),
+-// which defined a global no_arg variable instead of putting it in the
+-// RE class.  This works on GCC >= 3, at least.  It definitely works
+-// for ELF, but may not for other object formats (Mach-O, for
+-// instance, does not support aliases.)  We could probably have a more
+-// inclusive test if we ever needed it.  (Note that not only the
+-// __attribute__ syntax, but also __USER_LABEL_PREFIX__, are
+-// gnu-specific.)
+-#if defined(__GNUC__) && __GNUC__ >= 3 && defined(__ELF__)
+-# define ULP_AS_STRING(x)            ULP_AS_STRING_INTERNAL(x)
+-# define ULP_AS_STRING_INTERNAL(x)   #x
+-# define USER_LABEL_PREFIX_STR       ULP_AS_STRING(__USER_LABEL_PREFIX__)
+-extern Arg no_arg
+-  __attribute__((alias(USER_LABEL_PREFIX_STR "_ZN7pcrecpp2RE6no_argE")));
+-#endif
+-
+ // If a regular expression has no error, its error_ field points here
+ static const string empty_string;
diff --git a/package/pcre/pcre-02-no-cpp-tests.patch b/package/pcre/pcre-02-no-cpp-tests.patch
new file mode 100644 (file)
index 0000000..0255028
--- /dev/null
@@ -0,0 +1,31 @@
+Disable PCRE C++ unit tests, they fail to build on static scenarios
+and they're not installed.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura pcre-8.33.orig/Makefile.in pcre-8.33/Makefile.in
+--- pcre-8.33.orig/Makefile.in 2013-05-28 06:09:27.000000000 -0300
++++ pcre-8.33/Makefile.in      2013-09-03 11:28:28.398198832 -0300
+@@ -123,12 +123,6 @@
+ @WITH_PCRE8_TRUE@am__append_20 = libpcreposix.la
+ @WITH_GCOV_TRUE@@WITH_PCRE8_TRUE@am__append_21 = $(GCOV_CFLAGS)
+ @WITH_PCRE_CPP_TRUE@am__append_22 = libpcrecpp.la
+-@WITH_PCRE_CPP_TRUE@am__append_23 = pcrecpp_unittest \
+-@WITH_PCRE_CPP_TRUE@  pcre_scanner_unittest \
+-@WITH_PCRE_CPP_TRUE@  pcre_stringpiece_unittest
+-@WITH_PCRE_CPP_TRUE@am__append_24 = pcrecpp_unittest \
+-@WITH_PCRE_CPP_TRUE@  pcre_scanner_unittest \
+-@WITH_PCRE_CPP_TRUE@  pcre_stringpiece_unittest
+ @WITH_GCOV_TRUE@@WITH_PCRE_CPP_TRUE@am__append_25 = $(GCOV_CXXFLAGS)
+ @WITH_GCOV_TRUE@@WITH_PCRE_CPP_TRUE@am__append_26 = $(GCOV_LIBS)
+ @WITH_GCOV_TRUE@@WITH_PCRE_CPP_TRUE@am__append_27 = $(GCOV_LIBS)
+@@ -360,9 +354,6 @@
+ @WITH_PCRE8_TRUE@am__EXEEXT_1 = pcregrep$(EXEEXT)
+ @WITH_REBUILD_CHARTABLES_TRUE@am__EXEEXT_2 = dftables$(EXEEXT)
+ @WITH_JIT_TRUE@am__EXEEXT_3 = pcre_jit_test$(EXEEXT)
+-@WITH_PCRE_CPP_TRUE@am__EXEEXT_4 = pcrecpp_unittest$(EXEEXT) \
+-@WITH_PCRE_CPP_TRUE@  pcre_scanner_unittest$(EXEEXT) \
+-@WITH_PCRE_CPP_TRUE@  pcre_stringpiece_unittest$(EXEEXT)
+ PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
+ am__dftables_SOURCES_DIST = dftables.c
+ @WITH_REBUILD_CHARTABLES_TRUE@am_dftables_OBJECTS =  \
diff --git a/package/pcre/pcre-no-compat.patch b/package/pcre/pcre-no-compat.patch
deleted file mode 100644 (file)
index 7099727..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-Kill ABI compatibility bits, we don't need them.
-Fixes build failures on non-ELF (blackfin) targets.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura pcre-8.32.orig/pcrecpp.cc pcre-8.32/pcrecpp.cc
---- pcre-8.32.orig/pcrecpp.cc  2012-12-28 08:32:10.193847937 -0300
-+++ pcre-8.32/pcrecpp.cc       2012-12-28 08:32:26.924376180 -0300
-@@ -58,22 +58,6 @@
- // Special object that stands-in for no argument
- Arg RE::no_arg((void*)NULL);
--// This is for ABI compatibility with old versions of pcre (pre-7.6),
--// which defined a global no_arg variable instead of putting it in the
--// RE class.  This works on GCC >= 3, at least.  It definitely works
--// for ELF, but may not for other object formats (Mach-O, for
--// instance, does not support aliases.)  We could probably have a more
--// inclusive test if we ever needed it.  (Note that not only the
--// __attribute__ syntax, but also __USER_LABEL_PREFIX__, are
--// gnu-specific.)
--#if defined(__GNUC__) && __GNUC__ >= 3 && defined(__ELF__)
--# define ULP_AS_STRING(x)            ULP_AS_STRING_INTERNAL(x)
--# define ULP_AS_STRING_INTERNAL(x)   #x
--# define USER_LABEL_PREFIX_STR       ULP_AS_STRING(__USER_LABEL_PREFIX__)
--extern Arg no_arg
--  __attribute__((alias(USER_LABEL_PREFIX_STR "_ZN7pcrecpp2RE6no_argE")));
--#endif
--
- // If a regular expression has no error, its error_ field points here
- static const string empty_string;