qt5base-lts/config.tests/unix
Giuseppe D'Angelo 9ca635482d PCRE2: port QRegularExpression to PCRE2
PCRE1 is going towards EOL. PCRE2 is the way forward in terms
of new features, performance, and security improvements. The
APIs that QRegularExpression uses are similar so the required
modifications aren't extensive.

The biggest difference comes to JIT-compiling of the pattern.

In PCRE1, JIT-compiling did not modify the processed PCRE pattern,
but returned a new chunk of data.

This allowed multiple threads to keep matching using the same
processed data and NULL for the JIT data, until a thread
JIT-compiled and atomically set the shared JIT data to the results
of the compilation.

In PCRE2, JIT-compiling _modifies_ the processed PCRE pattern in a
way that it's thread unsafe [1]; the results of JIT-compilation
are stored somewhere inside the processed pattern.
This means the above approach cannot work -- a thread may be
matching while another one JIT-compiles, causing a data race.

While waiting for better workarounds from upstream, employ a
read/write mutex to protect the matching from JIT-compilation.

[1] https://lists.exim.org/lurker/message/20160104.105831.3cb25b39.en.html

[ChangeLog][General] QRegularExpression now requires the PCRE2
library, at least version 10.20. Support for the PCRE1 library
has been dropped. A copy of PCRE2 is shipped with Qt and will
automatically be used on those platforms which lack it.

Change-Id: I9fe11104230a096796df2d0bdcea861acf769f57
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-12-12 15:22:01 +00:00
..
clock-gettime Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-10 23:27:10 +02:00
clock-monotonic Updated license headers 2016-01-15 12:25:24 +00:00
cloexec Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-29 10:10:22 +02:00
cups rewrite library handling in configure 2016-08-18 17:09:52 +00:00
db2 rewrite library handling in configure 2016-08-18 17:09:52 +00:00
dbus rewrite library handling in configure 2016-08-18 17:09:52 +00:00
dlopen Fix dynamic librariy support detection for platforms without libdl 2016-05-19 10:15:42 +00:00
doubleconversion rewrite library handling in configure 2016-08-18 17:09:52 +00:00
evdev Add evdev support for FreeBSD 2016-10-06 15:50:44 +00:00
eventfd Update the Intel copyright year 2016-01-21 22:44:16 +00:00
fontconfig fix freetype/fontconfig configure system 2016-10-04 20:20:39 +00:00
freetype fix freetype/fontconfig configure system 2016-10-04 20:20:39 +00:00
getaddrinfo rewrite library handling in configure 2016-08-18 17:09:52 +00:00
getifaddrs rewrite library handling in configure 2016-08-18 17:09:52 +00:00
glib Updated license headers 2016-01-15 12:25:24 +00:00
gnu-libiconv rewrite library handling in configure 2016-08-18 17:09:52 +00:00
harfbuzz rewrite library handling in configure 2016-08-18 17:09:52 +00:00
ibase rewrite library handling in configure 2016-08-18 17:09:52 +00:00
iconv Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-06 09:04:55 +02:00
icu rewrite library handling in configure 2016-08-18 17:09:52 +00:00
inotify Updated license headers 2016-01-15 12:25:24 +00:00
ipc_posix Updated license headers 2016-01-15 12:25:24 +00:00
ipc_sysv Updated license headers 2016-01-15 12:25:24 +00:00
ipv6ifname rewrite library handling in configure 2016-08-18 17:09:52 +00:00
journald rewrite library handling in configure 2016-08-18 17:09:52 +00:00
lgmon rewrite library handling in configure 2016-08-18 17:09:52 +00:00
libinput rewrite library handling in configure 2016-08-18 17:09:52 +00:00
libinput_axis_api Migrate libinput support away from QT_LIBRARY_VERSION 2016-10-10 16:59:26 +00:00
libjpeg Merge remote-tracking branch 'origin/5.7' into 5.8 2016-09-21 11:57:52 +02:00
libpng rewrite library handling in configure 2016-08-18 17:09:52 +00:00
libudev rewrite library handling in configure 2016-08-18 17:09:52 +00:00
mips_dsp Updated license headers 2016-01-15 12:25:24 +00:00
mips_dspr2 Updated license headers 2016-01-15 12:25:24 +00:00
mremap Updated license headers 2016-01-15 12:25:24 +00:00
mtdev rewrite library handling in configure 2016-08-18 17:09:52 +00:00
mysql rewrite library handling in configure 2016-08-18 17:09:52 +00:00
objcopy Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-06 09:04:55 +02:00
oci rewrite library handling in configure 2016-08-18 17:09:52 +00:00
odbc rewrite library handling in configure 2016-08-18 17:09:52 +00:00
opengldesktop Merge remote-tracking branch 'origin/5.7' into 5.8 2016-11-16 12:35:36 +01:00
opengles2 Merge remote-tracking branch 'origin/5.7' into 5.8 2016-11-16 12:35:36 +01:00
opengles3 Merge remote-tracking branch 'origin/5.7' into 5.8 2016-11-16 12:35:36 +01:00
opengles31 rewrite library handling in configure 2016-08-18 17:09:52 +00:00
openssl Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-06 09:04:55 +02:00
openvg Enable support for OpenVG 2016-11-17 15:00:00 +00:00
pcre2 PCRE2: port QRegularExpression to PCRE2 2016-12-12 15:22:01 +00:00
poll Updated license headers 2016-01-15 12:25:24 +00:00
pollts Updated license headers 2016-01-15 12:25:24 +00:00
posix_fallocate Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-29 10:10:22 +02:00
ppoll Updated license headers 2016-01-15 12:25:24 +00:00
pps rewrite library handling in configure 2016-08-18 17:09:52 +00:00
psql rewrite library handling in configure 2016-08-18 17:09:52 +00:00
qqnx_imf rewrite library handling in configure 2016-08-18 17:09:52 +00:00
reduce_exports get rid of test type 'shell' 2016-08-12 22:04:50 +00:00
reduce_relocs get rid of test type 'shell' 2016-08-12 22:04:50 +00:00
sctp rewrite library handling in configure 2016-08-18 17:09:52 +00:00
slog2 rewrite library handling in configure 2016-08-18 17:09:52 +00:00
sqlite Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-29 10:10:22 +02:00
sqlite2 rewrite library handling in configure 2016-08-18 17:09:52 +00:00
stl Updated license headers 2016-01-15 12:25:24 +00:00
sun-libiconv
syslog Updated license headers 2016-01-15 12:25:24 +00:00
tds rewrite library handling in configure 2016-08-18 17:09:52 +00:00
tslib rewrite library handling in configure 2016-08-18 17:09:52 +00:00
xkbcommon Updated license headers 2016-01-15 12:25:24 +00:00
zlib rewrite library handling in configure 2016-08-18 17:09:52 +00:00
which.test