adding extern maxbcachebuf to param.h

Konstantin Belousov kostikbel at gmail.com
Sun Jun 18 13:03:25 UTC 2017


On Sun, Jun 18, 2017 at 12:36:59PM +0000, Rick Macklem wrote:
> My recent commit (r320062) broke the arm build when it added
> extern int maxbcachebuf;
> to sys/param.h. Although I don't understand the actual failure, I believe
> it is caused by arm/arm/elf_note.S including param.h and then using the
> ELFNOTE() macro.
> 
> As a temporary fix, I have committed r320070, which removes the definition
> from sys/param.h.
> This brings me to the question of how best to fix this?
> 1 - Just leave it the way it is now, where "extern int maxbcachebuf" isn't defined
>      in a generic include file and needs to be defined as above before use.
> 2 - Add "!defined(LOCORE)" to the definition of it in sys/param.h, which I believe
>      will also fix the problem.
> 3 - Put it in some other sys/*.h file which never gets included in assembler files.
>      What .h would be appropriate?

I think that sys/buf.h is the best match.
Hiding the extern under !LOCORE in the sys/param.h is the second solution,
but I like moving the definition to buf.h because param.h is widely used
and most of the users do not need this symbol.


More information about the freebsd-current mailing list