Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package postgresql11 for openSUSE:Factory checked in at 2021-09-13 16:24:15 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/postgresql11 (Old) and /work/SRC/openSUSE:Factory/.postgresql11.new.1899 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "postgresql11" Mon Sep 13 16:24:15 2021 rev:18 rq:917540 version:11.13 Changes: -------- --- /work/SRC/openSUSE:Factory/postgresql11/postgresql11.changes 2021-05-18 18:26:52.494849947 +0200 +++ /work/SRC/openSUSE:Factory/.postgresql11.new.1899/postgresql11.changes 2021-09-13 16:24:40.906755160 +0200 @@ -1,0 +2,26 @@ +Tue Aug 31 11:14:53 UTC 2021 - Reinhard Max <[email protected]> + +- bsc#1185952: fix build with llvm12 on s390x. + 0001-jit-Workaround-potential-datalayout-mismatch-on-s390.patch +- bsc#1179945: Re-enable icu for PostgreSQL 10. + +------------------------------------------------------------------- +Tue Aug 24 13:09:36 UTC 2021 - Marcus Rueckert <[email protected]> + +- Upgrade to version 11.13: + * https://www.postgresql.org/docs/11/release-11-13.html + * CVE-2021-3677 (boo#1189748) + The planner could create an incorrect plan in cases where two + ProjectionPaths were stacked on top of each other. The only + known way to trigger that situation involves parallel sort + operations, but there may be other instances. The result would + be crashes or incorrect query results. Disclosure of server + memory contents is also possible. + +------------------------------------------------------------------- +Fri Jul 2 07:50:45 UTC 2021 - Reinhard Max <[email protected]> + +- bsc#1187751: Make the dependency of postgresqlXX-server-devel on + llvm and clang optional (postgresql-llvm-optional.patch). + +------------------------------------------------------------------- Old: ---- postgresql-11.12.tar.bz2 postgresql-11.12.tar.bz2.sha256 New: ---- 0001-jit-Workaround-potential-datalayout-mismatch-on-s390.patch postgresql-11.13.tar.bz2 postgresql-11.13.tar.bz2.sha256 postgresql-llvm-optional.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ postgresql11.spec ++++++ --- /var/tmp/diff_new_pack.8qyzjd/_old 2021-09-13 16:24:41.506755854 +0200 +++ /var/tmp/diff_new_pack.8qyzjd/_new 2021-09-13 16:24:41.510755858 +0200 @@ -16,7 +16,7 @@ # -%define pgversion 11.12 +%define pgversion 11.13 %define pgmajor 11 %define pgsuffix %pgmajor %define buildlibs 0 @@ -72,11 +72,7 @@ BuildRequires: timezone BuildRequires: zlib-devel %bcond_without selinux -%if %pgmajor > 10 || 0%{?suse_version} <= 1500 %bcond_without icu -%else -%bcond_with icu -%endif %if !%buildlibs BuildRequires: %libecpg BuildRequires: %libpq @@ -88,10 +84,10 @@ %bcond_with systemd %bcond_with systemd_notify %endif + %if 0%{?suse_version} >= 1500 && %pgsuffix >= 11 && %pgsuffix < 90 %bcond_without llvm %else -# LLVM is currently unsupported on SLE, so don't use it %bcond_with llvm %endif %endif @@ -149,6 +145,10 @@ Patch6: postgresql-testsuite-int8.sql.patch Patch8: postgresql-testsuite-keep-results-file.patch Patch9: postgresql-var-run-socket.patch +%if %{with llvm} +Patch10: postgresql-llvm-optional.patch +Patch11: 0001-jit-Workaround-potential-datalayout-mismatch-on-s390.patch +%endif URL: https://www.postgresql.org/ BuildRoot: %{_tmppath}/%{name}-%{version}-build Provides: postgresql = %version-%release @@ -223,9 +223,9 @@ Provides: %libecpg = %version-%release Provides: %libpq = %version-%release Provides: %pgname-devel = %version-%release -Conflicts: %pgname-devel Conflicts: %libecpg Conflicts: %libpq +Conflicts: %pgname-devel %else Requires: %libecpg >= %version Requires: %libpq >= %version @@ -251,8 +251,8 @@ Provides: postgresql-server-devel-exclusive = %pgmajor Conflicts: postgresql-server-devel-exclusive < %pgmajor %if %{with llvm} -Requires: clang -Requires: llvm +Recommends: clang +Recommends: llvm %endif Requires: libxslt-devel Requires: openssl-devel @@ -455,6 +455,10 @@ %patch6 %patch8 -p1 %patch9 +%if %{with llvm} +%patch10 +%patch11 +%endif touch -r tmp configure rm tmp find src/test/ -name '*.orig' -delete @@ -529,8 +533,7 @@ %endif %install -VLANG=${RPM_PACKAGE_VERSION%%.*} -VSO=${RPM_PACKAGE_VERSION%%%%.*} +VLANG=%pgmajor %if %mini make DESTDIR=%buildroot PACKAGE_TARNAME=%pgname -C src/include install make DESTDIR=%buildroot PACKAGE_TARNAME=%pgname -C src/interfaces install @@ -918,6 +921,7 @@ %if %buildlibs && %mini %files %devel -f devel.files -f libpq.files -f libecpg.files %else + %files %devel -f devel.files %endif ++++++ 0001-jit-Workaround-potential-datalayout-mismatch-on-s390.patch ++++++ >From 0edaa982336823d4d7af8f10b91579fe0099ef3d Mon Sep 17 00:00:00 2001 From: Tom Stellard <[email protected]> Date: Tue, 20 Apr 2021 20:14:21 -0700 Subject: [PATCH] jit: Workaround potential datalayout mismatch on s390x LLVM's s390x target uses a different datalayout for z13 and newer processors. If llvmjit_types.bc is compiled to target a processor older than z13, and then the JIT runs on a z13 or newer processor, then there will be a mismatch in datalayouts between llvmjit_types.bc and the JIT engine. This mismatch causes the JIT to fail at runtime. --- src/backend/jit/llvm/llvmjit.c | 46 ++++++++++++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 2 deletions(-) --- src/backend/jit/llvm/llvmjit.c.orig +++ src/backend/jit/llvm/llvmjit.c @@ -101,6 +101,7 @@ LLVMValueRef FuncExecEvalSysVar; LLVMValueRef FuncExecAggTransReparent; LLVMValueRef FuncExecAggInitGroup; +LLVMModuleRef mod = NULL; static bool llvm_session_initialized = false; static size_t llvm_generation = 0; @@ -742,6 +743,35 @@ llvm_compile_module(LLVMJitContext *cont } /* + * For the systemz target, LLVM uses a different datalayout for z13 and newer + * CPUs than it does for older CPUs. This can cause a mismatch in datalayouts + * in the case where the llvm_types_module (mod) is compiled with a pre-z13 CPU + * and the JIT is running on z13 or newer. + * See computeDataLayout() function in + * llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp for information on the + * datalayout differences. + */ +static bool +needs_systemz_workaround(void) +{ + bool ret = false; + LLVMContextRef llvm_context; + LLVMTypeRef vec_type; + LLVMTargetDataRef llvm_layoutref; + if (strncmp(LLVMGetTargetName(llvm_targetref), "systemz", strlen("systemz"))) + { + return false; + } + + llvm_context = LLVMGetModuleContext(mod); + vec_type = LLVMVectorType(LLVMIntTypeInContext(llvm_context, 32), 4); + llvm_layoutref = LLVMCreateTargetData(llvm_layout); + ret = (LLVMABIAlignmentOfType(llvm_layoutref, vec_type) == 16); + LLVMDisposeTargetData(llvm_layoutref); + return ret; +} + +/* * Per session initialization. */ static void @@ -750,6 +780,7 @@ llvm_session_initialize(void) MemoryContext oldcontext; char *error = NULL; char *cpu = NULL; + char *host_features = NULL; char *features = NULL; LLVMTargetMachineRef opt0_tm; LLVMTargetMachineRef opt3_tm; @@ -781,10 +812,17 @@ llvm_session_initialize(void) * features not all CPUs have (weird, huh). */ cpu = LLVMGetHostCPUName(); - features = LLVMGetHostCPUFeatures(); + features = host_features = LLVMGetHostCPUFeatures(); elog(DEBUG2, "LLVMJIT detected CPU \"%s\", with features \"%s\"", cpu, features); + if (needs_systemz_workaround()) + { + const char *no_vector =",-vector"; + features = malloc(sizeof(char) * (strlen(host_features) + strlen(no_vector) + 1)); + sprintf(features, "%s%s", host_features, no_vector); + } + opt0_tm = LLVMCreateTargetMachine(llvm_targetref, llvm_triple, cpu, features, LLVMCodeGenLevelNone, @@ -798,8 +836,13 @@ llvm_session_initialize(void) LLVMDisposeMessage(cpu); cpu = NULL; - LLVMDisposeMessage(features); + if (features != host_features) + { + free(features); + } features = NULL; + LLVMDisposeMessage(host_features); + host_features = NULL; /* force symbols in main binary to be loaded */ LLVMLoadLibraryPermanently(NULL); @@ -952,7 +995,6 @@ llvm_create_types(void) char path[MAXPGPATH]; LLVMMemoryBufferRef buf; char *msg; - LLVMModuleRef mod = NULL; snprintf(path, MAXPGPATH, "%s/%s", pkglib_path, "llvmjit_types.bc"); ++++++ postgresql-11.12.tar.bz2 -> postgresql-11.13.tar.bz2 ++++++ /work/SRC/openSUSE:Factory/postgresql11/postgresql-11.12.tar.bz2 /work/SRC/openSUSE:Factory/.postgresql11.new.1899/postgresql-11.13.tar.bz2 differ: char 11, line 1 ++++++ postgresql-11.12.tar.bz2.sha256 -> postgresql-11.13.tar.bz2.sha256 ++++++ --- /work/SRC/openSUSE:Factory/postgresql11/postgresql-11.12.tar.bz2.sha256 2021-05-18 18:26:52.482849999 +0200 +++ /work/SRC/openSUSE:Factory/.postgresql11.new.1899/postgresql-11.13.tar.bz2.sha256 2021-09-13 16:24:40.874755123 +0200 @@ -1 +1 @@ -87f9d8b16b2b8ef71586f2ec76beac844819f64734b07fa33986755c2f53cb04 postgresql-11.12.tar.bz2 +a0c3689ff7f565288002cbc138779d5121d74831a5e8341aea7aa86e99b6bc48 postgresql-11.13.tar.bz2 ++++++ postgresql-llvm-optional.patch ++++++ --- src/Makefile.global.in.orig +++ src/Makefile.global.in @@ -192,7 +192,12 @@ with_krb_srvnam = @with_krb_srvnam@ with_ldap = @with_ldap@ with_libxml = @with_libxml@ with_libxslt = @with_libxslt@ -with_llvm = @with_llvm@ +# Only build for LLVM, if the core supports it and the llvm and clang packages are installed. +ifeq (@with_llvm@ $(wildcard /usr/bin/clang /usr/bin/llvm-lto),yes /usr/bin/clang /usr/bin/llvm-lto) +with_llvm = yes +else +with_llvm = no +endif with_system_tzdata = @with_system_tzdata@ with_uuid = @with_uuid@ with_zlib = @with_zlib@
