Commit Graph

14 Commits

Author SHA1 Message Date
Nicholas Wilson
990d53f192 Add linker scripts with symbol versioning (#721)
Both the Autoconf and CMake build systems are updated to detect linker support for symbol versioning.

Currently, Linux, Solaris, and FreeBSD are tested and working. Windows (COFF) and macOS (Mach-O) have no symbol versioning.

There is an Autoconf/CMake flag to opt out of the versioning behaviour.
2025-03-18 08:55:38 +00:00
Nicholas Wilson
02a0166265 Extract CI sync actions into their own file (#711) 2025-03-01 09:12:05 +00:00
Nicholas Wilson
929b7404f9 Build fixes for z/OS (#695)
Fixes to enable the code to build with a simple `CC=xlc ./configure --enable-ebcdic --disable-unicode`.

Fixes to the tests, so that `make check` passes on EBCDIC platforms.

Add a CI job to do z/OS testing.
2025-02-26 22:31:51 +00:00
Nicholas Wilson
abc2ae689e Update AX_PTHREAD (#694) 2025-02-12 21:30:19 +00:00
Nicholas Wilson
acb4b56944 Enable and fix additional build warnings (#655)
Part of #651

* Use much stricter windows warnings (`/W3` rather than `/W1`). This requires quite a few fixes for all the sloppy places where we do implicit assignment of 64-bit values to 32-bit storage.
* Use and test CMake build & install on FreeBSD and Solaris
* Add 64 bit Solaris build (`cc -m64`) and fix existing Solaris warnings
* Make compile flags used in CI consistent across platforms. Previously Mac & Linux were building with different warning flags.
* Add `--enable-Werror` to `configure.ac`. This means that you can build with `-Werror` in a clean way. Previously, you had to hackily override the CPPFLAGS when calling `make` since you can't pass `-Werror` as a CFLAG into `./configure` (it messes with compiler feature detection).
2025-01-10 13:33:52 +00:00
Carlo Marcelo Arenas Belón
3f271de591 build: improve portability of assertions (#462)
Move them out from the public API header and improve detection
by making sure the code used wouldn't trigger false positives.

While at it, migrate two more opem coded assertions and avoid
use of -Werror on AIX with xlc as well as clear a warning
triggered in Windows since the original commit.
2024-09-07 09:43:14 +01:00
Carlo Marcelo Arenas Belón
430237f4dc m4/pcre2_visibility.m4: add basic support for non GCC compilers (#421)
Assume that a compatible `-fvisibility=hidden` option is available
and that the compiler handles correctly `#warning` macros.

Restrict the visibility test if `-Werror` is unrealiable to protect
for compilers like xlc or systems like cygwin that might allow the
compiler flag without errors but wouldn't work.

While at it, lower the minimum autoconf required to the one that
introduced the latest macros and tested in OpenBSD 7.5 with automake
1.9.
2024-06-12 12:26:38 +01:00
Carlo Marcelo Arenas Belón
fb8404af3d m4/pcre2_visibility.m4: make sure PCRE2_EXPORT is always safe (#413)
Since a8a875e (windows: integrate visibility attributes without
conflicts (#249), 2023-05-16), PCRE2_EXPORT was meant to be
defined as an empty value for compilers that don't support
-fvisibility in *NIX, but a branch was left uncovered by mistake
resulting in compilation issues with propietary compilers in at
least Solaris and AIX.

define PCRE2_EXPORT even if the compiler is not GCC compatible.
2024-06-07 13:49:49 +01:00
Carlo Marcelo Arenas Belón
a8a875eb89 windows: integrate visibility attributes without conflicts (#249)
When using a DLL in Windows, the function declarations (and definitions)
that are public are decorated with attributes but those declarations would
conflict with the ones that are selected when the compiler supports the
visibility feature.

Define instead a new macro that would be added to the corresponding
macros independently and while at it allow setting visibility with cmake.
2023-05-16 15:05:13 +01:00
Philip.Hazel
eb59159ce0 Change --enable-pcre8 etc to --enable-pcre2-8 etc and consequent changes;
change "pcre" to "pcre2" in a number of files.
2014-10-17 15:52:57 +00:00
Philip.Hazel
19153b31a9 Remove generated m4 files from version control. 2014-08-11 18:23:02 +00:00
Philip.Hazel
f4174bab90 Create dummy framework for all functions and programs. 2014-03-07 17:28:52 +00:00
Philip.Hazel
0fd300bf87 Some basic building infrastructure. 2014-02-28 09:40:55 +00:00
Philip.Hazel
7d60040966 Add basic configuration files. 2014-02-20 19:17:05 +00:00