On Tue, 1 Oct 2024 14:25:46 +0200
David Marchand <david.march...@redhat.com> wrote:

> On Tue, Oct 1, 2024 at 2:21 PM Burakov, Anatoly
> <anatoly.bura...@intel.com> wrote:
> > > +
> > > +/**
> > > + * Frees the memory space pointed to by the provided pointer.
> > > + *
> > > + * This pointer must have been returned by a previous call to
> > > + * rte_malloc(), rte_zmalloc(), rte_calloc() or rte_realloc(). The 
> > > behaviour of
> > > + * rte_free() is undefined if the pointer does not match this 
> > > requirement.
> > > + *
> > > + * If the pointer is NULL, the function does nothing.
> > > + *
> > > + * @param ptr
> > > + *   The pointer to memory to be freed.
> > > + */
> > > +void
> > > +rte_free(void *ptr);
> > > +  
> >
> > Is there any particular reason why rte_free was moved?
> >
> > Otherwise,
> >
> > Acked-by: Anatoly Burakov <anatoly.bura...@intel.com>  
> 
> I guess this is for the added annotation which points at rte_free symbol.
> A forward declaration would be another option.

Right, compiler now needs to know about the free function.
Moving it was the clean solution and avoids duplication.

If rte_free prototype is not moved...

In file included from ../lib/eal/include/rte_string_fns.h:22,
                 from ../lib/eal/common/eal_common_config.c:5:
../lib/eal/include/rte_common.h:261:42: error: ‘rte_free’ undeclared here (not 
in a function)
  261 | #define __rte_dealloc_free __rte_dealloc(rte_free, 1)
      |                                          ^~~~~~~~
../lib/eal/include/rte_common.h:260:31: note: in definition of macro 
‘__rte_dealloc’
  260 |         __attribute__((malloc(dealloc, argno)))
      |                               ^~~~~~~
../lib/eal/include/rte_malloc.h:58:22: note: in expansion of macro 
‘__rte_dealloc_free’
   58 |         __rte_malloc __rte_dealloc_free;
      |                      ^~~~~~~~~~~~~~~~~~
[16/3024] Compiling C object lib/librte_telemetry.a.p/telemetry_telemetry.c.o

Reply via email to