glibc-2.16 doesn't expose gets anymore:
LSB deprecates gets(). POSIX.1-2008 marks gets() obsolescent. ISO C11 removes the specification of gets() from the C language, and since version 2.16, glibc header files don't expose the function declaration if the _ISOC11_SOURCE feature test macro is defined.
So current build fails like this:
In file included from /tmp/tmpfs/portage/sys-boot/grub-2.00/work/grub-2.00/grub-core/gnulib/argp.h:22:0,
./stdio.h:456:1: error: 'gets' undeclared here (not in a function)
make: *** [argp-fmtstream.o] Error 1
Fix is simple and shouldn't break things with older glibc, check that gets is defined before trying to undef it, patch attached.
Created attachment 317097 [details, diff]
Could you please submit your change upstream on the grub-devel mailing list?
(In reply to comment #2)
> Could you please submit your change upstream on the grub-devel mailing list?
this isn't a bug in grub. it's from gnulib which they import from a diff project (gnulib). i've applied the same patch as other projects.