Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package openblas for openSUSE:Factory checked in at 2021-02-07 15:16:51 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/openblas (Old) and /work/SRC/openSUSE:Factory/.openblas.new.28504 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openblas" Sun Feb 7 15:16:51 2021 rev:40 rq:869479 version:0.3.13 Changes: -------- --- /work/SRC/openSUSE:Factory/openblas/openblas.changes 2020-12-24 19:41:10.831200233 +0100 +++ /work/SRC/openSUSE:Factory/.openblas.new.28504/openblas.changes 2021-02-07 15:18:25.801708705 +0100 @@ -1,0 +2,17 @@ +Thu Feb 4 11:49:11 UTC 2021 - Michel Normand <[email protected]> + +- Disable lto for ppc64le to avoid build failure (bsc#1181733) +- Add openblas-ppc64be_up2_p8.patch to avoid ppc64 (BE) build failure + Do not set BUILD_BFLOAT16 for ppc64 (BE) (same bug nb) + +------------------------------------------------------------------- +Tue Feb 2 21:30:18 UTC 2021 - Egbert Eich <[email protected]> + +- BUILD_BFLOAT16=1 is not supported in s390(x) (bsc#1181522) +- Add: + * 0001-Require-gcc-11-for-builtin_cpu_is-power10.patch + * 0002-patch-to-support-power10-in-builtin_cpu_is-was-backp.patch: + Only gcc11 has builtin_cpu_is(power10) - fix build issue for ppc64 + (bsc#1181522). + +------------------------------------------------------------------- New: ---- 0001-Require-gcc-11-for-builtin_cpu_is-power10.patch 0002-patch-to-support-power10-in-builtin_cpu_is-was-backp.patch openblas-ppc64be_up2_p8.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ openblas.spec ++++++ --- /var/tmp/diff_new_pack.o8CpRX/_old 2021-02-07 15:18:26.453709792 +0100 +++ /var/tmp/diff_new_pack.o8CpRX/_new 2021-02-07 15:18:26.457709798 +0100 @@ -1,7 +1,7 @@ # # spec file for package openblas # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -167,10 +167,14 @@ Source0: https://github.com/xianyi/OpenBLAS/archive/v%{version}.tar.gz#/OpenBLAS-%{version}.tar.gz Source1: README.SUSE Source2: README.HPC.SUSE +# Temporarily - delete with next version update +Patch1: 0001-Require-gcc-11-for-builtin_cpu_is-power10.patch +Patch2: 0002-patch-to-support-power10-in-builtin_cpu_is-was-backp.patch # PATCH-FIX-UPSTREAM openblas-noexecstack.patch -Patch1: openblas-noexecstack.patch +Patch101: openblas-noexecstack.patch # PATCH port -Patch2: openblas-s390.patch +Patch102: openblas-s390.patch +Patch103: openblas-ppc64be_up2_p8.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -282,6 +286,9 @@ %setup -q -n OpenBLAS-%{version} %patch1 -p1 %patch2 -p1 +%patch101 -p1 +%patch102 -p1 +%patch103 -p1 %ifarch s390 sed -i -e "s@m32@m31@" Makefile.system %endif @@ -294,6 +301,11 @@ %build +# disable lto for ppc64le, boo#1181733 +%ifarch ppc64le +%define _lto_cflags %{nil} +%endif + %if %{with hpc} %hpc_debug %hpc_setup_compiler @@ -304,14 +316,20 @@ # We specify TARGET= to avoid compile-time CPU-detection (boo#1100677) %ifarch %ix86 x86_64 %global openblas_target %openblas_target TARGET=CORE2 +%define openblas_opt BUILD_BFLOAT16=1 %endif %ifarch aarch64 %global openblas_target %openblas_target TARGET=ARMV8 +%define openblas_opt BUILD_BFLOAT16=1 %endif %ifarch s390 s390x %global openblas_target %openblas_target TARGET=ZARCH_GENERIC %endif -%ifarch ppc64 ppc64le +%ifarch ppc64le +%global openblas_target %openblas_target TARGET=POWER8 +%define openblas_opt BUILD_BFLOAT16=1 +%endif +%ifarch ppc64 %global openblas_target %openblas_target TARGET=POWER8 %endif # force -mvsx for ppc64 to avoid build failure: @@ -322,7 +340,7 @@ %endif # Make serial, threaded and OpenMP versions make %{?_smp_mflags} %{?openblas_target} %{?build_flags} \ - BUILD_BFLOAT16=1 COMMON_OPT="%{optflags} %{?addopt}" \ + %{?openblas_opt} COMMON_OPT="%{optflags} %{?addopt}" \ NUM_THREADS=%{num_threads} V=1 \ OPENBLAS_LIBRARY_DIR=%{p_libdir} \ OPENBLAS_INCLUDE_DIR=%{hpc_includedir} \ ++++++ 0001-Require-gcc-11-for-builtin_cpu_is-power10.patch ++++++ >From 63fa3c3f8f869c585d8c5aef6f580a967b64405c Mon Sep 17 00:00:00 2001 From: Martin Kroeker <[email protected]> Date: Wed, 20 Jan 2021 15:41:04 +0100 Subject: [PATCH 1/2] Require gcc 11 for builtin_cpu_is(power10) fixes #3074 --- driver/others/dynamic_power.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/driver/others/dynamic_power.c b/driver/others/dynamic_power.c index f9feeb6e..18f16f83 100644 --- a/driver/others/dynamic_power.c +++ b/driver/others/dynamic_power.c @@ -202,7 +202,7 @@ static gotoblas_t *get_coretype(void) { return &gotoblas_POWER10; #endif /* Fall back to the POWER9 implementation if the toolchain is too old or the MMA feature is not set */ -#if (!defined __GNUC__) || ( __GNUC__ >= 6) +#if (!defined __GNUC__) || ( __GNUC__ >= 11) if (__builtin_cpu_is("power10")) return &gotoblas_POWER9; #endif -- 2.26.2 ++++++ 0002-patch-to-support-power10-in-builtin_cpu_is-was-backp.patch ++++++ >From b94dab5250469d4d30d1a21bf0e0b78eea3cf286 Mon Sep 17 00:00:00 2001 From: Martin Kroeker <[email protected]> Date: Wed, 20 Jan 2021 21:34:36 +0100 Subject: [PATCH 2/2] patch to support power10 in builtin_cpu_is was backported to gcc 10.2, so allow that as wel --- driver/others/dynamic_power.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/driver/others/dynamic_power.c b/driver/others/dynamic_power.c index 18f16f83..b8e5840a 100644 --- a/driver/others/dynamic_power.c +++ b/driver/others/dynamic_power.c @@ -202,7 +202,7 @@ static gotoblas_t *get_coretype(void) { return &gotoblas_POWER10; #endif /* Fall back to the POWER9 implementation if the toolchain is too old or the MMA feature is not set */ -#if (!defined __GNUC__) || ( __GNUC__ >= 11) +#if (!defined __GNUC__) || ( __GNUC__ >= 11) || (__GNUC__ == 10 && __GNUC_MINOR__ >= 2) if (__builtin_cpu_is("power10")) return &gotoblas_POWER9; #endif -- 2.26.2 ++++++ openblas-ppc64be_up2_p8.patch ++++++ From: Michel Normand <[email protected]> Subject: openblas ppc64be up2 p8 Date: Wed, 03 Feb 2021 15:39:25 +0100 openblas ppc64be up2 p8 because: * openblas build failed for ppc64 (BE) in openSUSE since version 0.3.12 * ppc64 (BE) not supported by IBM after P8. Signed-off-by: Michel Normand <[email protected]> --- Makefile.system | 4 ++++ driver/others/dynamic_power.c | 11 +++++++++++ 2 files changed, 15 insertions(+) Index: OpenBLAS-0.3.13/Makefile.system =================================================================== --- OpenBLAS-0.3.13.orig/Makefile.system +++ OpenBLAS-0.3.13/Makefile.system @@ -665,6 +665,9 @@ endif # ARCH zarch ifeq ($(ARCH), power) DYNAMIC_CORE = POWER6 DYNAMIC_CORE += POWER8 +ifeq ($(__BYTE_ORDER__),__ORDER_BIG_ENDIAN__) +$(info, OpenBLAS: for big endian limit to POWER8 kernels.) +else ifneq ($(C_COMPILER), GCC) DYNAMIC_CORE += POWER9 DYNAMIC_CORE += POWER10 @@ -690,6 +693,7 @@ $(info, OpenBLAS: Your gcc version is to endif endif endif +endif # If DYNAMIC_CORE is not set, DYNAMIC_ARCH cannot do anything, so force it to empty ifndef DYNAMIC_CORE Index: OpenBLAS-0.3.13/driver/others/dynamic_power.c =================================================================== --- OpenBLAS-0.3.13.orig/driver/others/dynamic_power.c +++ OpenBLAS-0.3.13/driver/others/dynamic_power.c @@ -3,6 +3,7 @@ extern gotoblas_t gotoblas_POWER6; extern gotoblas_t gotoblas_POWER8; +#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ #if (!defined __GNUC__) || ( __GNUC__ >= 6) extern gotoblas_t gotoblas_POWER9; #endif @@ -13,6 +14,7 @@ extern gotoblas_t gotoblas_POWER9; #ifdef HAVE_P10_SUPPORT extern gotoblas_t gotoblas_POWER10; #endif +#endif extern void openblas_warning(int verbose, const char *msg); @@ -29,12 +31,14 @@ static char *corename[] = { char *gotoblas_corename(void) { if (gotoblas == &gotoblas_POWER6) return corename[1]; if (gotoblas == &gotoblas_POWER8) return corename[2]; +#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ #if (!defined __GNUC__) || ( __GNUC__ >= 6) if (gotoblas == &gotoblas_POWER9) return corename[3]; #endif #ifdef HAVE_P10_SUPPORT if (gotoblas == &gotoblas_POWER10) return corename[4]; #endif +#endif return corename[0]; } @@ -44,6 +48,10 @@ static gotoblas_t *get_coretype(void) { return &gotoblas_POWER6; if (__builtin_cpu_is("power8")) return &gotoblas_POWER8; + /* Fall back to the POWER8 implementation for big endian */ +#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ + return &gotoblas_POWER8; +#else #if (!defined __GNUC__) || ( __GNUC__ >= 6) if (__builtin_cpu_is("power9")) return &gotoblas_POWER9; @@ -57,6 +65,7 @@ static gotoblas_t *get_coretype(void) { if (__builtin_cpu_is("power10")) return &gotoblas_POWER9; #endif +#endif return NULL; } @@ -79,12 +88,14 @@ static gotoblas_t *force_coretype(char * { case 1: return (&gotoblas_POWER6); case 2: return (&gotoblas_POWER8); +#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ #if (!defined __GNUC__) || ( __GNUC__ >= 6) case 3: return (&gotoblas_POWER9); #endif #ifdef HAVE_P10_SUPPORT case 4: return (&gotoblas_POWER10); #endif +#endif default: return NULL; } snprintf(message, 128, "Core not found: %s\n", coretype);
