--- /dev/null
+From 6a780f10c2b600cfc38f8b8f20cb7e40b979f541 Mon Sep 17 00:00:00 2001
+From: Michal Domonkos <mdomonko@redhat.com>
+Date: Tue, 4 Aug 2020 16:50:21 +0200
+Subject: [PATCH] Check for OpenMP version at configure time
+
+Only accept OpenMP >= 4.5, due to the "priority" clause that we use
+since commit 6f6f5e7, and also document that in the INSTALL file.
+
+If explicitly required with --enable-openmp, fail configuration if the
+version is not available.
+
+https://www.openmp.org/wp-content/uploads/openmp-4.5.pdf
+
+Resolves: #1315
+[Retrieved from:
+https://github.com/rpm-software-management/rpm/commit/6a780f10c2b600cfc38f8b8f20cb7e40b979f541]
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+---
+ INSTALL | 6 ++++++
+ configure.ac | 25 +++++++++++++++++++++++--
+ 2 files changed, 29 insertions(+), 2 deletions(-)
+
+diff --git a/INSTALL b/INSTALL
+index cfbe54a3e..7622b2efe 100644
+--- a/INSTALL
++++ b/INSTALL
+@@ -142,6 +142,12 @@ If you plan on using cryptographic signatures you will need a version
+ of GPG, available from
+ http://www.gnupg.org/
+
++OpenMP multithreading support is automatically enabled if your C compiler has
++support for OpenMP version 4.5 or higher (to disable, pass the --disable-openmp
++option to configure). For GCC, OpenMP 4.5 is fully supported since GCC 6.1,
++which is available from
++ http://www.gnu.org/
++
+ To compile RPM:
+ --------------
+
+diff --git a/configure.ac b/configure.ac
+index 1346ee704..35003619d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -167,11 +167,32 @@ AC_SUBST(WITH_LZMA_LIB)
+
+ # AC_OPENMP supports --enable/disable-openmp out of the box, but it doesn't
+ # actually give us a way to conditionalize the build based on that. Argh.
++# Version 4.5 (201511) introduced "priority" clause for tasks.
+ OPENMP_CFLAGS=
+ AC_OPENMP
+ AS_IF([test "x$ac_cv_prog_c_openmp" != x &&
+- test "x$ac_cv_prog_c_openmp" != unsupported],[
+- AC_DEFINE(ENABLE_OPENMP, 1, [Enable multithreading support?])
++ test "x$ac_cv_prog_c_openmp" != xunsupported],[
++ old_CFLAGS=$CFLAGS
++ CFLAGS="$CFLAGS $OPENMP_CFLAGS"
++ AC_MSG_CHECKING([OpenMP is at least version 4.5])
++ AC_RUN_IFELSE(
++ [AC_LANG_PROGRAM(
++ [#include <omp.h>],
++ [#if _OPENMP < 201511
++ exit(1);
++ #endif
++ ]
++ )],
++ [AC_MSG_RESULT([yes])
++ AC_DEFINE(ENABLE_OPENMP, 1, [Enable multithreading support?])
++ ],
++ [AC_MSG_RESULT([no])
++ if test "$enable_openmp" = "yes"; then
++ AC_MSG_ERROR([OpenMP too old])
++ fi
++ ]
++ )
++ CFLAGS=$old_CFLAGS
+ ])
+ AC_SUBST(OPENMP_CFLAGS)
+
--- /dev/null
+From 13585fbbe83eb177b13d86c2d6f11ff41a68d07e Mon Sep 17 00:00:00 2001
+From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Date: Tue, 10 Nov 2020 18:20:24 +0100
+Subject: [PATCH] configure.ac: fix cross-compilation
+
+Use AC_COMPILE_IFELSE as AC_RUN_IFELSE raises a build failure when
+cross-compiling
+
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+[Retrieved from:
+https://github.com/rpm-software-management/rpm/commit/13585fbbe83eb177b13d86c2d6f11ff41a68d07e]
+---
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 38d3c286a..a83016449 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -175,11 +175,11 @@ AS_IF([test "x$ac_cv_prog_c_openmp" != x &&
+ old_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS $OPENMP_CFLAGS"
+ AC_MSG_CHECKING([OpenMP is at least version 4.5])
+- AC_RUN_IFELSE(
++ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [#include <omp.h>],
+ [#if _OPENMP < 201511
+- exit(1);
++ #error
+ #endif
+ ]
+ )],
--- /dev/null
+From 662a367f427d653c6b8fbc7fbd1ace5ba120a25f Mon Sep 17 00:00:00 2001
+From: Michal Domonkos <mdomonko@redhat.com>
+Date: Thu, 3 Dec 2020 15:11:57 +0100
+Subject: [PATCH] Really disable OpenMP if too old
+
+Fix up for commit 6a780f1.
+
+[Retrieved from:
+https://github.com/rpm-software-management/rpm/pull/1455]
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+---
+ configure.ac | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/configure.ac b/configure.ac
+index c853cd9af..beb65ff8a 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -187,6 +187,7 @@ AS_IF([test "x$ac_cv_prog_c_openmp" != x &&
+ AC_DEFINE(ENABLE_OPENMP, 1, [Enable multithreading support?])
+ ],
+ [AC_MSG_RESULT([no])
++ OPENMP_CFLAGS=
+ if test "$enable_openmp" = "yes"; then
+ AC_MSG_ERROR([OpenMP too old])
+ fi
$(TARGET_NLS_DEPENDENCIES)
RPM_LICENSE = GPL-2.0 or LGPL-2.0 (library only)
RPM_LICENSE_FILES = COPYING
+# We're patching configure.ac
+RPM_AUTORECONF = YES
+# Don't set --{dis,en}-openmp as upstream wants to abort the build if
+# --enable-openmp is provided and OpenMP is < 4.5:
+# https://github.com/rpm-software-management/rpm/pull/1433
RPM_CONF_OPTS = \
--disable-python \
--disable-rpath \
RPM_CONF_OPTS += --disable-zstd
endif
-ifeq ($(BR2_TOOLCHAIN_HAS_OPENMP),y)
-RPM_CONF_OPTS += --enable-openmp
-else
-RPM_CONF_OPTS += --disable-openmp
-endif
-
# ac_cv_prog_cc_c99: RPM uses non-standard GCC extensions (ex. `asm`).
RPM_CONF_ENV = \
ac_cv_prog_cc_c99='-std=gnu99' \