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

[Xen-changelog] [xen-unstable] compiler.h adjustments


  • To: xen-changelog@xxxxxxxxxxxxxxxxxxx
  • From: Xen patchbot-unstable <patchbot@xxxxxxx>
  • Date: Thu, 25 Oct 2012 21:55:09 +0000
  • Delivery-date: Thu, 25 Oct 2012 21:55:19 +0000
  • List-id: "Change log for Mercurial \(receive only\)" <xen-changelog.lists.xen.org>

# HG changeset patch
# User Jan Beulich <jbeulich@xxxxxxxx>
# Date 1351167895 -7200
# Node ID a89f1299b134bbcd969b6e7b193a6b2b17dd10cd
# Parent  580aa3946f87eb56690671bf1aa0022228f59c8c
compiler.h adjustments

- replace __attribute_used__ with just __used
- add __maybe_unused and explain the difference between the two
- remove gcc 3.x specifics (as we don't support building with it
  anymore; really for quite some time we didn't even support building
  with the checked for minor versions)
- remove left over __setup() from init.h (rather than adjusting it)

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
Acked-by: Keir Fraser <keir@xxxxxxx>
---


diff -r 580aa3946f87 -r a89f1299b134 xen/arch/arm/setup.c
--- a/xen/arch/arm/setup.c      Thu Oct 25 12:51:25 2012 +0100
+++ b/xen/arch/arm/setup.c      Thu Oct 25 14:24:55 2012 +0200
@@ -41,7 +41,7 @@
 #include <asm/early_printk.h>
 #include "gic.h"
 
-static __attribute_used__ void init_done(void)
+static __used void init_done(void)
 {
     free_init_memory();
     startup_cpu_idle_loop();
diff -r 580aa3946f87 -r a89f1299b134 xen/include/xen/compiler.h
--- a/xen/include/xen/compiler.h        Thu Oct 25 12:51:25 2012 +0100
+++ b/xen/include/xen/compiler.h        Thu Oct 25 14:24:55 2012 +0200
@@ -1,7 +1,7 @@
 #ifndef __LINUX_COMPILER_H
 #define __LINUX_COMPILER_H
 
-#if !defined(__GNUC__) || (__GNUC__ < 3)
+#if !defined(__GNUC__) || (__GNUC__ < 4)
 #error Sorry, your compiler is too old/not recognized.
 #endif
 
@@ -17,11 +17,11 @@
 #ifdef __clang__
 /* Clang can replace some vars with new automatic ones that go in .data;
  * mark all explicit-segment vars 'used' to prevent that. */
-#define __section(s)      __attribute_used__ __attribute__((__section__(s)))
+#define __section(s)      __used __attribute__((__section__(s)))
 #else
 #define __section(s)      __attribute__((__section__(s)))
 #endif
-#define __used_section(s) __attribute_used__ __attribute__((__section__(s)))
+#define __used_section(s) __used __attribute__((__section__(s)))
 #define __text_section(s) __attribute__((__section__(s)))
 
 #ifdef INIT_SECTIONS_ONLY
@@ -36,23 +36,23 @@
 #define __attribute_pure__  __attribute__((pure))
 #define __attribute_const__ __attribute__((__const__))
 
-#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)
-#define __attribute_used__ __attribute__((__used__))
-#else
-#define __attribute_used__ __attribute__((__unused__))
-#endif
+/*
+ * The difference between the following two attributes is that __used is
+ * intended to be used in cases where a reference to an identifier may be
+ * invisible to the compiler (e.g. an inline assembly operand not listed
+ * in the asm()'s operands), preventing the compiler from eliminating the
+ * variable or function.
+ * __maybe_unused otoh is to be used to merely prevent warnings (e.g. when
+ * an identifier is used only inside a preprocessor conditional, yet putting
+ * its declaration/definition inside another conditional would harm code
+ * readability).
+ */
+#define __used         __attribute__((__used__))
+#define __maybe_unused __attribute__((__unused__))
 
-#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
 #define __must_check __attribute__((warn_unused_result))
-#else
-#define __must_check
-#endif
 
-#if __GNUC__ > 3
 #define offsetof(a,b) __builtin_offsetof(a,b)
-#else
-#define offsetof(a,b) ((unsigned long)&(((a *)0)->b))
-#endif
 
 /* &a[0] degrades to a pointer: a different type from an array */
 #define __must_be_array(a) \
diff -r 580aa3946f87 -r a89f1299b134 xen/include/xen/init.h
--- a/xen/include/xen/init.h    Thu Oct 25 12:51:25 2012 +0100
+++ b/xen/include/xen/init.h    Thu Oct 25 14:24:55 2012 +0200
@@ -114,9 +114,6 @@ extern struct kernel_param __setup_start
     __kparam __setup_##_var = \
         { __setup_str_##_var, OPT_STR, &_var, sizeof(_var) }
 
-/* Make sure obsolete cmdline params don't break the build. */
-#define __setup(_name, _fn) static void * __attribute_used__ _dummy_##_fn = _fn
-    
 #endif /* __ASSEMBLY__ */
 
 #ifdef CONFIG_HOTPLUG

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.