Caused by 2fcd8c1252. It used the documented pcre API
-pcre_exec(NULL, NULL, NULL, -999, -999, 0, NULL, 0)
to calculate the pcre stack frame size. Unfortunately, modern compilers
broke it by cloning and inlining pcre match() function. 2fcd8c1252
tried to workaround it by setting the stack frame size to at least 500.
It didn't work, 500 is not a universal constant.
Now we fix our copy of pcre to not inline or clone match() - so that
stack frame detection would work again - and detect at cmake time
whether system pcre is broken or usable.
Also use stack, not (much slower) malloc in bundled pcre, unless on Windows
pre/CMakeLists.txt defines CMAKE_DEBUG_POSTFIX which causes a different
library name on Windows debug build (pcred.lib rather than pre.lib)
However MERGE_LIBRARIES macro that is used to create static embedded
library (out of other static libraries), can not handle per-configuration
library names. Thus the build fails with "pre.lib not found"
Fix is to remove unnecessary CMAKE_DEBUG_POSTFIX
PCRE unit tests failed on Ubuntu Precise, because "source"
is not a known command in "dash" (the default shell in Precise).
Changing "source" to ".", which should be understood in all shells.
libmysqld.a(pcre_exec.c.o): relocation R_X86_64_32S against
`_pcre_ucd_stage1' can not be used when making a shared object;
make[2]: Leaving directory `/mnt/buildbot/build/mariadb-10.0.3'
recompile with -fPIC
Changing ADD_LIBRARY(pcre) to ADD_CONVENIENCE_LIBRARY(pcre)