From: Gustavo Zacarias Date: Tue, 3 Sep 2013 14:33:15 +0000 (-0300) Subject: pcre: fix C++ static build problem X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e2b3d5909d909970c85cbc339e17dbfe09cb3197;p=buildroot.git pcre: fix C++ static build problem 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 Signed-off-by: Peter Korsgaard --- diff --git a/package/pcre/pcre-01-no-compat.patch b/package/pcre/pcre-01-no-compat.patch new file mode 100644 index 0000000000..7099727737 --- /dev/null +++ b/package/pcre/pcre-01-no-compat.patch @@ -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 + +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 index 0000000000..0255028fb6 --- /dev/null +++ b/package/pcre/pcre-02-no-cpp-tests.patch @@ -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 + +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 index 7099727737..0000000000 --- a/package/pcre/pcre-no-compat.patch +++ /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 - -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; -