[U-Boot] [PATCH] config_distro_bootcmd.h: add note on error handling

From: Stephen Warren swarren@nvidia.com
This should make it more clear why there appear to be C pre-processor symbols in the file that contain mixed case. They're really error messages.
Suggested-by: Simon Glass sjg@chromium.org Signed-off-by: Stephen Warren swarren@nvidia.com --- include/config_distro_bootcmd.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)
diff --git a/include/config_distro_bootcmd.h b/include/config_distro_bootcmd.h index 07a0b3b23472..73f093f9eaf5 100644 --- a/include/config_distro_bootcmd.h +++ b/include/config_distro_bootcmd.h @@ -10,6 +10,22 @@ #ifndef _CONFIG_CMD_DISTRO_BOOTCMD_H #define _CONFIG_CMD_DISTRO_BOOTCMD_H
+/* + * A note on error handling: It is possible for BOOT_TARGET_DEVICES to + * reference a device that is not enabled in the U-Boot configuration, e.g. + * it may include MMC in the list without CONFIG_CMD_MMC being enabled. Given + * that BOOT_TARGET_DEVICES is a macro that's expanded by the C pre-processor + * at compile time, it's not possible to detect and report such problems via + * a simple #ifdef/#error combination. Still, the code needs to report errors. + * The best way I've found to do this is to make BOOT_TARGET_DEVICES expand to + * reference a non-existent symbol, and have the name of that symbol encode + * the error message. Consequently, this file contains references to e.g. + * BOOT_TARGET_DEVICES_references_MMC_without_CONFIG_CMD_MMC. Given the + * prevalence of capitals here, this looks like a pre-processor macro and + * hence seems like it should be all capitals, but it's really an error + * message that includes some other pre-processor symbols in the text. + */ + /* We need the part command */ #define CONFIG_PARTITION_UUIDS #define CONFIG_CMD_PART

On Tue, Mar 10, 2015 at 03:40:58PM -0600, Stephen Warren wrote:
From: Stephen Warren swarren@nvidia.com
This should make it more clear why there appear to be C pre-processor symbols in the file that contain mixed case. They're really error messages.
Suggested-by: Simon Glass sjg@chromium.org Signed-off-by: Stephen Warren swarren@nvidia.com
Reviewed-by: Tom Rini trini@konsulko.com

On 03/11/2015 09:51 AM, Tom Rini wrote:
On Tue, Mar 10, 2015 at 03:40:58PM -0600, Stephen Warren wrote:
From: Stephen Warren swarren@nvidia.com
This should make it more clear why there appear to be C pre-processor symbols in the file that contain mixed case. They're really error messages.
Suggested-by: Simon Glass sjg@chromium.org Signed-off-by: Stephen Warren swarren@nvidia.com
Reviewed-by: Tom Rini trini@konsulko.com
Thanks. It looks like you usually apply the patches to this file rather than acking it for someone else to take. Was your reviewed-by just a hint you're waiting for e.g. Simon to review it too?

On Wed, Mar 11, 2015 at 10:22:23AM -0600, Stephen Warren wrote:
On 03/11/2015 09:51 AM, Tom Rini wrote:
On Tue, Mar 10, 2015 at 03:40:58PM -0600, Stephen Warren wrote:
From: Stephen Warren swarren@nvidia.com
This should make it more clear why there appear to be C pre-processor symbols in the file that contain mixed case. They're really error messages.
Suggested-by: Simon Glass sjg@chromium.org Signed-off-by: Stephen Warren swarren@nvidia.com
Reviewed-by: Tom Rini trini@konsulko.com
Thanks. It looks like you usually apply the patches to this file rather than acking it for someone else to take. Was your reviewed-by just a hint you're waiting for e.g. Simon to review it too?
Yes, thanks :)

On 10 March 2015 at 15:40, Stephen Warren swarren@wwwdotorg.org wrote:
From: Stephen Warren swarren@nvidia.com
This should make it more clear why there appear to be C pre-processor symbols in the file that contain mixed case. They're really error messages.
Suggested-by: Simon Glass sjg@chromium.org Signed-off-by: Stephen Warren swarren@nvidia.com
include/config_distro_bootcmd.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)
diff --git a/include/config_distro_bootcmd.h b/include/config_distro_bootcmd.h index 07a0b3b23472..73f093f9eaf5 100644 --- a/include/config_distro_bootcmd.h +++ b/include/config_distro_bootcmd.h @@ -10,6 +10,22 @@ #ifndef _CONFIG_CMD_DISTRO_BOOTCMD_H #define _CONFIG_CMD_DISTRO_BOOTCMD_H
+/*
- A note on error handling: It is possible for BOOT_TARGET_DEVICES to
- reference a device that is not enabled in the U-Boot configuration, e.g.
- it may include MMC in the list without CONFIG_CMD_MMC being enabled. Given
- that BOOT_TARGET_DEVICES is a macro that's expanded by the C pre-processor
- at compile time, it's not possible to detect and report such problems via
- a simple #ifdef/#error combination. Still, the code needs to report errors.
- The best way I've found to do this is to make BOOT_TARGET_DEVICES expand to
- reference a non-existent symbol, and have the name of that symbol encode
- the error message. Consequently, this file contains references to e.g.
- BOOT_TARGET_DEVICES_references_MMC_without_CONFIG_CMD_MMC. Given the
- prevalence of capitals here, this looks like a pre-processor macro and
- hence seems like it should be all capitals, but it's really an error
- message that includes some other pre-processor symbols in the text.
- */
/* We need the part command */ #define CONFIG_PARTITION_UUIDS #define CONFIG_CMD_PART
Very clear thank you.
Reviewed-by: Simon Glass sjg@chromium.org

On Tue, Mar 10, 2015 at 03:40:58PM -0600, Stephen Warren wrote:
From: Stephen Warren swarren@nvidia.com
This should make it more clear why there appear to be C pre-processor symbols in the file that contain mixed case. They're really error messages.
Suggested-by: Simon Glass sjg@chromium.org Signed-off-by: Stephen Warren swarren@nvidia.com Reviewed-by: Tom Rini trini@konsulko.com Reviewed-by: Simon Glass sjg@chromium.org
Applied to u-boot/master, thanks!
participants (3)
-
Simon Glass
-
Stephen Warren
-
Tom Rini