All of lore.kernel.org
 help / color / mirror / Atom feed
* conflicting types for 'grub_list_push' on MinGW (include loop)
@ 2014-01-13 18:17 Andrey Borzenkov
  2014-01-13 18:33 ` Colin Watson
  0 siblings, 1 reply; 10+ messages in thread
From: Andrey Borzenkov @ 2014-01-13 18:17 UTC (permalink / raw)
  To: grub-devel

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),
   ^

I'm not sure what to do here. list.h needs misc.h apparently only for
definition of ATTRIBUTE_ERROR which in turn does  not appear to be used
anywhere else. This is not fatal so may be can be ignored for now, but
still would be nice to clean up.


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

* Re: conflicting types for 'grub_list_push' on MinGW (include loop)
  2014-01-13 18:17 conflicting types for 'grub_list_push' on MinGW (include loop) Andrey Borzenkov
@ 2014-01-13 18:33 ` Colin Watson
  2014-01-13 19:44   ` Andrey Borzenkov
  2014-01-13 22:00   ` Vladimir 'φ-coder/phcoder' Serbinenko
  0 siblings, 2 replies; 10+ messages in thread
From: Colin Watson @ 2014-01-13 18:33 UTC (permalink / raw)
  To: grub-devel

On Mon, Jan 13, 2014 at 10:17:05PM +0400, Andrey Borzenkov wrote:
> I'm not sure what to do here. list.h needs misc.h apparently only for
> definition of ATTRIBUTE_ERROR which in turn does  not appear to be used
> anywhere else. This is not fatal so may be can be ignored for now, but
> still would be nice to clean up.

Maybe we could instead move grub_strtol into grub-core/kern/misc.c,
after which we'd no longer need to include <grub/i18n.h> from
<grub/misc.h>?

-- 
Colin Watson                                       [cjwatson@ubuntu.com]


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

* Re: conflicting types for 'grub_list_push' on MinGW (include loop)
  2014-01-13 18:33 ` Colin Watson
@ 2014-01-13 19:44   ` Andrey Borzenkov
  2014-01-13 22:00     ` Vladimir 'φ-coder/phcoder' Serbinenko
  2014-01-13 22:00   ` Vladimir 'φ-coder/phcoder' Serbinenko
  1 sibling, 1 reply; 10+ messages in thread
From: Andrey Borzenkov @ 2014-01-13 19:44 UTC (permalink / raw)
  To: grub-devel

В Mon, 13 Jan 2014 18:33:41 +0000
Colin Watson <cjwatson@ubuntu.com> пишет:

> On Mon, Jan 13, 2014 at 10:17:05PM +0400, Andrey Borzenkov wrote:
> > I'm not sure what to do here. list.h needs misc.h apparently only for
> > definition of ATTRIBUTE_ERROR which in turn does  not appear to be used
> > anywhere else. This is not fatal so may be can be ignored for now, but
> > still would be nice to clean up.
> 
> Maybe we could instead move grub_strtol into grub-core/kern/misc.c,
> after which we'd no longer need to include <grub/i18n.h> from
> <grub/misc.h>?
> 

I'd rather move compiler features into separate file (like
grub/compiler.h) and include it from misc.h and separately from list.h.


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

* Re: conflicting types for 'grub_list_push' on MinGW (include loop)
  2014-01-13 18:33 ` Colin Watson
  2014-01-13 19:44   ` Andrey Borzenkov
@ 2014-01-13 22:00   ` Vladimir 'φ-coder/phcoder' Serbinenko
  2014-01-14  2:49     ` Andrey Borzenkov
  1 sibling, 1 reply; 10+ messages in thread
From: Vladimir 'φ-coder/phcoder' Serbinenko @ 2014-01-13 22:00 UTC (permalink / raw)
  To: The development of GNU GRUB

[-- Attachment #1: Type: text/plain, Size: 598 bytes --]

On 13.01.2014 19:33, Colin Watson wrote:
> On Mon, Jan 13, 2014 at 10:17:05PM +0400, Andrey Borzenkov wrote:
>> I'm not sure what to do here. list.h needs misc.h apparently only for
>> definition of ATTRIBUTE_ERROR which in turn does  not appear to be used
>> anywhere else. This is not fatal so may be can be ignored for now, but
>> still would be nice to clean up.
> 
> Maybe we could instead move grub_strtol into grub-core/kern/misc.c,
> after which we'd no longer need to include <grub/i18n.h> from
> <grub/misc.h>?
> 
grub_strtol isn't used in core so shouldn't be in kernel.



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 274 bytes --]

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

* Re: conflicting types for 'grub_list_push' on MinGW (include loop)
  2014-01-13 19:44   ` Andrey Borzenkov
@ 2014-01-13 22:00     ` Vladimir 'φ-coder/phcoder' Serbinenko
  2014-01-15 18:14       ` Andrey Borzenkov
  0 siblings, 1 reply; 10+ messages in thread
From: Vladimir 'φ-coder/phcoder' Serbinenko @ 2014-01-13 22:00 UTC (permalink / raw)
  To: The development of GNU GRUB

[-- Attachment #1: Type: text/plain, Size: 973 bytes --]

On 13.01.2014 20:44, Andrey Borzenkov wrote:
> В Mon, 13 Jan 2014 18:33:41 +0000
> Colin Watson <cjwatson@ubuntu.com> пишет:
> 
>> On Mon, Jan 13, 2014 at 10:17:05PM +0400, Andrey Borzenkov wrote:
>>> I'm not sure what to do here. list.h needs misc.h apparently only for
>>> definition of ATTRIBUTE_ERROR which in turn does  not appear to be used
>>> anywhere else. This is not fatal so may be can be ignored for now, but
>>> still would be nice to clean up.
>>
>> Maybe we could instead move grub_strtol into grub-core/kern/misc.c,
>> after which we'd no longer need to include <grub/i18n.h> from
>> <grub/misc.h>?
>>
> 
> I'd rather move compiler features into separate file (like
> grub/compiler.h) and include it from misc.h and separately from list.h.
> 
This would be a good idea.
> _______________________________________________
> Grub-devel mailing list
> Grub-devel@gnu.org
> https://lists.gnu.org/mailman/listinfo/grub-devel
> 



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 274 bytes --]

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

* Re: conflicting types for 'grub_list_push' on MinGW (include loop)
  2014-01-13 22:00   ` Vladimir 'φ-coder/phcoder' Serbinenko
@ 2014-01-14  2:49     ` Andrey Borzenkov
  2014-01-14 11:12       ` Colin Watson
  0 siblings, 1 reply; 10+ messages in thread
From: Andrey Borzenkov @ 2014-01-14  2:49 UTC (permalink / raw)
  To: grub-devel

[-- Attachment #1: Type: text/plain, Size: 1057 bytes --]

В Mon, 13 Jan 2014 23:00:22 +0100
Vladimir 'φ-coder/phcoder' Serbinenko <phcoder@gmail.com> пишет:

> On 13.01.2014 19:33, Colin Watson wrote:
> > On Mon, Jan 13, 2014 at 10:17:05PM +0400, Andrey Borzenkov wrote:
> >> I'm not sure what to do here. list.h needs misc.h apparently only for
> >> definition of ATTRIBUTE_ERROR which in turn does  not appear to be used
> >> anywhere else. This is not fatal so may be can be ignored for now, but
> >> still would be nice to clean up.
> > 
> > Maybe we could instead move grub_strtol into grub-core/kern/misc.c,
> > after which we'd no longer need to include <grub/i18n.h> from
> > <grub/misc.h>?
> > 
> grub_strtol isn't used in core so shouldn't be in kernel.
> 
> 

Unless there is some redefinition, it seems to be used almost only in
core? Is it wrong?

bor@opensuse:~/src/grub> grep -rlw grub_strtol .
./grub-core/gfxmenu/gui_circular_progress.c
./grub-core/gfxmenu/gui_list.c
./grub-core/lib/syslinux_parse.c
./include/grub/misc.h
./ChangeLog
bor@opensuse:~/src/grub> 


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

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

* Re: conflicting types for 'grub_list_push' on MinGW (include loop)
  2014-01-14  2:49     ` Andrey Borzenkov
@ 2014-01-14 11:12       ` Colin Watson
  0 siblings, 0 replies; 10+ messages in thread
From: Colin Watson @ 2014-01-14 11:12 UTC (permalink / raw)
  To: grub-devel

On Tue, Jan 14, 2014 at 06:49:12AM +0400, Andrey Borzenkov wrote:
> Unless there is some redefinition, it seems to be used almost only in
> core? Is it wrong?

Those matches are in grub-core, but are not in a typical core.img.
Vladimir meant the latter.

-- 
Colin Watson                                       [cjwatson@ubuntu.com]


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

* Re: conflicting types for 'grub_list_push' on MinGW (include loop)
  2014-01-13 22:00     ` Vladimir 'φ-coder/phcoder' Serbinenko
@ 2014-01-15 18:14       ` Andrey Borzenkov
  2014-01-18 17:12         ` Vladimir 'φ-coder/phcoder' Serbinenko
  0 siblings, 1 reply; 10+ messages in thread
From: Andrey Borzenkov @ 2014-01-15 18:14 UTC (permalink / raw)
  To: grub-devel

[-- Attachment #1: Type: text/plain, Size: 8298 bytes --]

В Mon, 13 Jan 2014 23:00:47 +0100
Vladimir 'φ-coder/phcoder' Serbinenko <phcoder@gmail.com> пишет:

> On 13.01.2014 20:44, Andrey Borzenkov wrote:
> > 
> > I'd rather move compiler features into separate file (like
> > grub/compiler.h) and include it from misc.h and separately from list.h.
> > 
> This would be a good idea.

Like below?

From: Andrey Borzenkov <arvidjaar@gmail.com>
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 +
 11 files changed, 62 insertions(+), 30 deletions(-)

diff --git a/grub-core/commands/fileXX.c b/grub-core/commands/fileXX.c
index c9857ff..58e1094 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 fb1b25d..84c3368 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 ebbf6aa..ff23235 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 6df0015..73a5f90 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 67c8edd..4f83c74 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 8705a63..eee4e84 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 0000000..3730ef2
--- /dev/null
+++ b/include/grub/compiler.h
@@ -0,0 +1,51 @@
+/* compiler.h - macros for various compiler features */
+/*
+ *  GRUB  --  GRand Unified Bootloader
+ *  Copyright (C) 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 d29a899..9562fa6 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 edd20ad..d170ff6 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 2cf74b5..c6cd456 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 d393da7..8cc331d 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
 {
-- 
tg: (0776112..) u/mingw/list.h_include_loop (depends on: master)

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

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

* Re: conflicting types for 'grub_list_push' on MinGW (include loop)
  2014-01-15 18:14       ` Andrey Borzenkov
@ 2014-01-18 17:12         ` Vladimir 'φ-coder/phcoder' Serbinenko
  2014-01-18 17:13           ` SevenBits
  0 siblings, 1 reply; 10+ messages in thread
From: Vladimir 'φ-coder/phcoder' Serbinenko @ 2014-01-18 17:12 UTC (permalink / raw)
  To: The development of GNU GRUB

[-- Attachment #1: Type: text/plain, Size: 240 bytes --]

On 15.01.2014 19:14, Andrey Borzenkov wrote:
> + *  Copyright (C) 2014  Free Software Foundation, Inc.
please preserve copyright years when copying code around (just copying
whole string and adding 2104 is fine)
Otherwise, go ahead.


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 274 bytes --]

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

* Re: conflicting types for 'grub_list_push' on MinGW (include loop)
  2014-01-18 17:12         ` Vladimir 'φ-coder/phcoder' Serbinenko
@ 2014-01-18 17:13           ` SevenBits
  0 siblings, 0 replies; 10+ messages in thread
From: SevenBits @ 2014-01-18 17:13 UTC (permalink / raw)
  To: The development of GNU GRUB

[-- Attachment #1: Type: text/plain, Size: 535 bytes --]

On Jan 18, 2014, at 12:12 PM, Vladimir 'φ-coder/phcoder' Serbinenko <phcoder@gmail.com> wrote:

> On 15.01.2014 19:14, Andrey Borzenkov wrote:
>> + *  Copyright (C) 2014  Free Software Foundation, Inc.
> please preserve copyright years when copying code around (just copying
> whole string and adding 2104 is fine)

I assume you meant 2014.

> Otherwise, go ahead.
> 
> _______________________________________________
> Grub-devel mailing list
> Grub-devel@gnu.org
> https://lists.gnu.org/mailman/listinfo/grub-devel


[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 535 bytes --]

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

end of thread, other threads:[~2014-01-18 17:14 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-01-13 18:17 conflicting types for 'grub_list_push' on MinGW (include loop) Andrey Borzenkov
2014-01-13 18:33 ` Colin Watson
2014-01-13 19:44   ` Andrey Borzenkov
2014-01-13 22:00     ` Vladimir 'φ-coder/phcoder' Serbinenko
2014-01-15 18:14       ` Andrey Borzenkov
2014-01-18 17:12         ` Vladimir 'φ-coder/phcoder' Serbinenko
2014-01-18 17:13           ` SevenBits
2014-01-13 22:00   ` Vladimir 'φ-coder/phcoder' Serbinenko
2014-01-14  2:49     ` Andrey Borzenkov
2014-01-14 11:12       ` Colin Watson

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.