Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libfabric for openSUSE:Factory 
checked in at 2024-12-03 20:45:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libfabric (Old)
 and      /work/SRC/openSUSE:Factory/.libfabric.new.28523 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libfabric"

Tue Dec  3 20:45:37 2024 rev:50 rq:1227698 version:1.22.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/libfabric/libfabric.changes      2024-11-30 
13:27:48.293603091 +0100
+++ /work/SRC/openSUSE:Factory/.libfabric.new.28523/libfabric.changes   
2024-12-03 20:46:06.112246242 +0100
@@ -1,0 +2,12 @@
+Mon Dec  2 08:47:15 UTC 2024 - Nicolas Morey <[email protected]>
+
+- Completely remove building for AVX/AVX2 in PSM3  (bsc#1213538, bsc#1233356, 
bsc#1234014)
+  Runtime detection before initializing the provider is not enough as
+  PSM3 uses constructors which may include AVX insctruction.
+  Only requires SSE4.2 as it does make a large performance impact
+  in calculatin packet hashes.
+  - Remove psm3-fix-SIGILL-on-system-not-supporting-AVX.patch
+  - Add psm3-prevent-code-from-building-using-AVX-AVX2.patch
+- Add _constraints to mark SSE4.2 as required
+
+-------------------------------------------------------------------

Old:
----
  psm3-fix-SIGILL-on-system-not-supporting-AVX.patch

New:
----
  _constraints
  psm3-prevent-code-from-building-using-AVX-AVX2.patch

BETA DEBUG BEGIN:
  Old:  in calculatin packet hashes.
  - Remove psm3-fix-SIGILL-on-system-not-supporting-AVX.patch
  - Add psm3-prevent-code-from-building-using-AVX-AVX2.patch
BETA DEBUG END:

BETA DEBUG BEGIN:
  New:  - Remove psm3-fix-SIGILL-on-system-not-supporting-AVX.patch
  - Add psm3-prevent-code-from-building-using-AVX-AVX2.patch
- Add _constraints to mark SSE4.2 as required
BETA DEBUG END:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ fabtests.spec ++++++
--- /var/tmp/diff_new_pack.kO6yZ3/_old  2024-12-03 20:46:08.148332351 +0100
+++ /var/tmp/diff_new_pack.kO6yZ3/_new  2024-12-03 20:46:08.160332859 +0100
@@ -28,6 +28,7 @@
 Source:         libfabric-%{version}%{git_ver}.tar.bz2
 Source1:        fabtests-rpmlintrc
 Patch0:         libfabric-libtool.patch
+Patch1:         psm3-prevent-code-from-building-using-AVX-AVX2.patch
 BuildRequires:  autoconf
 BuildRequires:  automake
 BuildRequires:  libfabric-devel = %{version}

++++++ libfabric.spec ++++++
--- /var/tmp/diff_new_pack.kO6yZ3/_old  2024-12-03 20:46:08.400343009 +0100
+++ /var/tmp/diff_new_pack.kO6yZ3/_new  2024-12-03 20:46:08.416343686 +0100
@@ -35,7 +35,7 @@
 Source:         %{name}-%{version}%{git_ver}.tar.bz2
 Source1:        baselibs.conf
 Patch0:         libfabric-libtool.patch
-Patch1:         psm3-fix-SIGILL-on-system-not-supporting-AVX.patch
+Patch1:         psm3-prevent-code-from-building-using-AVX-AVX2.patch
 URL:            http://www.github.com/ofiwg/libfabric
 BuildRequires:  autoconf
 BuildRequires:  automake

++++++ _constraints ++++++
<?xml version="1.0"?>
<constraints>
  <overwrite>
    <conditions>
      <arch>i586</arch>
      <arch>x86_64</arch>
    </conditions>
    <hardware>
      <cpu>
        <flag>sse4_2</flag>
      </cpu>
    </hardware>
  </overwrite>
</constraints>
(No newline at EOF)

++++++ psm3-prevent-code-from-building-using-AVX-AVX2.patch ++++++
commit fdb3ddfe4e372022adcc1093f7f28d49021662ce
Author: Nicolas Morey <[email protected]>
Date:   Mon Dec 2 09:44:02 2024 +0100

    psm3: prevent code from building using AVX/AVX2
    
    Even with a snippet detecting if the CPU is compatible, PSM3 uses multiple
    constructors which may trigger a SIGILL when the library gets loaded
    
    Signed-off-by: Nicolas Morey <[email protected]>

diff --git prov/psm3/configure.m4 prov/psm3/configure.m4
index 5c8c083f7dc0..88e6871c1a9e 100644
--- prov/psm3/configure.m4
+++ prov/psm3/configure.m4
@@ -125,49 +125,7 @@ AC_DEFUN([FI_PSM3_CONFIGURE],[
             ],[
                 psm3_happy=0
                 AC_MSG_RESULT([no])
-                AC_MSG_NOTICE([psm3 requires minimum of avx instruction set to 
build])
-            ])
-        CFLAGS=$save_CFLAGS
-
-        AC_MSG_CHECKING([for -mavx support])
-        save_CFLAGS=$CFLAGS
-        CFLAGS="$PSM3_STRIP_OPTFLAGS -mavx -O0"
-        AC_LINK_IFELSE(
-            [AC_LANG_PROGRAM(
-                [[#include <immintrin.h>]],
-                [[unsigned long long _a[4] = {1ULL,2ULL,3ULL,4ULL};
-                  __m256i vA = _mm256_loadu_si256((__m256i *)_a);
-                  __m256i vB;
-                  _mm256_store_si256(&vB, vA);
-                  return 0;]])
-            ],[
-                AC_MSG_RESULT([yes])
-                PSM3_ARCH_CFLAGS="-mavx"
-                PSM3_MARCH="avx"
-            ],[
-                psm3_happy=0
-                AC_MSG_RESULT([no])
-                AC_MSG_NOTICE([psm3 requires minimum of avx instruction set to 
build])
-            ])
-        CFLAGS=$save_CFLAGS
-
-        AC_MSG_CHECKING([for -mavx2 support])
-        save_CFLAGS=$CFLAGS
-        CFLAGS="$PSM3_STRIP_OPTFLAGS -mavx2 -O0"
-        AC_LINK_IFELSE(
-            [AC_LANG_PROGRAM(
-                [[#include <immintrin.h>]],
-                [[unsigned long long _a[4] = {1ULL,2ULL,3ULL,4ULL};
-                  __m256i vA = _mm256_loadu_si256((__m256i *)_a);
-                  __m256i vB = _mm256_add_epi64(vA, vA);
-                  (void)vB;
-                  return 0;]])
-            ],[
-                AC_MSG_RESULT([yes])
-                PSM3_ARCH_CFLAGS="-mavx2"
-                PSM3_MARCH="avx2"
-            ],[
-                AC_MSG_RESULT([no])
+                AC_MSG_NOTICE([psm3 requires minimum of SSE4.2 instruction set 
to build])
             ])
         CFLAGS=$save_CFLAGS
 
diff --git prov/psm3/src/psmx3_init.c prov/psm3/src/psmx3_init.c
index 29359d3ea348..a02c1ff8698b 100644
--- prov/psm3/src/psmx3_init.c
+++ prov/psm3/src/psmx3_init.c
@@ -685,10 +685,8 @@ static int psmx3_getinfo(uint32_t api_version, const char 
*node,
                PSMX3_INFO(&psmx3_prov, FI_LOG_CORE,
                        "CPU does not support '%s'.\n", PSM3_MARCH);
                OFI_INFO_STR(&psmx3_prov,
-                       (__builtin_cpu_supports("avx2") ? "AVX2" :
-                               (__builtin_cpu_supports("avx") ? "AVX" :
-                                       (__builtin_cpu_supports("sse4.2") ? 
"SSE4.2" : "unknown"))),
-                       PSM3_MARCH, "CPU Supports", "PSM3 Built With");
+                            __builtin_cpu_supports("sse4.2") ? "SSE4.2" : 
"unknown",
+                            PSM3_MARCH, "CPU Supports", "PSM3 Built With");
                goto err_out;
        }
 

Reply via email to