[U-Boot] [PATCH 1/3] compiler_gcc: do not redefine __gnu_attributes

Masahiro Yamada yamada.m at jp.panasonic.com
Thu Sep 18 04:13:20 CEST 2014


Jeroen,

> commit fb8ffd7cfc68b3dc44e182356a207d784cb30b34 "compiler*.h:
> sync include/linux/compiler*.h with Linux 3.16" undid the changes
> of 7ea50d52849fe8ffa5b5b74c979b60b1045d6fc9 "compiler_gcc: do
> not redefine __gnu_attributes". Add the checks back whether these
> macro's are already defined (as it causes a lot of noise on e.g.
> FreeBSD where these defines are already in cdefs.h)
> 
> As the original patch this checkpatch warning is ignored:
> "WARNING: Adding new packed members is to be done with care"


Strange.

Which source files include cdefs.h?

For building u-boot images, sources should
only include headers in the u-boot source tree.
The standard system headers should not be used
except only a few files such as <stdarg.h>.

This is the same as Linux Kernel.


On the contrary, host programs are allowed to use
standard system headers such as <stdio.h>, <stdlib.h> etc,
where <linux/compiler.h> should not be included.


The root cause of warnings is _not_ that
__packed and __weak are always defined in compiler-gcc.h.


I believe the real problem is there are some source files include
both system headers and <linux/compiler.h> at the same time.



Best Regards
Masahiro Yamada



More information about the U-Boot mailing list