[PATCH 1/8] malloc: implement USE_DL_PREFIX via inline functions

Simon Glass sjg at chromium.org
Wed Mar 4 21:50:42 CET 2020


Hi Simon,

On Wed, 4 Mar 2020 at 13:45, Simon Goldschmidt
<simon.k.r.goldschmidt at gmail.com> wrote:
>
> Am 20.02.2020 um 04:05 schrieb Simon Glass:
> > On Wed, 19 Feb 2020 at 12:39, Simon Goldschmidt
> > <simon.k.r.goldschmidt at gmail.com> wrote:
> >>
> >> Commit cfda60f99ae2 ("sandbox: Use a prefix for all allocation functions")
> >> introduced preprocessor macros for malloc/free etc.
> >>
> >> This is bad practice as it essentially makes 'free' a reserved keyword and
> >> resulted in quite a bit of renaming to avoid that reserved keyword.
> >>
> >> A better solution is to define the allocation functions as 'static inline'.
> >>
> >> As a side effect, exports.h must not export malloc/free for sandbox.
> >>
> >> Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt at gmail.com>
> >> ---
> >>
> >> A side-effect is that exports.h may not declare malloc/free. I'm not really
> >> sure if this is correct, but for sandbox, it should probably be ok?
> >
> > Is it possible to fix this? E.g. don't use inline for these two
> > functions on sandbox?
>
> Not using inline for sandbox for these two is *not* an option as these
> two are exactly the ones offending globally known names.
>
> I guess we have to know what we want here: what is exports.h meant for?
> To me it looks like it is meant for "U-Boot API" applications to link
> against. If so, why is it included in U-Boot sources (in over 20 files)?
>
> I guess one solution would be to move (or copy) the DL prefix handling
> into exports.h and _exports.h so that applications linking with
> exports.h implicily call dlmalloc/dlfree, not malloc/free (which would
> be the OS versions for sandbox).
>
> I'll try to prepare v2 in that direction, but I'm still not unsure since
> exports.h is included in internal U-Boot code.

OK sounds good. I do wonder whether we should drop the exports.h
inclusions as part of this? It does seem odd. OR perhaps they are
there just to make sure that the functions match the API?

Regards,
Simon


More information about the U-Boot mailing list