nixpkgs/pkgs/development/libraries/pcre2/default.nix
Sergei Trofimovich ae34f37142 pcre, pcre2: autodetect jit support, don't force-enable
PCRE JIT is not supported on most architectores: m68k, s390,
ia64 to name a few.

Example build failure is:

    $ nix build -f. pkgsCross.s390.pcre
    ...
    pcre_jit_compile.c:65:2: error: #error Unsupported architecture

The change shifts from --enable-jit[=yes] to --enable-jit=auto which
allows nixpkgs to enable jit automatically only on supported targets.
2022-04-13 18:07:16 +01:00

34 lines
908 B
Nix

{ lib
, stdenv
, fetchurl
}:
stdenv.mkDerivation rec {
pname = "pcre2";
version = "10.39";
src = fetchurl {
url = "https://github.com/PhilipHazel/pcre2/releases/download/pcre2-${version}/pcre2-${version}.tar.bz2";
hash = "sha256-DwPK9X+B2f82KsKM04nAVewr8GeNJ3NJoaS+4ArW1EA=";
};
# Disable jit on Apple Silicon, https://github.com/zherczeg/sljit/issues/51
configureFlags = [
"--enable-pcre2-16"
"--enable-pcre2-32"
] ++ lib.optional (!(stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)) "--enable-jit=auto";
outputs = [ "bin" "dev" "out" "doc" "man" "devdoc" ];
postFixup = ''
moveToOutput bin/pcre2-config "$dev"
'';
meta = with lib; {
homepage = "http://www.pcre.org/";
description = "Perl Compatible Regular Expressions";
license = licenses.bsd3;
maintainers = with maintainers; [ ttuegel ];
platforms = platforms.all;
};
}