[U-Boot] [PATCH 02/10] Add some standard headers external code might need

Simon Glass
2014-10-28T18:24:10Z

Hi,

On 28 October 2014 11:46, Jeroen Hofstee <jeroen@myspectrum.nl> wrote:
> Hello Simon,
>
>
> On 28-10-14 18:33, Simon Glass wrote:
>>
>> Hi Masahiro,
>>
>> On 28 October 2014 10:38, Masahiro YAMADA <yamada.m@jp.panasonic.com>
>> wrote:
>>>
>>> Hi Simon,
>>>
>>>
>>> 2014-10-29 1:29 GMT+09:00 Simon Glass <sjg@chromium.org>:
>>>>
>>>> Hi Masahiro,
>>>>
>>>> On 28 October 2014 10:25, Masahiro YAMADA <yamada.m@jp.panasonic.com>
>>>> wrote:
>>>>>
>>>>> Hi Gabe, Simon,
>>>>>
>>>>>
>>>>> 2014-10-15 19:38 GMT+09:00 Simon Glass <sjg@chromium.org>:
>>>>>>
>>>>>> From: Gabe Black <gabeblack@chromium.org>
>>>>>>
>>>>>> inttypes.h defines format specifiers for printf which work with data
>>>>>> types of
>>>>>> particular sizes. stdlib.h is currently just a passthrough to malloc.h
>>>>>> which
>>>>>> has declarations of the various *alloc functions.
>>>>>>
>>>>>> Add the required #define to common.h so that these printf format
>>>>>> specifiers
>>>>>> will be made available.
>>>>>>
>>>>>> Signed-off-by: Gabe Black <gabeblack@google.com>
>>>>>> Reviewed-by: Gabe Black <gabeblack@chromium.org>
>>>>>> Tested-by: Gabe Black <gabeblack@chromium.org>
>>>>>> Reviewed-by: Bill Richardson <wfrichar@google.com>
>>>>>> Signed-off-by: Simon Glass <sjg@chromium.org>
>>>>>> (Replaced with a GPL version from glibc)
>>>>>>
>>>>> [snip]
>>>>>>
>>>>>> diff --git a/include/stdlib.h b/include/stdlib.h
>>>>>> new file mode 100644
>>>>>> index 0000000..6bc7fbb
>>>>>> --- /dev/null
>>>>>> +++ b/include/stdlib.h
>>>>>> @@ -0,0 +1,12 @@
>>>>>> +/*
>>>>>> + * Copyright (C) 2013 Google Inc.
>>>>>> + *
>>>>>> + * SPDX-License-Identifier: GPL-2.0+
>>>>>> + */
>>>>>> +
>>>>>> +#ifndef __STDLIB_H_
>>>>>> +#define __STDLIB_H_
>>>>>> +
>>>>>> +#include <malloc.h>
>>>>>> +
>>>>>> +#endif /* __STDLIB_H_ */
>>>>>> --
>>>>>> 2.1.0.rc2.206.gedb03e5
>>>>>
>>>>>
>>>>> This patch is not clear to me.
>>>>>
>>>>> Why do we need include/stdlib.h ?
>>>>
>>>> This makes the U-Boot environment more similar to that used by other
>>>> software, so we can more easily build it without lots of glue files.
>>>> Normally stdlib.h defines malloc() and friends.
>>>
>>> I am not happy about this.
>>>
>>> Our right direction is to make U-Boot environment more similar to the
>>> Kernel, I think.
>>>
>>> stdlib.h shouldn't appear in bare metal code.
>>
>> That's right, we don't want to include this in U-Boot itself. But if
>> you look at things in tools/ they include stdlib.h. With this header
>> available, we can more easily compile external code into U-Boot.
>
>
> So is it intended as fallback if the host doesn't have a stdlib.h?

Not really, more that for things that expect that header (and
inttypes.h which was also added) they can get it without needing
special #ifdefs for U-Boot.

Regards,
Simon