At the moment the SHEEVAPLUG (for example) kernel can't be compiled as is due to the fact that it doesn't define LINUX_BOOT_ABI.
The reason is that we include sys/boot.h unconditionally, but do not use its contents (specifically the howto_names static array defined within it) if LINUX_BOOT_ABI is not defined.
So, let's only include the file if LINUX_BOOT_ABI is defined.
Details
Details
- Reviewers
mmel - Group Reviewers
ARM - Commits
- rS308406: Only include sys/boot.h if LINUX_BOOT_ABI is defined
Diff Detail
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Skipped - Unit
Tests Skipped
Event Timeline
Comment Actions
Actual build failure message is:
/src/current.git/sys/sys/boot.h:40: warning: 'howto_names' defined but not used
Looking at sys/sys/boot.h this is more or less normal. Looking at the implementation of sys/arm/arm/machdep.c, the only place where we use howto_names is within a #ifdef LINUX_BOOT_ABI block, so it makes sense to include sys/sys/boot.h only if LINUX_BOOT_ABI is defined.
Comment Actions
Hmm, right.
Btw, which compiler you use? It seems that clang doesn't generate error for unused external variables...
Comment Actions
I'm using the default gcc.. maybe this is not 100% correct for ARM anymore (it was, last time I used it :-) ), but in any case I guess we should go ahead and put the include of sys/boot.h within an #ifdef LINUX_BOOT_ABI block..