Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 15 Dec 2020 20:50:10 +0000 (UTC)
From:      Palle Girgensohn <girgen@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r558181 - in head/databases/postgresql13-server: . files
Message-ID:  <202012152050.0BFKoAvv009163@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: girgen
Date: Tue Dec 15 20:50:10 2020
New Revision: 558181
URL: https://svnweb.freebsd.org/changeset/ports/558181

Log:
  Patch to mitigate a crash with LLVM JIT
  
  PR:	251192 (Submitted by Dmitry Marakasov)

Added:
  head/databases/postgresql13-server/files/patch-disable-llvm-jit-inlining-with-tls   (contents, props changed)
Modified:
  head/databases/postgresql13-server/Makefile

Modified: head/databases/postgresql13-server/Makefile
==============================================================================
--- head/databases/postgresql13-server/Makefile	Tue Dec 15 20:31:10 2020	(r558180)
+++ head/databases/postgresql13-server/Makefile	Tue Dec 15 20:50:10 2020	(r558181)
@@ -5,7 +5,7 @@ PORTNAME?=	postgresql
 DISTVERSION?=	13.1
 # PORTREVISION must be ?= otherwise, all slave ports get this PORTREVISION and
 # not their own.  Probably best to keep it at ?=0 when reset here too.
-PORTREVISION?=	0
+PORTREVISION?=	1
 CATEGORIES?=	databases
 MASTER_SITES=	PGSQL/source/v${DISTVERSION}
 PKGNAMESUFFIX?= ${PORTVERSION:R}${COMPONENT}

Added: head/databases/postgresql13-server/files/patch-disable-llvm-jit-inlining-with-tls
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/databases/postgresql13-server/files/patch-disable-llvm-jit-inlining-with-tls	Tue Dec 15 20:50:10 2020	(r558181)
@@ -0,0 +1,24 @@
+Do not inline functions which access TLS in LLVM JIT, as
+this leads to crashes with unsupported relocation error
+
+diff --git src/backend/jit/llvm/llvmjit_inline.cpp src/backend/jit/llvm/llvmjit_inline.cpp
+index 2617a46..a063edb 100644
+--- src/backend/jit/llvm/llvmjit_inline.cpp
++++ src/backend/jit/llvm/llvmjit_inline.cpp
+@@ -608,6 +608,16 @@ function_inlinable(llvm::Function &F,
+ 		if (rv->materialize())
+ 			elog(FATAL, "failed to materialize metadata");
+ 
++		/*
++		 * Don't inline functions with thread-local variables until
++		 * related crashes are investigated (see BUG #16696)
++		 */
++		if (rv->isThreadLocal()) {
++			ilog(DEBUG1, "cannot inline %s due to thread-local variable %s",
++				F.getName().data(), rv->getName().data());
++			return false;
++		}
++
+ 		/*
+ 		 * Never want to inline externally visible vars, cheap enough to
+ 		 * reference.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202012152050.0BFKoAvv009163>