[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Trunk fails to build with -O<anything other than 0>
From: |
Andrey Borzenkov |
Subject: |
Re: Trunk fails to build with -O<anything other than 0> |
Date: |
Wed, 30 Jan 2013 23:41:21 +0400 |
В Wed, 30 Jan 2013 18:32:39 +0000
Leif Lindholm <address@hidden> пишет:
> 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).
>
I wonder why it did not happen before. Apparently, empty locale.h is
present since 2010-04-10 (rev 2311). Removing it fixes the problem, but
I presume it should not be empty in the first place.
From: Andrey Borzenkov <address@hidden>
Subject: [PATCH] remove stray locale.h
Empty locale.h caused compilation errors.
Signed-off-by: Andrey Borzenkov <address@hidden>
---
po/POTFILES.in | 1 -
1 file changed, 1 deletion(-)
diff --git a/grub-core/lib/posix_wrap/locale.h
b/grub-core/lib/posix_wrap/locale.h
deleted file mode 100644
index e69de29..0000000
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 01cc53c..358de99 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -443,7 +443,6 @@
./grub-core/lib/posix_wrap/langinfo.h
./grub-core/lib/posix_wrap/limits.h
./grub-core/lib/posix_wrap/localcharset.h
-./grub-core/lib/posix_wrap/locale.h
./grub-core/lib/posix_wrap/stdint.h
./grub-core/lib/posix_wrap/stdio.h
./grub-core/lib/posix_wrap/stdlib.h
--
tg: (4b9ea2e..) u/locale.h (depends on: master)