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. I'll send v2. > > 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