On Friday, April 17, 2015 19:40:28 Sven Eckelmann wrote:
> The header files could not be build indepdent from each other. This is
> happened because headers didn't include the files for things they've used.
> This was problematic because the success of a build depended on the
> knowledge about the right order of local includes.
> 
> Also source files were not including everything they've used explicitly.
> Instead they required that transitive includes are always stable. This is
> problematic because some transitive includes are not obvious, depend on
> config settings and may not be stable in the future.
> 
> The order for include blocks are:
> 
>  * primary headers (main.h and the *.h file of a *.c file)
>  * global linux headers
>  * required local headers
>  * extra forward declarations for pointers in function/struct declarations
> 
> The only exceptions are linux/bitops.h and linux/if_ether.h in packet.h.
> This header file is shared with userspace applications like batctl and must
> therefore build together with userspace applications. The header
> linux/bitops.h is not part of the uapi headers and linux/if_ether.h
> conflicts with the musl implementation of netinet/if_ether.h. The
> maintainers rejected the use of __KERNEL__ preprocessor checks and thus
> these two headers are only in main.h. All files using packet.h first have
> to include main.h to work correctly.
> 
> Reported-by: Markus Pargmann <[email protected]>
> Signed-off-by: Sven Eckelmann <[email protected]>

Applied in revision 960339d.

Thanks,
Marek

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to