Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package postgresql12 for openSUSE:Factory checked in at 2021-09-13 16:24:17 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/postgresql12 (Old) and /work/SRC/openSUSE:Factory/.postgresql12.new.1899 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "postgresql12" Mon Sep 13 16:24:17 2021 rev:17 rq:917541 version:12.8 Changes: -------- --- /work/SRC/openSUSE:Factory/postgresql12/postgresql12.changes 2021-05-21 21:49:33.394347718 +0200 +++ /work/SRC/openSUSE:Factory/.postgresql12.new.1899/postgresql12.changes 2021-09-13 16:24:42.034756464 +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:01:54 UTC 2021 - Marcus Rueckert <[email protected]> + +- Upgrade to version 12.8: + * https://www.postgresql.org/docs/12/release-12-8.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:47:15 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-12.7.tar.bz2 postgresql-12.7.tar.bz2.sha256 New: ---- 0001-jit-Workaround-potential-datalayout-mismatch-on-s390.patch postgresql-12.8.tar.bz2 postgresql-12.8.tar.bz2.sha256 postgresql-llvm-optional.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ postgresql12.spec ++++++ --- /var/tmp/diff_new_pack.aK64ru/_old 2021-09-13 16:24:43.414758060 +0200 +++ /var/tmp/diff_new_pack.aK64ru/_new 2021-09-13 16:24:43.418758064 +0200 @@ -16,7 +16,7 @@ # -%define pgversion 12.7 +%define pgversion 12.8 %define pgmajor 12 %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,6 +84,7 @@ %bcond_with systemd %bcond_with systemd_notify %endif + %if 0%{?suse_version} >= 1500 && %pgsuffix >= 11 && %pgsuffix < 90 %bcond_without llvm %else @@ -115,15 +112,10 @@ BuildRequires: libselinux-devel %endif %if %{with llvm} -BuildRequires: gcc-c++ -%ifarch s390x -BuildRequires: clang11 -BuildRequires: llvm11-devel -%else BuildRequires: clang +BuildRequires: gcc-c++ BuildRequires: llvm-devel %endif -%endif BuildRequires: libxslt-devel BuildRequires: openldap2-devel BuildRequires: openssl-devel @@ -153,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 @@ -227,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 @@ -255,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 @@ -459,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 @@ -533,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 @@ -922,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-12.7.tar.bz2 -> postgresql-12.8.tar.bz2 ++++++ /work/SRC/openSUSE:Factory/postgresql12/postgresql-12.7.tar.bz2 /work/SRC/openSUSE:Factory/.postgresql12.new.1899/postgresql-12.8.tar.bz2 differ: char 11, line 1 ++++++ postgresql-12.7.tar.bz2.sha256 -> postgresql-12.8.tar.bz2.sha256 ++++++ --- /work/SRC/openSUSE:Factory/postgresql12/postgresql-12.7.tar.bz2.sha256 2021-05-18 18:26:53.494845612 +0200 +++ /work/SRC/openSUSE:Factory/.postgresql12.new.1899/postgresql-12.8.tar.bz2.sha256 2021-09-13 16:24:41.982756404 +0200 @@ -1 +1 @@ -8490741f47c88edc8b6624af009ce19fda4dc9b31c4469ce2551d84075d5d995 postgresql-12.7.tar.bz2 +e26401e090c34ccb15ffb33a111f340833833535a7b7c5cd11cd88ab57d9c62a postgresql-12.8.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@
