#11 Upgrade to SIMDe 0.7.6.
Merged a year ago by jaruga. Opened a year ago by jaruga.
rpms/ jaruga/simde wip/rebase  into  rawhide

file added
+193
@@ -0,0 +1,193 @@ 

+ #!/bin/bash

+ 

+ set -euxo pipefail

+ 

+ # Define variables

+ HOST_CPU="$(uname -m)"

+ JOBS="$(nproc)"

+ 

+ # Functions

+ function _time {

+   /bin/time -f '=> [%E]' ${@}

+ }

+ 

+ function _setup {

+   if ! meson setup "${BUILD_DIR}"; then

+     cat "${BUILD_DIR}/meson-logs/meson-log.txt"

+     return 1

+   fi

+ }

+ 

+ function _build {

+   rm -f build.log

+   if ! _time ninja -C "${BUILD_DIR}" -v -j "${JOBS}" >& build.log; then

+     cat build.log

+     return 1

+   fi

+   head -4 build.log

+   tail -3 build.log

+ }

+ 

+ function _test {

+   if ! _time meson test -C "${BUILD_DIR}" \

+     -q --no-rebuild --print-errorlogs; then

+     return 1

+   fi

+ }

+ 

+ function _run_test {

+   if ! _setup; then

+     return 1

+   fi

+ 

+   if ! _build; then

+     return 2

+   fi

+ 

+   if ! _test; then

+     return 3

+   fi

+ }

+ 

+ # Print system info.

+ cat /proc/cpuinfo

+ cat /proc/meminfo

+ 

+ # Install additional packages.

+ pip3 install meson==0.55.0

+ 

+ # Run test.

+ 

+ # Customized constants.

+ #

+ # If the value is true, the CI returns the exit status zero even if the tests

+ # fail as a compromised way.

+ IGNORE_EXIT_STATUS=

+ # Set true if you want to skip specific tests to save total running time in all

+ # the CPU cases.

+ SKIP_ALL_GCC_DEFAULT=

+ SKIP_ALL_GCC_O2=

+ SKIP_ALL_GCC_RPM=true

+ SKIP_ALL_CLANG_DEFAULT=true

+ SKIP_ALL_CLANG_O2=true

+ SKIP_ALL_CLANG_RPM=true

+ # Set true if you want to skip specific tests in the specific CPU cases.

+ # The host machine CPU name is used in the constant names.

+ #

+ # Skip the test as it fails, and the i686 case takes longer running time.

+ SKIP_i686_GCC_DEFAULT=true

+ 

+ # Generate the current CPU specific skip flags.

+ SKIP_CPU_GCC_DEFAULT=$(eval echo "\${SKIP_${HOST_CPU}_GCC_DEFAULT:-}")

+ SKIP_CPU_GCC_O2=$(eval echo "\${SKIP_${HOST_CPU}_GCC_O2:-}")

+ SKIP_CPU_GCC_RPM=$(eval echo "\${SKIP_${HOST_CPU}_GCC_RPM:-}")

+ SKIP_CPU_CLANG_DEFAULT=$(eval echo "\${SKIP_${HOST_CPU}_CLANG_DEFAULT:-}")

+ SKIP_CPU_CLANG_O2=$(eval echo "\${SKIP_${HOST_CPU}_CLANG_O2:-}")

+ SKIP_CPU_CLANG_RPM=$(eval echo "\${SKIP_${HOST_CPU}_CLANG_RPM:-}")

+ 

+ exit_status=0

+ result_gcc="skipped"

+ result_gcc_O2="skipped"

+ result_gcc_rpm="skipped"

+ result_clang="skipped"

+ result_clang_O2="skipped"

+ result_clang_rpm="skipped"

+ 

+ # Print compiler versions.

+ gcc --version

+ g++ --version

+ clang --version

+ clang++ --version

+ 

+ echo "== Tests on gcc in a default status =="

+ if [ "${SKIP_ALL_GCC_DEFAULT}" != true ] && \

+   [ "${SKIP_CPU_GCC_DEFAULT}" != true ]; then

+   result_gcc="ok"

+   if ! BUILD_DIR="build/gcc" CC="gcc" CXX="g++" \

+     _run_test; then

+     exit_status=1

+     result_gcc="not ok"

+   fi

+ fi

+ 

+ echo "== Tests on clang in a default status =="

+ if [ "${SKIP_ALL_CLANG_DEFAULT}" != true ] && \

+   [ "${SKIP_CPU_CLANG_DEFAULT}" != true ]; then

+   result_clang="ok"

+   if ! BUILD_DIR="build/clang" CC="clang" CXX="clang++" \

+     _run_test; then

+     exit_status=1

+     result_clang="not ok"

+   fi

+ fi

+ 

+ echo "== Tests on gcc with O2 flag =="

+ if [ "${SKIP_ALL_GCC_O2}" != true ] && \

+   [ "${SKIP_CPU_GCC_O2}" != true ]; then

+   result_gcc_O2="ok"

+   if ! BUILD_DIR="build/gcc-O2" CC="gcc" CXX="g++" \

+     CFLAGS="-O2" CXXFLAGS="-O2" \

+     _run_test; then

+     exit_status=1

+     result_gcc_O2="not ok"

+   fi

+ fi

+ 

+ echo "== Tests on clang with O2 flag =="

+ if [ "${SKIP_ALL_CLANG_O2}" != true ] && \

+   [ "${SKIP_CPU_CLANG_O2}" != true ]; then

+   result_clang_O2="ok"

+   if ! BUILD_DIR="build/clang-O2" CC="clang" CXX="clang++" \

+     CFLAGS="-O2" CXXFLAGS="-O2" \

+     _run_test; then

+     exit_status=1

+     result_clang_O2="not ok"

+   fi

+ fi

+ 

+ # This is an advanced test.

+ echo "== Tests on gcc with flags used in RPM package build =="

+ if [ "${SKIP_ALL_GCC_RPM}" != true ] && \

+   [ "${SKIP_CPU_GCC_RPM}" != true ]; then

+   result_gcc_rpm="ok"

+   if ! BUILD_DIR="build/gcc-rpm" CC="gcc" CXX="g++" \

+     CFLAGS="${CI_GCC_RPM_CFLAGS}" CXXFLAGS="${CI_GCC_RPM_CXXFLAGS}" \

+     LDFLAGS="${CI_GCC_RPM_LDFLAGS}" \

+     _run_test; then

+     exit_status=1

+     result_gcc_rpm="not ok"

+   fi

+ fi

+ 

+ # This is an advanced test.

+ echo "== Tests on clang with flags used in RPM package build =="

+ if [ "${SKIP_ALL_CLANG_RPM}" != true ] && \

+   [ "${SKIP_CPU_CLANG_RPM}" != true ]; then

+   result_clang_rpm="ok"

+   if ! BUILD_DIR="build/clang-rpm" CC="clang" CXX="clang++" \

+     CFLAGS="${CI_CLANG_RPM_CFLAGS}" CXXFLAGS="${CI_CLANG_RPM_CXXFLAGS}" \

+     LDFLAGS="${CI_CLANG_RPM_LDFLAGS}" \

+     _run_test; then

+     exit_status=1

+     result_clang_rpm="not ok"

+   fi

+ fi

+ 

+ # Print results.

+ cat <<EOF

+ == Results ==

+ Exit status: ${exit_status}

+ ${result_gcc} gcc without flags

+ ${result_gcc_O2} gcc with -O2 flag

+ ${result_gcc_rpm} gcc with RPM build flags

+ ${result_clang} clang without flags

+ ${result_clang_O2} clang with -O2 flag

+ ${result_clang_rpm} clang with RPM build flags

+ EOF

+ 

+ if [ "${IGNORE_EXIT_STATUS}" = true ]; then

+   echo "warning: Exiting always with exit status zero is not ideal."

+   exit 0

+ else

+   exit ${exit_status}

+ fi

file modified
-5
@@ -1,5 +0,0 @@ 

- # Spelling errors.

- addFilter(r'^simde\.src: W: spelling-error %description -l en_US intrinsics ')

- addFilter(r'^simde\.src: W: spelling-error %description -l en_US natively ')

- # The hedley exists as a runtiime dependency of the simde.

- addFilter(r'^simde-devel\.\w+: W: dangling-relative-symlink /usr/include/simde/hedley\.h \.\./hedley\.h$')

file modified
+94 -275
@@ -1,20 +1,14 @@ 

- # Run the tests on gcc?

- %bcond_without check_gcc

- # Run the tests on clang?

- %bcond_without check_clang

- 

- %global commit_simde 9609eb2cf687984277185813fdfe81b8b200377b

+ %global commit_simde fefc7857ff3e785b988a61a8f5f3c5bd5eb24342

  %global short_commit_simde %(c=%{commit_simde}; echo ${c:0:7})

- %global commit_munit da8f73412998e4f1adf1100dc187533a51af77fd

  # Disable debuginfo package for the header only package.

  %global debug_package %{nil}

  

  # Disable the auto_set_build_flags. Because it sets clang flags for gcc in

- # the %check section.

+ # the %%check section.

  %undefine _auto_set_build_flags

  

- %global simde_version 0.7.4

- %global rc_version 1

+ %global simde_version 0.7.6

+ # %%global rc_version 1

  

  Name: simde

  Version: %{simde_version}%{?rc_version:~rc%{rc_version}}
@@ -24,16 +18,22 @@ 

  Summary: SIMD Everywhere

  # find simde/ -type f | xargs licensecheck

  #   simde: MIT

- #   simde/check.h: CC0

- #   simde/debug-trap.h: CC0

- #   simde/simde-arch.h: CC0

+ #   simde/check.h: CC0-1.0

+ #   simde/debug-trap.h: CC0-1.0

+ #   simde/simde-align.h: CC0-1.0

+ #   simde/simde-arch.h: CC0-1.0

+ #   simde/simde-detect-clang.h: CC0-1.0

  # removed in %%prep (unbundled):

  #   simde/hedley.h: CC0

- License: MIT and CC0

+ # Consider relicensing CC0 code to another license (MIT?)

+ # https://github.com/simd-everywhere/simde/issues/999

+ License: MIT and CC0-1.0

  URL: https://github.com/simd-everywhere/simde

- Source0: https://github.com/simd-everywhere/%{name}/archive/%{commit_simde}.tar.gz

- # munit used in the unit test.

- Source1: https://github.com/nemequ/munit/archive/%{commit_munit}.tar.gz

+ Source0: https://github.com/simd-everywhere/simde/archive/%{commit_simde}.tar.gz

+ # Use the `.packit/ci.sh` on the pull-requset below until it will be merged.

+ # https://github.com/simd-everywhere/simde/blob/master/.packit/ci.sh

+ # https://github.com/simd-everywhere/simde/pull/1044

+ Source1: ci.sh

  # gcc and clang are used in the unit tests.

  BuildRequires: clang

  BuildRequires: gcc
@@ -91,274 +91,89 @@ 

  for file in $(find simde/ -type f); do

    if ! [[ "${file}" =~ \.h$ ]]; then

      echo "${file} is not a header file."

-     false

+     exit 1

    elif [ -x "${file}" ]; then

      echo "${file} has executable bit."

-     false

+     exit 1

    fi

  done

  EOF

  

- # Set munit.

- rm -rf test/munit

- tar xzvf %{SOURCE1}

- mv munit-%{commit_munit} test/munit

- 

- # Define functions.

- JOB_NUM="$(nproc)"

- 

- function _time {

-   %{_bindir}/time -f '=> [%E]' ${@}

- }

- 

- function _setup {

-   meson setup "${BUILD_DIR}" || (

-     cat "${BUILD_DIR}/meson-logs/meson-log.txt"

-     false

-   )

- }

- 

- function _build {

-   rm -f build.log

-   _time ninja -C "${BUILD_DIR}" -v -j "${JOB_NUM}" >& build.log || (

-     cat build.log

-     false

-   )

-   head -4 build.log

-   tail -3 build.log

- }

- 

- function _test {

-   _time meson test -C "${BUILD_DIR}" -q --no-rebuild --print-errorlogs

- }

- 

- BACKUP_FILES="

-   meson.build

-   test/x86/meson.build

-   test/wasm/simd128/meson.build

- "

- 

- function _backup {

-   for file in ${BACKUP_FILES}; do

-     cp -p ${file}{,.orig}

-   done

- }

- 

- function _reset {

-   for file in ${BACKUP_FILES}; do

-     cp -p ${file}{.orig,}

-   done

- }

- 

- _backup

- 

- # Run the unit tests.

- # gcc

- %if %{with check_gcc}

- %global toolchain gcc

- bash - <<\EOF

- echo "== 1. tests on gcc =="

- EOF

- gcc --version

- g++ --version

- 

- bash - <<\EOF

- echo "=== 1.1. tests on gcc without flags ==="

+ # Only test the GCC and Clang cases with RPM build flags.

+ # If you find test failures on the cases, reproduce it in the upstream CI.

+ # in the O2 or RPM build flags cases, and report it.

+ # See <https://github.com/simd-everywhere/simde/blob/master/.packit/>.

+ 

+ # Copy to use the modified script.

+ cp -p "%{SOURCE1}" ci.sh

+ # Suppress the system info.

+ sed -i -e '/^cat \/proc\/cpuinfo/ s/^/#/' ci.sh

+ sed -i -e '/^cat \/proc\/meminfo/ s/^/#/' ci.sh

+ # Use the meson RPM package instead of the PyPI package.

+ sed -i -e '/^pip3 install meson/ s/^/#/' ci.sh

+ # Comment out the default configuration.

+ sed -i -e '/^IGNORE_EXIT_STATUS=/,/^SKIP_i686_GCC_DEFAULT=/ s/^/#/' ci.sh

+ # Print the difference on the debugging purpose.

+ diff -u "%{SOURCE1}" ci.sh || :

+ 

+ # Prepare to test on the GCC case with RPM build flags.

+ cp -p ci.sh ci_gcc.sh

+ # Print the failing messages in the CPU cases without checking the exit status.

+ IGNORE_EXIT_STATUS=

+ %ifarch i686 ppc64le

+ IGNORE_EXIT_STATUS=true

+ %endif

+ # Prepare the configuration.

+ cat > config.txt <<EOF

+ IGNORE_EXIT_STATUS=${IGNORE_EXIT_STATUS}

+ SKIP_ALL_GCC_DEFAULT=true

+ SKIP_ALL_GCC_O2=true

+ SKIP_ALL_GCC_RPM=

+ SKIP_ALL_CLANG_DEFAULT=true

+ SKIP_ALL_CLANG_O2=true

+ SKIP_ALL_CLANG_RPM=true

  EOF

- # gcc 11.1.1 without flags + i686 x86/avx512/dbsad failures

- # https://github.com/simd-everywhere/simde/issues/867

- %ifarch i686

- sed -i "/^simde_avx512_families/,/\]/ s/'dbsad',/#\0/" meson.build

- %endif

- # gcc 13.0.1 without flags + ppc64le test failures and errors.

- # https://github.com/simd-everywhere/simde/issues/986

- %ifarch ppc64le

- sed -i -E "/^simde_avx512_families/,/\]/ s/'(range|range_round)',/#\0/" meson.build

- sed -i '/^test_simde_x_mm_copysign_ps *(/,/^}$/ s|simde_test_x86_assert_equal_f32x4|//\0|' \

-   test/x86/sse.c

- sed -i '/^test_simde_x_mm_copysign_pd *(/,/^}$/ s|simde_test_x86_assert_equal_f64x2|//\0|' \

-   test/x86/sse2.c

- sed -i '/^test_simde_wasm_i16x8_mul *(/,/^}$/ s|simde_test_wasm_i16x8_assert_equal|//\0|' \

-   test/wasm/simd128/mul.c

- sed -i '/^test_simde_wasm_u16x8_shr *(/,/^}$/ s|simde_test_wasm_u16x8_assert_equal|//\0|' \

-   test/wasm/simd128/shr.c

- sed -i '/^test_simde_wasm_u32x4_shr *(/,/^}$/ s|simde_test_wasm_u32x4_assert_equal|//\0|' \

-   test/wasm/simd128/shr.c

- sed -i '/^test_simde_wasm_u64x2_shr *(/,/^}$/ s|simde_test_wasm_u64x2_assert_equal|//\0|' \

-   test/wasm/simd128/shr.c

- %endif

- # gcc 13.0.1 without flags + s390x test qdmulh* failures and errors

- # https://github.com/simd-everywhere/simde/issues/987

- %ifarch s390x

- sed -i -E "/^simde_neon_families/,/\]/ s/'(qdmulh|qdmulh_lane|qdmulh_n)',/#\0/" meson.build

- %endif

- BUILD_DIR="build/gcc"

- CC="gcc -fno-strict-aliasing" CXX="g++ -fno-strict-aliasing" \

-   _setup

- _build

- _test

- 

- bash - <<\EOF

- echo "=== 1.2. tests on gcc with O2 flag ==="

+ # Insert the configuration.

+ sed -i -e '/^#SKIP_i686_GCC_DEFAULT=/r config.txt' ci_gcc.sh

+ # Print the difference on the debugging purpose.

+ diff -u ci.sh ci_gcc.sh || :

+ 

+ # Prepare to test on the Clang case with RPM build flags.

+ cp -p ci.sh ci_clang.sh

+ # Print the failing messages in the CPU cases without checking the exit status.

+ IGNORE_EXIT_STATUS=true

+ # Prepare the configuration to be inserted.

+ cat > config.txt <<EOF

+ IGNORE_EXIT_STATUS=${IGNORE_EXIT_STATUS}

+ SKIP_ALL_GCC_DEFAULT=true

+ SKIP_ALL_GCC_O2=true

+ SKIP_ALL_GCC_RPM=true

+ SKIP_ALL_CLANG_DEFAULT=true

+ SKIP_ALL_CLANG_O2=true

+ SKIP_ALL_CLANG_RPM=

  EOF

- # _reset

- # gcc 13.0.1 with O2 + i686 test dpbf16 failures and x86/avx512/dpbf16 errors

- # https://github.com/simd-everywhere/simde/issues/988

- %ifarch i686

- sed -i "/^simde_avx512_families/,/\]/ s/'dpbf16',/#\0/" meson.build

- %endif

- # gcc 11.1.1 with -O2 + s390x arm/neon/{mlal_lane,mlsl_lane} failures

- # https://github.com/simd-everywhere/simde/issues/874

- %ifarch s390x

- sed -i -E "/^simde_neon_families/,/\]/ s/'(mlal_lane|mlsl_lane)',/#\0/" meson.build

- %endif

- BUILD_DIR="build/gcc-O2"

- CC="gcc -fno-strict-aliasing" CXX="g++ -fno-strict-aliasing" \

- CFLAGS="-O2" CXXFLAGS="-O2" \

-   _setup

- # gcc 13.0.1 with -O2 + -fno-strict-aliasing + aarch64 (arm64) build stucking.

- # https://github.com/simd-everywhere/simde/issues/992

- %ifnarch aarch64

- _build

- _test

- %endif

- 

- bash - <<\EOF

- echo "=== 1.3. tests on gcc with flags macro ==="

- EOF

- # gcc 11 with flags + i686 x86/{sse,sse2} test_simde_mm_cvt* failures

- # https://github.com/simd-everywhere/simde/issues/719

- %ifarch i686

- sed -i '/^test_simde_mm_cvt_ps2pi *(/,/^}$/ s|simde_test_x86_assert_equal_i32x2|//\0|' \

-   test/x86/sse.c

- sed -i '/^test_simde_mm_cvtps_pi16 *(/,/^}$/ s|simde_test_x86_assert_equal_i16x4|//\0|' \

-   test/x86/sse.c

- sed -i '/^test_simde_mm_cvtsi64_ss *(/,/^}$/ s|simde_test_x86_assert_equal_f32x4|//\0|' \

-   test/x86/sse.c

- sed -i '/^test_simde_mm_cvtsd_si64 *(/,/^}$/ s|simde_assert_equal_i64|//\0|' \

-   test/x86/sse2.c

- sed -i '/^test_simde_mm_cvtsi64_sd *(/,/^}$/ s|simde_assert_m128d_close|//\0|' \

-   test/x86/sse2.c

- sed -i '/^test_simde_mm_cvttsd_si64 *(/,/^}$/ s|simde_assert_equal_i64|//\0|' \

-   test/x86/sse2.c

- %endif

- # gcc 11.1.1 with flags + ppc64le arm/neon failures

- # https://github.com/simd-everywhere/simde/issues/865

- %ifarch ppc64le

- sed -i -E "/^simde_neon_families/,/\]/ s/'\w+',/#\0/" meson.build

- %endif

- BUILD_DIR="build/gcc-flags-macro"

- CC="gcc -fno-strict-aliasing" CXX="g++ -fno-strict-aliasing" \

- CFLAGS="%{build_cflags}" CXXFLAGS="%{build_cxxflags}" \

-   _setup

- # gcc 13.0.1 with -O2 + -fno-strict-aliasing + aarch64 (arm64) build stucking.

- # https://github.com/simd-everywhere/simde/issues/992

- %ifnarch aarch64

- _build

- _test

- %endif

- 

- # with check_gcc

- %endif

- 

- # clang

- %if %{with check_clang}

+ # Insert the configuration.

+ sed -i -e '/^#SKIP_i686_GCC_DEFAULT=/r config.txt' ci_clang.sh

+ # Print the difference on the debugging purpose.

+ diff -u ci.sh ci_clang.sh || :

+ 

+ # Set environment variables to test with RPM build flags.

+ # See <https://github.com/simd-everywhere/simde/blob/master/.packit/simde.spec>.

+ # Append the `-fno-strict-aliasing` for a compatibility from the past commit

+ # below, though it's not related to the shipping simde RPM package.

+ # https://src.fedoraproject.org/rpms/simde/c/3371c3a422f2512562fd4641b956d0c4b848c7ec

  %global toolchain clang

- bash - <<\EOF

- echo "== 2. tests on clang =="

- EOF

- clang --version

- clang++ --version

- 

- bash - <<\EOF

- echo "=== 2.1. tests on clang without flags ==="

- EOF

- _reset

- # clang 12 + i686 {x86/sse,x86/sse2,arm/neon} failures

- # https://github.com/simd-everywhere/simde/issues/721

- %ifarch i686

- sed -i -E "/^simde_test_x86_tests/,/\]/ s/'(sse|sse2)',/#\0/" test/x86/meson.build

- sed -i -E "/^simde_neon_families/,/\]/ s/'(abd|max|min|mla|mls|mls_n|mul|mul_n|pmax|pmin|rev64|sub|zip|zip1|zip2)',/#\0/" meson.build

- %endif

- %ifarch ppc64le

- # clang 15.0.7 without flags + ppc64le test arm/neon/ld1q_x{2,3,4} failures and errors

- # https://github.com/simd-everywhere/simde/issues/989

- sed -i -E "/^simde_neon_families/,/\]/ s/'(ld1q_x2|ld1q_x3|ld1q_x4)',/#\0/" meson.build

- # clang 15.0.7 without flags + ppc64le test wasm/simd128/{mul,shr} failures

- # https://github.com/simd-everywhere/simde/issues/991

- sed -i '/^test_simde_wasm_i16x8_mul *(/,/^}$/ s|simde_test_wasm_i16x8_assert_equal|//\0|' \

-   test/wasm/simd128/mul.c

- sed -i '/^test_simde_wasm_u16x8_shr *(/,/^}$/ s|simde_test_wasm_u16x8_assert_equal|//\0|' \

-   test/wasm/simd128/shr.c

- sed -i '/^test_simde_wasm_u32x4_shr *(/,/^}$/ s|simde_test_wasm_u32x4_assert_equal|//\0|' \

-   test/wasm/simd128/shr.c

- sed -i '/^test_simde_wasm_u64x2_shr *(/,/^}$/ s|simde_test_wasm_u64x2_assert_equal|//\0|' \

-   test/wasm/simd128/shr.c

- %endif

- # clang 12.0.1 without flags + s390x x86/avx512/shldv, arm/neon/qdmulh* failures

- # https://github.com/simd-everywhere/simde/issues/869

- %ifarch s390x

- sed -i -E "/^simde_neon_families/,/\]/ s/'(qdmulh|qdmulh_lane|qdmulh_n)',/#\0/" meson.build

- sed -i "/^simde_avx512_families/,/\]/ s/'shldv',/#\0/" meson.build

- %endif

- BUILD_DIR="build/clang"

- CC=clang CXX=clang++ \

-   _setup

- _build

- _test

- 

- bash - <<\EOF

- echo "=== 2.2. tests on clang with O2 flag ==="

- EOF

- _reset

- 

- # clang 15.0.7 with -O2 + x86_64 arm/qabs/vqabsq_s32

- # https://github.com/simd-everywhere/simde/issues/901

- sed -i -E "/^simde_neon_families/,/\]/ s/'qabs',/#\0/" meson.build

- # clang 12 with -O2 + i686 x86/sse2 test_simde_mm_cvtsi64_sd failures

- # https://github.com/simd-everywhere/simde/issues/740

- %ifarch i686

- sed -i '/^test_simde_mm_cvtsi64_sd *(/,/^}$/ s|simde_assert_m128d_close|//\0|' \

-   test/x86/sse2.c

- %endif

- # clang 12.0.1 with -O2 + armv7hl wasm_simd128/trunc_sat failures

- # https://github.com/simd-everywhere/simde/issues/880

- %ifarch %{arm}

- sed -i "/^simde_test_wasm_simd128_tests/,/\]/ s/'trunc_sat',/#\0/" test/wasm/simd128/meson.build

- %endif

- # clang 12.0.1 with -O2 + ppc64le x86/avx512/ror failures

- # https://github.com/simd-everywhere/simde/issues/875

- %ifarch ppc64le

- sed -i "/^simde_avx512_families/,/\]/ s/'ror',/#\0/" meson.build

- %endif

- %ifarch s390x

- sed -i -E "/^simde_neon_families/,/\]/ s/'(qdmulh|qdmulh_lane|qdmulh_n)',/#\0/" meson.build

- %endif

- BUILD_DIR="build/clang-O2"

- CC="clang" CXX="clang++" \

- CFLAGS="-O2" CXXFLAGS="-O2" \

-   _setup

- _build

- _test

- 

- bash - <<\EOF

- echo "=== 2.3. tests on clang with flags macro ==="

- EOF

- BUILD_DIR="build/clang-flags-macro"

- # clang is broken armv7hl.

- # https://bugzilla.redhat.com/show_bug.cgi?id=1918924

- # A temporary workaround to avoid the segmentation fault on armv7hl.

- %ifarch %{arm}

- %global _lto_cflags %{nil}

- %endif

- CC="clang" CXX="clang++" \

- CFLAGS="%{build_cflags}" CXXFLAGS="%{build_cxxflags}" \

-   _setup

- _build

- _test

+ export CI_CLANG_RPM_CFLAGS="%{build_cflags} -fno-strict-aliasing"

+ export CI_CLANG_RPM_CXXFLAGS="%{build_cxxflags} -fno-strict-aliasing"

+ export CI_CLANG_RPM_LDFLAGS="%{build_ldflags}"

+ %global toolchain gcc

+ export CI_GCC_RPM_CFLAGS="%{build_cflags} -fno-strict-aliasing"

+ export CI_GCC_RPM_CXXFLAGS="%{build_cxxflags} -fno-strict-aliasing"

+ export CI_GCC_RPM_LDFLAGS="%{build_ldflags}"

  

- # with check_clang

- %endif

+ # Run tests.

+ /bin/time -f '=> [%E]' ./ci_gcc.sh

+ /bin/time -f '=> [%E]' ./ci_clang.sh

  

  %files devel

  %license COPYING
@@ -366,6 +181,10 @@ 

  %{_includedir}/%{name}

  

  %changelog

+ * Mon Jun 12 2023 Jun Aruga <jaruga@redhat.com> - 0.7.6-1.gitfefc785

+ - Upgrade to SIMDe 0.7.6.

+   Resolves: rhbz#2192076

+ 

  * Thu Feb 16 2023 Jun Aruga <jaruga@redhat.com> - 0.7.4~rc1-1.git9609eb2

  - Upgrade to SIMDe 0.7.4 rc1.

    Resolves: rhbz#2047012

file modified
+1 -2
@@ -1,2 +1,1 @@ 

- SHA512 (9609eb2cf687984277185813fdfe81b8b200377b.tar.gz) = 30d3250d7c971f235772664bc73471fb208ba299c2e43c91d8eea7f9ff191add755e2f74372fd6f9f4f02dbb4ced004edefdc5e69bea486edba43d1da5a00907

- SHA512 (da8f73412998e4f1adf1100dc187533a51af77fd.tar.gz) = cd08c1291a73487f15fdba7bf8675fea9177f0ec9766900f65efb5f00c662532a16499447e9087d304de34ff9138f47d04ebf18713f5aa8aacede22c5e23b98b

+ SHA512 (fefc7857ff3e785b988a61a8f5f3c5bd5eb24342.tar.gz) = ed3550c706a607a5d902d109405ec366a2d4803cf44ac1342b2f950956708b4038e50816064ed289544bbc44e866bd6bce146a19e328c877c2582de490c6409e

A big change is that we use the upstream testing script[1], and we only test
GCC and Clang cases with RPM build flags. Because the upstream project has
Fedora rawhide cases on the CI, and the cases are the most important in the real
use cases in the Fedora project.

The upstream can technically test GCC and Clang cases without default flags,
with -O2 flags, and with the RPM build flags on Fedora rawhide on the upstream CI.

This change makes us maintain and rebase the simde RPM package easily.

[1] https://github.com/simd-everywhere/simde/blob/master/.packit/ci.sh


Scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=102066344

Build succeeded.
https://fedora.softwarefactory-project.io/zuul/buildset/884e8765a01c4446a1dc04330468c3ee

rebased onto f416451

a year ago

rebased onto 31c5120

a year ago

Right now I see the following RPM packages are using simde as BuildRequires.

I tested the bowtie2 and bwa building on the updated simde. In the bowtie2, s390x and i686 are excluded. So, it is shown as failure in Copr. But it's okay.
https://copr.fedorainfracloud.org/coprs/jaruga/staging/packages/

rebased onto 6bb6e27

a year ago

rebased onto e68ac07

a year ago

rebased onto 41c3e93

a year ago

Build succeeded.
https://fedora.softwarefactory-project.io/zuul/buildset/54f11aafb40642dc987769046e12dd76

Pull-Request has been merged by jaruga

a year ago