Am 20.02.2020 um 04:05 schrieb Simon Glass: > On Wed, 19 Feb 2020 at 12:39, Simon Goldschmidt > <[email protected]> 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 <[email protected]> >> --- >> >> 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. Regards, Simon > >> >> include/_exports.h | 2 ++ >> include/exports.h | 2 ++ >> include/malloc.h | 44 +++++++++++++++++++++++++++++--------------- >> 3 files changed, 33 insertions(+), 15 deletions(-) > > Reviewed-by: Simon Glass <[email protected]> >

