]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
Add __attribute__ ((sysv_abi)) only if it's really needed.
authorVladimir Serbinenko <phcoder@gmail.com>
Wed, 18 Dec 2013 12:09:39 +0000 (13:09 +0100)
committerVladimir Serbinenko <phcoder@gmail.com>
Wed, 18 Dec 2013 12:09:39 +0000 (13:09 +0100)
Some compilers don't support it.

ChangeLog
include/grub/misc.h
include/grub/x86_64/setjmp.h
include/grub/x86_64/xen/hypercall.h

index 2d0fb1efb9ac0d5a54fc1889cb93bc8c8099b03e..f11bf08e8eb2dc7d0c87d9f7d3d28c88da0d1c46 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2013-12-18  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       Add __attribute__ ((sysv_abi)) only if it's really needed.
+
+       Some compilers don't support it.
+
 2013-12-18  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * grub-core/lib/syslinux_parse.c: Declare timeout unsigned.
index b3ba7306d9376efc441deabb9afa37346ce90d4b..af8e404800f52dbf0e9f9f1a329cf9c81980dddf 100644 (file)
@@ -104,6 +104,14 @@ grub_memcpy (void *dest, const void *src, grub_size_t n)
 #define GRUB_BUILTIN_ATTR
 #endif
 
+#if defined(__x86_64__) && !defined (GRUB_UTIL)
+#if defined (__MINGW32__) || defined (__CYGWIN__) || defined (__MINGW64__)
+#define GRUB_ASM_ATTR __attribute__ ((sysv_abi))
+#else
+#define GRUB_ASM_ATTR
+#endif
+#endif
+
 /* Prototypes for aliases.  */
 #ifndef GRUB_UTIL
 int GRUB_BUILTIN_ATTR EXPORT_FUNC(memcmp) (const void *s1, const void *s2, grub_size_t n);
index b8f44cf29ac3c583bf6f5c58a0fa8c82a6a5ea65..6df8a1289f5aeab6a7fd4f77c08aec11c29110ed 100644 (file)
@@ -21,7 +21,7 @@
 
 typedef unsigned long grub_jmp_buf[8];
 
-int grub_setjmp (grub_jmp_buf env) RETURNS_TWICE __attribute__ ((sysv_abi));
-void grub_longjmp (grub_jmp_buf env, int val) __attribute__ ((noreturn,sysv_abi));
+int grub_setjmp (grub_jmp_buf env) RETURNS_TWICE GRUB_ASM_ATTR;
+void grub_longjmp (grub_jmp_buf env, int val) __attribute__ ((noreturn)) GRUB_ASM_ATTR;
 
 #endif /* ! GRUB_SETJMP_CPU_HEADER */
index e5ea26ba9b2065e69f6fcd43e0dc7caaeaae383e..90dd9007b7810def0508ad1f1543297f438b3f2e 100644 (file)
 #ifndef GRUB_XEN_CPU_HYPERCALL_HEADER
 #define GRUB_XEN_CPU_HYPERCALL_HEADER 1
 
-int EXPORT_FUNC (grub_xen_sched_op) (int cmd, void *arg) __attribute__ ((sysv_abi));
-int grub_xen_update_va_mapping (void *addr, uint64_t pte, uint64_t flags) __attribute__ ((sysv_abi));
-int EXPORT_FUNC (grub_xen_event_channel_op) (int op, void *arg) __attribute__ ((sysv_abi));
+#include <grub/misc.h>
+
+int EXPORT_FUNC (grub_xen_sched_op) (int cmd, void *arg) GRUB_ASM_ATTR;
+int grub_xen_update_va_mapping (void *addr, uint64_t pte, uint64_t flags) GRUB_ASM_ATTR;
+int EXPORT_FUNC (grub_xen_event_channel_op) (int op, void *arg) GRUB_ASM_ATTR;
 
 int grub_xen_mmuext_op (mmuext_op_t * ops,
                        unsigned int count,
-                       unsigned int *pdone, unsigned int foreigndom) __attribute__ ((sysv_abi));
+                       unsigned int *pdone, unsigned int foreigndom) GRUB_ASM_ATTR;
 int EXPORT_FUNC (grub_xen_mmu_update) (const struct mmu_update * reqs,
                                       unsigned count, unsigned *done_out,
-                                      unsigned foreigndom) __attribute__ ((sysv_abi));
-int EXPORT_FUNC (grub_xen_grant_table_op) (int, void *, int) __attribute__ ((sysv_abi));
+                                      unsigned foreigndom) GRUB_ASM_ATTR;
+int EXPORT_FUNC (grub_xen_grant_table_op) (int, void *, int) GRUB_ASM_ATTR;
 
 #endif