On 8/12/2020 8:39 AM, Ilya Maximets wrote:
On 8/12/20 5:25 PM, Gregory Rose wrote:


On 8/12/2020 2:26 AM, Ilya Maximets wrote:
Recent commit c0842fbc1b18 ("random32: move the pseudo-random 32-bit
definitions to prandom.h") in upstream kernel moved the definition
of prandom_* functions from random.h to prandom.h.  This change was
also backported to stable kernels.

Fixing our configure script to look for these functions in a new
location and avoid build failures:

    datapath/linux/compat/include/linux/random.h:11:19:
      error: redefinition of 'prandom_u32_max'

Signed-off-by: Ilya Maximets <i.maxim...@ovn.org>
---

This goes down to all branches that claims support for 4.14 and higer.


Hi Ilya,

I'm working on adding support up to kernel version 5.8 and had to fix
this up myself.


   acinclude.m4 | 15 +++++++++++++--
   1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/acinclude.m4 b/acinclude.m4
index 4bac9dbdd..31565ee5e 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -815,8 +815,19 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [
       OVS_GREP_IFELSE([$KSRC/include/linux/random.h],
                     [prandom_u32[[\(]]],
-                  [OVS_DEFINE([HAVE_PRANDOM_U32])])
-  OVS_GREP_IFELSE([$KSRC/include/linux/random.h], [prandom_u32_max])
+                  [OVS_DEFINE([HAVE_PRANDOM_U32])],
+                  [
+                    OVS_GREP_IFELSE([$KSRC/include/linux/prandom.h],
+                                    [prandom_u32[[\(]]],
+                                    [OVS_DEFINE([HAVE_PRANDOM_U32])])
+                  ])
+  OVS_GREP_IFELSE([$KSRC/include/linux/random.h], [prandom_u32_max],
+                  [OVS_DEFINE([HAVE_PRANDOM_U32_MAX])],
+                  [
+                    OVS_GREP_IFELSE([$KSRC/include/linux/prandom.h],
+                                    [prandom_u32_max],
+                                    [OVS_DEFINE([HAVE_PRANDOM_U32_MAX])])
+                  ])

Seems complex...  why not this?

diff --git a/acinclude.m4 b/acinclude.m4
index e9e15f8b5..30ef2068e 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -817,6 +817,10 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [
                    [prandom_u32[[\(]]],
                    [OVS_DEFINE([HAVE_PRANDOM_U32])])
    OVS_GREP_IFELSE([$KSRC/include/linux/random.h], [prandom_u32_max])
+  OVS_GREP_IFELSE([$KSRC/include/linux/prandom.h],
+                  [prandom_u32[[\(]]],
+                  [OVS_DEFINE([HAVE_PRANDOM_U32])])
+  OVS_GREP_IFELSE([$KSRC/include/linux/prandom.h], [prandom_u32_max])

Hmm.  Yes, this looks better.  And it will work since we will likely
not have definitions in both files.

It would result in serious breakage if they were defined in both
headers so I don't think that will be an issue.


I'll send v2.

Thanks!!

- Greg



Thanks,

- Greg


     OVS_GREP_IFELSE([$KSRC/include/net/rtnetlink.h], [get_link_net])
     OVS_GREP_IFELSE([$KSRC/include/net/rtnetlink.h], [name_assign_type])


_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to