You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
275 lines
8.7 KiB
275 lines
8.7 KiB
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 |
|
From: Andrey Borzenkov <arvidjaar@gmail.com> |
|
Date: Sat, 18 Jan 2014 21:22:57 +0400 |
|
Subject: [PATCH] fix include loop on MinGW due to libintl.h pulling stdio.h |
|
|
|
In file included from ./include/grub/dl.h:23:0, |
|
from grub-core/lib/libgcrypt-grub/cipher/rfc2268.c:3: |
|
./include/grub/list.h:34:18: warning: conflicting types for 'grub_list_push' [en |
|
abled by default] |
|
void EXPORT_FUNC(grub_list_push) (grub_list_t *head, grub_list_t item); |
|
^ |
|
./include/grub/symbol.h:68:25: note: in definition of macro 'EXPORT_FUNC' |
|
# define EXPORT_FUNC(x) x |
|
^ |
|
In file included from ./include/grub/fs.h:30:0, |
|
from ./include/grub/file.h:25, |
|
from ./grub-core/lib/posix_wrap/stdio.h:23, |
|
from c:\mingw\include\libintl.h:314, |
|
from ./include/grub/i18n.h:33, |
|
from ./include/grub/misc.h:27, |
|
from ./include/grub/list.h:25, |
|
from ./include/grub/dl.h:28, |
|
from grub-core/lib/libgcrypt-grub/cipher/rfc2268.c:3: |
|
./include/grub/partition.h:106:3: note: previous implicit declaration of 'grub_l |
|
ist_push' was here |
|
grub_list_push (GRUB_AS_LIST_P (&grub_partition_map_list), |
|
^ |
|
list.h needs just ATTRIBUTE_ERROR from misc.h; split compiler features |
|
into separate file grub/compiler.h and include it instead. |
|
--- |
|
grub-core/commands/fileXX.c | 1 + |
|
grub-core/efiemu/prepare.c | 1 + |
|
grub-core/loader/i386/xen_file.c | 1 + |
|
grub-core/loader/i386/xen_fileXX.c | 1 + |
|
grub-core/video/capture.c | 1 + |
|
include/grub/command.h | 1 + |
|
include/grub/compiler.h | 51 ++++++++++++++++++++++++++++++++++++++ |
|
include/grub/dl.h | 1 + |
|
include/grub/list.h | 4 +-- |
|
include/grub/misc.h | 29 +--------------------- |
|
include/grub/procfs.h | 1 + |
|
ChangeLog | 14 +++++++++++ |
|
12 files changed, 76 insertions(+), 30 deletions(-) |
|
create mode 100644 include/grub/compiler.h |
|
|
|
diff --git a/grub-core/commands/fileXX.c b/grub-core/commands/fileXX.c |
|
index c9857ff67b1..58e1094c68b 100644 |
|
--- a/grub-core/commands/fileXX.c |
|
+++ b/grub-core/commands/fileXX.c |
|
@@ -18,6 +18,7 @@ |
|
|
|
#include <grub/fileid.h> |
|
#include <grub/elfload.h> |
|
+#include <grub/misc.h> |
|
|
|
#pragma GCC diagnostic ignored "-Wcast-align" |
|
|
|
diff --git a/grub-core/efiemu/prepare.c b/grub-core/efiemu/prepare.c |
|
index fb1b25d17f2..84c3368a82c 100644 |
|
--- a/grub-core/efiemu/prepare.c |
|
+++ b/grub-core/efiemu/prepare.c |
|
@@ -21,6 +21,7 @@ |
|
#include <grub/err.h> |
|
#include <grub/mm.h> |
|
#include <grub/types.h> |
|
+#include <grub/misc.h> |
|
#include <grub/efiemu/efiemu.h> |
|
#include <grub/crypto.h> |
|
|
|
diff --git a/grub-core/loader/i386/xen_file.c b/grub-core/loader/i386/xen_file.c |
|
index ebbf6aa11ba..ff23235f064 100644 |
|
--- a/grub-core/loader/i386/xen_file.c |
|
+++ b/grub-core/loader/i386/xen_file.c |
|
@@ -18,6 +18,7 @@ |
|
|
|
#include <grub/xen_file.h> |
|
#include <grub/i386/linux.h> |
|
+#include <grub/misc.h> |
|
|
|
grub_elf_t |
|
grub_xen_file (grub_file_t file) |
|
diff --git a/grub-core/loader/i386/xen_fileXX.c b/grub-core/loader/i386/xen_fileXX.c |
|
index 6df00157629..73a5f90fdb9 100644 |
|
--- a/grub-core/loader/i386/xen_fileXX.c |
|
+++ b/grub-core/loader/i386/xen_fileXX.c |
|
@@ -17,6 +17,7 @@ |
|
*/ |
|
|
|
#include <grub/xen_file.h> |
|
+#include <grub/misc.h> |
|
|
|
static grub_err_t |
|
parse_xen_guest (grub_elf_t elf, struct grub_xen_file_info *xi, |
|
diff --git a/grub-core/video/capture.c b/grub-core/video/capture.c |
|
index 67c8edde824..4f83c744116 100644 |
|
--- a/grub-core/video/capture.c |
|
+++ b/grub-core/video/capture.c |
|
@@ -4,6 +4,7 @@ |
|
#include <grub/video.h> |
|
#include <grub/video_fb.h> |
|
#include <grub/mm.h> |
|
+#include <grub/misc.h> |
|
|
|
static struct |
|
{ |
|
diff --git a/include/grub/command.h b/include/grub/command.h |
|
index 8705a635519..eee4e847ee4 100644 |
|
--- a/include/grub/command.h |
|
+++ b/include/grub/command.h |
|
@@ -22,6 +22,7 @@ |
|
#include <grub/symbol.h> |
|
#include <grub/err.h> |
|
#include <grub/list.h> |
|
+#include <grub/misc.h> |
|
|
|
typedef enum grub_command_flags |
|
{ |
|
diff --git a/include/grub/compiler.h b/include/grub/compiler.h |
|
new file mode 100644 |
|
index 00000000000..c9e1d7a73dc |
|
--- /dev/null |
|
+++ b/include/grub/compiler.h |
|
@@ -0,0 +1,51 @@ |
|
+/* compiler.h - macros for various compiler features */ |
|
+/* |
|
+ * GRUB -- GRand Unified Bootloader |
|
+ * Copyright (C) 2002,2003,2005,2006,2007,2008,2009,2010,2014 Free Software Foundation, Inc. |
|
+ * |
|
+ * GRUB is free software: you can redistribute it and/or modify |
|
+ * it under the terms of the GNU General Public License as published by |
|
+ * the Free Software Foundation, either version 3 of the License, or |
|
+ * (at your option) any later version. |
|
+ * |
|
+ * GRUB is distributed in the hope that it will be useful, |
|
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
+ * GNU General Public License for more details. |
|
+ * |
|
+ * You should have received a copy of the GNU General Public License |
|
+ * along with GRUB. If not, see <http://www.gnu.org/licenses/>. |
|
+ */ |
|
+ |
|
+#ifndef GRUB_COMPILER_HEADER |
|
+#define GRUB_COMPILER_HEADER 1 |
|
+ |
|
+/* GCC version checking borrowed from glibc. */ |
|
+#if defined(__GNUC__) && defined(__GNUC_MINOR__) |
|
+# define GNUC_PREREQ(maj,min) \ |
|
+ ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) |
|
+#else |
|
+# define GNUC_PREREQ(maj,min) 0 |
|
+#endif |
|
+ |
|
+/* Does this compiler support compile-time error attributes? */ |
|
+#if GNUC_PREREQ(4,3) |
|
+# define ATTRIBUTE_ERROR(msg) \ |
|
+ __attribute__ ((__error__ (msg))) |
|
+#else |
|
+# define ATTRIBUTE_ERROR(msg) __attribute__ ((noreturn)) |
|
+#endif |
|
+ |
|
+#if GNUC_PREREQ(4,4) |
|
+# define GNU_PRINTF gnu_printf |
|
+#else |
|
+# define GNU_PRINTF printf |
|
+#endif |
|
+ |
|
+#if GNUC_PREREQ(3,4) |
|
+# define WARN_UNUSED_RESULT __attribute__ ((warn_unused_result)) |
|
+#else |
|
+# define WARN_UNUSED_RESULT |
|
+#endif |
|
+ |
|
+#endif /* ! GRUB_COMPILER_HEADER */ |
|
diff --git a/include/grub/dl.h b/include/grub/dl.h |
|
index d29a899f52c..9562fa6634c 100644 |
|
--- a/include/grub/dl.h |
|
+++ b/include/grub/dl.h |
|
@@ -26,6 +26,7 @@ |
|
#include <grub/types.h> |
|
#include <grub/elf.h> |
|
#include <grub/list.h> |
|
+#include <grub/misc.h> |
|
#endif |
|
|
|
/* |
|
diff --git a/include/grub/list.h b/include/grub/list.h |
|
index edd20adfdb2..d170ff6da02 100644 |
|
--- a/include/grub/list.h |
|
+++ b/include/grub/list.h |
|
@@ -21,8 +21,8 @@ |
|
#define GRUB_LIST_HEADER 1 |
|
|
|
#include <grub/symbol.h> |
|
-#include <grub/types.h> |
|
-#include <grub/misc.h> |
|
+#include <grub/err.h> |
|
+#include <grub/compiler.h> |
|
|
|
struct grub_list |
|
{ |
|
diff --git a/include/grub/misc.h b/include/grub/misc.h |
|
index 2cf74b55006..c6cd4564d86 100644 |
|
--- a/include/grub/misc.h |
|
+++ b/include/grub/misc.h |
|
@@ -25,34 +25,7 @@ |
|
#include <grub/symbol.h> |
|
#include <grub/err.h> |
|
#include <grub/i18n.h> |
|
- |
|
-/* GCC version checking borrowed from glibc. */ |
|
-#if defined(__GNUC__) && defined(__GNUC_MINOR__) |
|
-# define GNUC_PREREQ(maj,min) \ |
|
- ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) |
|
-#else |
|
-# define GNUC_PREREQ(maj,min) 0 |
|
-#endif |
|
- |
|
-/* Does this compiler support compile-time error attributes? */ |
|
-#if GNUC_PREREQ(4,3) |
|
-# define ATTRIBUTE_ERROR(msg) \ |
|
- __attribute__ ((__error__ (msg))) |
|
-#else |
|
-# define ATTRIBUTE_ERROR(msg) __attribute__ ((noreturn)) |
|
-#endif |
|
- |
|
-#if GNUC_PREREQ(4,4) |
|
-# define GNU_PRINTF gnu_printf |
|
-#else |
|
-# define GNU_PRINTF printf |
|
-#endif |
|
- |
|
-#if GNUC_PREREQ(3,4) |
|
-# define WARN_UNUSED_RESULT __attribute__ ((warn_unused_result)) |
|
-#else |
|
-# define WARN_UNUSED_RESULT |
|
-#endif |
|
+#include <grub/compiler.h> |
|
|
|
#define ALIGN_UP(addr, align) \ |
|
((addr + (typeof (addr)) align - 1) & ~((typeof (addr)) align - 1)) |
|
diff --git a/include/grub/procfs.h b/include/grub/procfs.h |
|
index d393da77f91..8cc331d946f 100644 |
|
--- a/include/grub/procfs.h |
|
+++ b/include/grub/procfs.h |
|
@@ -20,6 +20,7 @@ |
|
#define GRUB_PROCFS_HEADER 1 |
|
|
|
#include <grub/list.h> |
|
+#include <grub/types.h> |
|
|
|
struct grub_procfs_entry |
|
{ |
|
diff --git a/ChangeLog b/ChangeLog |
|
index dad2da2faef..dad469b43b1 100644 |
|
--- a/ChangeLog |
|
+++ b/ChangeLog |
|
@@ -1,3 +1,17 @@ |
|
+2014-01-18 Andrey Borzenkov <arvidjaar@gmail.com> |
|
+ |
|
+ * include/grub/misc.h: Move macros for compiler features to ... |
|
+ * include/grub/compiler.h: ... new file. |
|
+ * include/grub/list.h: Include <grub/compiler.h> instead of <grub/misc.h>. |
|
+ * grub-core/commands/fileXX.c: Include <grub/misc.h>. |
|
+ * grub-core/efiemu/prepare.c: Include <grub/misc.h>. |
|
+ * grub-core/loader/i386/xen_file.c: Include <grub/misc.h>. |
|
+ * grub-core/loader/i386/xen_fileXX.c: Include <grub/misc.h>. |
|
+ * grub-core/video/capture.c: Include <grub/misc.h>. |
|
+ * include/grub/command.h: Include <grub/misc.h>. |
|
+ * include/grub/dl.h: Include <grub/misc.h>. |
|
+ * include/grub/procfs.h: Include <grub/misc.h>. |
|
+ |
|
2014-01-18 Andrey Borzenkov <arvidjaar@gmail.com> |
|
|
|
* configure.ac: Add support for BUILD_EXEEXT and use it ...
|
|
|