summaryrefslogtreecommitdiff
path: root/lang/erlang
diff options
context:
space:
mode:
authorfhajny <fhajny@pkgsrc.org>2017-10-17 14:47:36 +0000
committerfhajny <fhajny@pkgsrc.org>2017-10-17 14:47:36 +0000
commit513a3626426b9a38b424b1e908e0ff473aac9512 (patch)
treeb63db327958c9e8ddb324b94596515d0fe72b455 /lang/erlang
parent0f232fe683b5e657fbc582a8fb21e1c7952d53e0 (diff)
downloadpkgsrc-513a3626426b9a38b424b1e908e0ff473aac9512.tar.gz
lang/erlang: Fix incorrect internal consistency failure
for binary matching code. Bump PKGREVISION.
Diffstat (limited to 'lang/erlang')
-rw-r--r--lang/erlang/Makefile4
-rw-r--r--lang/erlang/distinfo3
-rw-r--r--lang/erlang/patches/patch-lib_compiler_src_beam__validator.erl24
3 files changed, 28 insertions, 3 deletions
diff --git a/lang/erlang/Makefile b/lang/erlang/Makefile
index 0aacd3efe60..17ad636da54 100644
--- a/lang/erlang/Makefile
+++ b/lang/erlang/Makefile
@@ -1,8 +1,8 @@
-# $NetBSD: Makefile,v 1.81 2017/10/04 16:20:51 jperkin Exp $
+# $NetBSD: Makefile,v 1.82 2017/10/17 14:47:36 fhajny Exp $
DISTNAME= otp_src_${DIST_VERSION_MAJOR}.${DIST_VERSION_MINOR}
PKGNAME= ${DISTNAME:S/otp_src_/erlang-/}
-PKGREVISION= 1
+PKGREVISION= 2
CATEGORIES= lang
MASTER_SITES= http://www.erlang.org/download/
diff --git a/lang/erlang/distinfo b/lang/erlang/distinfo
index f23c17c0024..42b758793d4 100644
--- a/lang/erlang/distinfo
+++ b/lang/erlang/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.53 2017/10/04 16:20:51 jperkin Exp $
+$NetBSD: distinfo,v 1.54 2017/10/17 14:47:36 fhajny Exp $
SHA1 (erlang/otp_src_20.1.tar.gz) = 8facdb71696118b5c58238e57106ca23d14166d0
RMD160 (erlang/otp_src_20.1.tar.gz) = 65ed1ad934dea860f277648663db714881b9cb97
@@ -9,5 +9,6 @@ SHA1 (patch-ay) = f5f1accdb11e404ba4779b056228431e3080e4cd
SHA1 (patch-erts_configure) = dba8d72974e8c493cf2bb90e6b149a84dd9073da
SHA1 (patch-erts_emulator_drivers_common_inet__drv.c) = b7784e5e8e025ca75d5279a63e0cb3f74c54bd6a
SHA1 (patch-erts_emulator_sys_common_erl__poll.c) = b2068ed4f1994407cb2ec3cd10220bebae85b01d
+SHA1 (patch-lib_compiler_src_beam__validator.erl) = 57cf4823f57bed333f7c2901509143bbba61cfbd
SHA1 (patch-lib_crypto_c__src_Makefile.in) = 0ab1db36c03999524e933d60f913ff5608b0622e
SHA1 (patch-make_output.mk.in) = d7b3da58bfb471d52c41242e2a03d1598ce24e62
diff --git a/lang/erlang/patches/patch-lib_compiler_src_beam__validator.erl b/lang/erlang/patches/patch-lib_compiler_src_beam__validator.erl
new file mode 100644
index 00000000000..8ca926424c1
--- /dev/null
+++ b/lang/erlang/patches/patch-lib_compiler_src_beam__validator.erl
@@ -0,0 +1,24 @@
+$NetBSD: patch-lib_compiler_src_beam__validator.erl,v 1.1 2017/10/17 14:47:36 fhajny Exp $
+
+Fix incorrect internal consistency failure for binary matching code.
+Backport from trunk as per https://bugs.erlang.org/browse/ERL-490.
+
+--- lib/compiler/src/beam_validator.erl.orig 2017-09-25 19:10:38.000000000 +0000
++++ lib/compiler/src/beam_validator.erl
+@@ -1430,13 +1430,13 @@ merge_types(bool, {atom,A}) ->
+ merge_bool(A);
+ merge_types({atom,A}, bool) ->
+ merge_bool(A);
+-merge_types(#ms{id=Id1,valid=B0,slots=Slots},
+- #ms{id=Id2,valid=B1,slots=Slots}) ->
++merge_types(#ms{id=Id1,valid=B1,slots=Slots1},
++ #ms{id=Id2,valid=B2,slots=Slots2}) ->
+ Id = if
+ Id1 =:= Id2 -> Id1;
+ true -> make_ref()
+ end,
+- #ms{id=Id,valid=B0 band B1,slots=Slots};
++ #ms{id=Id,valid=B1 band B2,slots=min(Slots1, Slots2)};
+ merge_types(T1, T2) when T1 =/= T2 ->
+ %% Too different. All we know is that the type is a 'term'.
+ term.