[U-Boot] [PATCH] CRITICAL error in v2013.04-rc2 (true and false not working)

York Sun yorksun at freescale.com
Thu Apr 4 23:31:17 CEST 2013


On 04/04/2013 02:26 PM, Pali Rohár wrote:
> On Thursday 04 April 2013 23:21:22 York Sun wrote:
>> On 04/04/2013 02:19 PM, Pali Rohár wrote:
>>> On Thursday 04 April 2013 23:05:18 York Sun wrote:
>>>> On 04/04/2013 01:33 PM, Wolfgang Denk wrote:
>>>>> Dear Pali Rohár,
>>>>>
>>>>> In message <201304041946.55455 at pali> you wrote:
>>>>>> u-boot "true" and "false" hush commands are copiled
>>>>>> incorrectly in uboot v2013.04-rc2
>>>>>> (c8142633e169665b246352918df5b76fd243bb71)
>>>>>>
>>>>>> when I run help in u-boot it show:
>>>>>>
>>>>>> # help
>>>>>> 0       - do nothing, unsuccessfully
>>>>>> 1       - do nothing, successfully
>>>>>> ?       - alias for 'help'
>>>>>> base    - print or set address offset
>>>>>> ...
>>>>>>
>>>>>> Instead "0" and "1" there should be "false" and "true"
>>>>>> command.
>>>>>
>>>>> I confirm the problem.
>>>>>
>>>>> York, your commit 472d546 "Consolidate bool type" is
>>>>> causing this issue, so I suggest you send a fix, please.
>>>>>
>>>>> Please check for other, similar use cases.
>>>>
>>>> I found the cause but I don't know the best fix. Please
>>>> help.
>>>>
>>>> This is cause by common/cmd_test.c. It has command "true"
>>>> and "false". Shall I undef true and false before the
>>>> U_BOOT_CMD in this file, or use True and False as the
>>>> names? If there is a better way to do that, please
>>>> enlighten me.
>>>>
>>>> York
>>>
>>> If you rename commands "true" and "false" to "True" and
>>> "False" you will break all code which using it. Now RX-51
>>> board do not booting due to missing "true" and "false"
>>> commands...
>>
>> Would this fix be acceptable?
>>
>> diff --git a/common/cmd_test.c b/common/cmd_test.c
>> index d4ec186..2ce3d3d 100644
>> --- a/common/cmd_test.c
>> +++ b/common/cmd_test.c
>> @@ -155,6 +155,10 @@ static int do_false(cmd_tbl_t *cmdtp, int
>> flag, int argc, char * const argv[])
>>         return 1;
>>  }
>>
>> +#ifdef true
>> +#undef true
>> +#undef false
>> +
>>  U_BOOT_CMD(
>>         false,  CONFIG_SYS_MAXARGS,     1,      do_false,
>>         "do nothing, unsuccessfully",
>> @@ -171,3 +175,5 @@ U_BOOT_CMD(
>>         "do nothing, successfully",
>>         NULL
>>  );
>> +
>> +#endif
>>
>> York
> 
> I already proposed patch in first email:
> http://lists.denx.de/pipermail/u-boot/2013-April/151009.html
> 
> Adding #undef true and #undef false fixing this problem.
> 

Thanks, Pali.

Wolfgang, shall we change U_BOOT_CMD to take string instead of
stringifying or use the local undef?

York





More information about the U-Boot mailing list