All of lore.kernel.org
 help / color / mirror / Atom feed
* Trunk fails to build with -O<anything other than 0>
@ 2013-01-30 18:32 Leif Lindholm
  2013-01-30 19:41 ` Andrey Borzenkov
  0 siblings, 1 reply; 3+ messages in thread
From: Leif Lindholm @ 2013-01-30 18:32 UTC (permalink / raw)
  To: The development of GNU GRUB

Our Ubuntu (12.04/12.10) build environment defaults configuring with 
CFLAGS containing -O2. Trunk currently does not build successfully with 
this on either my ARM platform or my x86_64 desktop.

This isn't causing any serious problems, but I thought I would report 
what I've found.

Commit #4635 included source code changes that ended up causing build
failures in several of the libcrypt cipher files with
---
libgrubgcry_a-arcfour.o `test -f 
'grub-core/lib/libgcrypt-grub/cipher/arcfour.c' || echo 
'./'`grub-core/lib/libgcrypt-grub/cipher/arcfour.c
In file included from ./include/grub/misc.h:27:0,
                  from ./grub-core/lib/libgcrypt_wrap/cipher_wrap.h:24,
                  from grub-core/lib/libgcrypt-grub/cipher/types.h:2,
                  from grub-core/lib/libgcrypt-grub/cipher/arcfour.c:30:
./include/grub/i18n.h: In function '_':
./include/grub/i18n.h:56:10: error: 'LC_MESSAGES' undeclared (first use 
in this function)
./include/grub/i18n.h:56:10: note: each undeclared identifier is 
reported only once for each function it appears in
make[3]: *** 
[grub-core/lib/libgcrypt-grub/cipher/libgrubgcry_a-arcfour.o] Error 1
---
when building the utils.

This occurs with any -O level other than -O0.

I traced the culprit down to the (system) libintl.h, which has a cute
little section which checks if __OPTIMIZE__ is set, and if so redefines
gettext() as a macro for dcgettext (domainname, msgid, LC_MESSAGES).
Since this is all preprocessor driven in the C library headers, 
-fno-builtin has no effect.

Also, when building on my x86_64 workstation only, I get a failure when
compiling grub-core/lib/crypto.c - due to (system) fgets() ending up 
with a warn-unused-result prototype when building with optimizations.

And, also on my workstation only, util/ieee1275/ofpath.c (system) read() 
fails due to warn-unused-results, just like fgets() above.

All but one of these issues "go away" with -U__OPTIMIZE__ :
grub-core/lib/libgcrypt-grub/cipher/rijndael.c gives a few screenfuls
of warnings anyway, and only builds successfully when -O2 is removed 
from the build command line (or -O0 is appended).

Regards,

Leif



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2013-01-31 14:05 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-01-30 18:32 Trunk fails to build with -O<anything other than 0> Leif Lindholm
2013-01-30 19:41 ` Andrey Borzenkov
2013-01-31 14:04   ` Leif Lindholm

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.