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
signature.asc
Description: This is a digitally signed message part.
