On Thu, 10 Mar 2022 19:54:48 -0300
Dan Gora <d...@adax.com> wrote:

> On Thu, Mar 10, 2022 at 11:46 AM Sanford, Robert <rsanf...@akamai.com> wrote:
> >
> > Hello All,
> >
> > We build a DPDK 21.05 app on Intel x86 machines with RDSEED in cpuflags, 
> > and may run it on machines *without* RDSEED.
> > This results in a fatal error ...
> > ERROR: This system does not support "RDSEED".
> > Please check that RTE_MACHINE is set correctly.
> > EAL: FATAL: unsupported cpu type.
> >
> > I try adding -Dplatform=haswell when running meson, (because gcc man page 
> > indicates that haswell is last arch w/o RDSEED) but get the same result.
> > Until we resolve it, our workaround is changing the error-out in 
> > rte_cpu_is_supported() to just print a warning and continue.
> > We don't have direct access to automated build machines, we go through 
> > change request processes, and so we can't rapidly try too many things.
> >
> > Is there a better meson option, such as machine=haswell, or something else 
> > that will work?
> >
> > Thanks in advance,
> > Robert Sanford  
> 
> I tried four times to get a simple fix for this (and the lack of
> getentropy() on older glibc) to determine the entropy source at run
> time and got nothing but an endless raft of shit and ridiculous
> criticisms that I completely gave up trying to contribute to DPDK ever
> again.
> 
> The DPDK developers think that it's your responsibility to have a
> separate build system for each of your target systems and platforms
> and that if you don't you're basically a big dummy.
> 
> Don't believe me?  Go look through the archives:
> 
> "[PATCH 2/2] eal: resolve getentropy at run time for random seed"
> "[PATCH v4 2/2] eal: emulate glibc getentropy for initial random seed".
> 
> I suggest that you just fork DPDK and use one of those patches and
> just maintain a separate DPDK tree.  That's what I did.  It's way
> easier than trying to get anything upstream.
> 
> thanks
> dan

The ideal solution would be able to use gcc function attributes and dyanmic
linking to do this at runtime - ie multiversion library.  But this opens a set
of different problems like compiler versions and testing.

Reply via email to