grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Trunk fails to build with -O<anything other than 0>


From: Leif Lindholm
Subject: Trunk fails to build with -O<anything other than 0>
Date: Wed, 30 Jan 2013 18:32:39 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130106 Thunderbird/17.0.2

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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]