[U-Boot] [PATCH 1/1] cbfs: do not pack struct cbfs_cachenode

With the __packed attribute sandbox_defconfig cannot be compiled with GCC 9.2.1:
fs/cbfs/cbfs.c: In function ‘file_cbfs_fill_cache’: fs/cbfs/cbfs.c:164:16: error: taking address of packed member of ‘struct cbfs_cachenode’ may result in an unaligned pointer value [-Werror=address-of-packed-member] 164 | cache_tail = &new_node->next; | ^~~~~~~~~~~~~~~
struct cbfs_cachenode is only an internal structure. So let's rearrange the fields such that the structure is naturally packed and remove the __packed attribute.
Signed-off-by: Heinrich Schuchardt xypron.glpk@gmx.de --- include/cbfs.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/include/cbfs.h b/include/cbfs.h index 6d4c4d4b06..f3bc8ca24a 100644 --- a/include/cbfs.h +++ b/include/cbfs.h @@ -72,13 +72,13 @@ struct cbfs_fileheader {
struct cbfs_cachenode { struct cbfs_cachenode *next; - u32 type; void *data; - u32 data_length; char *name; + u32 type; + u32 data_length; u32 name_length; u32 attributes_offset; -} __packed; +};
extern enum cbfs_result file_cbfs_result;
-- 2.23.0

On Mon, Oct 7, 2019 at 6:37 AM Heinrich Schuchardt xypron.glpk@gmx.de wrote:
With the __packed attribute sandbox_defconfig cannot be compiled with GCC 9.2.1:
fs/cbfs/cbfs.c: In function ‘file_cbfs_fill_cache’: fs/cbfs/cbfs.c:164:16: error: taking address of packed member of ‘struct cbfs_cachenode’ may result in an unaligned pointer value [-Werror=address-of-packed-member] 164 | cache_tail = &new_node->next; | ^~~~~~~~~~~~~~~
struct cbfs_cachenode is only an internal structure. So let's rearrange the fields such that the structure is naturally packed and remove the __packed attribute.
Signed-off-by: Heinrich Schuchardt xypron.glpk@gmx.de
include/cbfs.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
Reviewed-by: Bin Meng bmeng.cn@gmail.com

On Sun, 6 Oct 2019 at 15:38, Heinrich Schuchardt xypron.glpk@gmx.de wrote:
With the __packed attribute sandbox_defconfig cannot be compiled with GCC 9.2.1:
fs/cbfs/cbfs.c: In function ‘file_cbfs_fill_cache’: fs/cbfs/cbfs.c:164:16: error: taking address of packed member of ‘struct cbfs_cachenode’ may result in an unaligned pointer value [-Werror=address-of-packed-member] 164 | cache_tail = &new_node->next; | ^~~~~~~~~~~~~~~
struct cbfs_cachenode is only an internal structure. So let's rearrange the fields such that the structure is naturally packed and remove the __packed attribute.
Signed-off-by: Heinrich Schuchardt xypron.glpk@gmx.de
include/cbfs.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
Reviewed-by: Simon Glass sjg@chromium.org

On Mon, Oct 7, 2019 at 6:37 AM Heinrich Schuchardt xypron.glpk@gmx.de wrote:
With the __packed attribute sandbox_defconfig cannot be compiled with GCC 9.2.1:
fs/cbfs/cbfs.c: In function ‘file_cbfs_fill_cache’: fs/cbfs/cbfs.c:164:16: error: taking address of packed member of ‘struct cbfs_cachenode’ may result in an unaligned pointer value [-Werror=address-of-packed-member] 164 | cache_tail = &new_node->next; | ^~~~~~~~~~~~~~~
struct cbfs_cachenode is only an internal structure. So let's rearrange the fields such that the structure is naturally packed and remove the __packed attribute.
Signed-off-by: Heinrich Schuchardt xypron.glpk@gmx.de
include/cbfs.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
applied to u-boot-x86, thanks!
participants (3)
-
Bin Meng
-
Heinrich Schuchardt
-
Simon Glass